Interesting article. I work mostly in C#, and have barely touched Java, so I didn’t really realize that Java was this far behind. Too bad C# is so Microsoft-specific and doesn’t get much love in the internet world; I think it’s the best language in its category.
As much as I love functional programming I do feel like the trend of trying to add functional idioms into imperative languages is more syntactic sugar for these languages and misses the point of functional programming a little bit.
I also think that the imperative code then becomes hard to read/maintain and difficult to debug.
Java may be bloated but I’d rather have bloated code I can work with than smaller, elegant code I can’t work with :)