I agree, but I do think that java, in particular, suffers from two distinct problems:
1) A lack of closures, which, as you point out, turns every obviously functional problem into a ridiculous object model.
2) A culture that creates libraries that suffer from over-abstraction, over-engineering and that tend to model a technical aspect of a problem rather than what a non-expert end user of the library would find intuitive.
1) A lack of closures, which, as you point out, turns every obviously functional problem into a ridiculous object model.
2) A culture that creates libraries that suffer from over-abstraction, over-engineering and that tend to model a technical aspect of a problem rather than what a non-expert end user of the library would find intuitive.