Most of our reading and prototyping of those days is done in the web-dynamic-language sub-universe (typically Ruby / Rails), and most of the (quite vocal) inmates there are not exactly Java-lovers, citing, not always inappropriately (among others):
- The Java language verbose nature
- The complexity of using multiple framework and layers piled one atop another
- Tomcat (or others) heavyweight nature compared to mongrels
If seeing some Ruby (or other dynamic language) creeping in a Java shop or tool is something that you hear of frequently, the reverse seems quite rare.
And yet, I see more and more signs that even those Rails shops use JVMs, perhaps grudgingly, but use them, not for they own merits, but as a "necessary pain" for being able to use some very good applications/packages running on the JVM. It seems that the Java ecosystem is more and more contrasted with on one side a language that seems increasingly out of steam, with very minor changes with long stale periods between, and on the other side a new generation of high quality applications/libraries developed with it (or/and at least on the JVM platform).
Christophe did propose an explanation to what seems to be somewhat of a contradiction: the language may be old and showing its age, but the people that have grown with it are mature, experienced developers able to use it at its best.
Some examples :
- Lucene, the well known search engine, powering Wikipedia (a PHP projects) among many many others
- Hadoop, a framework for big distributed data management
- Jira, a commercial and very successful issue tracker from Atlassian
- Jenkins (formerly Hudson), an open source continuous integration server
- Sonar, a code quality tool initially targeting Java, now extended with plugins for many languages, from C to Flex
- Neo4j, one of the increasingly visible graph database implementation
I most probably would no more choose Java as my primary language for web development, but those are software gems I do not want to be cut from. Once more, the evidence is probably toward companies working in a mixed environments, and to the end of the mono language model. As an developer, this is a period as good as any to learn a second (or third, or fourth) language and its real-life usages.
Some(what) related links :