I spent many years of my life writing Java. I don't mind static typing and compilation; I use Haskell extensively. (The difference being that Haskell's static typing actually makes correctness guarantees, and that when developing you can test your code in the REPL.)
I tend to think of libraries as "make me a nice HTML form" or "talk to this strange router" or "connect to Twitter". Every language has collections, concurrency, and various utility libraries like Guava. Nothing wrong with the examples you list; I've used them and am not that impressed.
I tend to think of libraries as "make me a nice HTML form" or "talk to this strange router" or "connect to Twitter". Every language has collections, concurrency, and various utility libraries like Guava. Nothing wrong with the examples you list; I've used them and am not that impressed.