Russell Beattie has kicked off an interesting thread of discussion on the topic of the future of Java:
In fact, I’d say that many of today’s current hot trends in programming are a direct result of a backlash against everything that Java has come to represent: Lengthy code and slow development being the first and foremost on the list. In Java you generally need hundreds of lines of code to do what modern scripting languages do in dozens (or less). The general up tick in interest in Ruby, Python and PHP during the 2000s all has its roots in programmers who had to work on one Java project too many, and were desperate to find something more efficient and less painful to use. You all know the story – less XML and cleaner, leaner code – and once you’ve experienced it, believe me, you won’t go back.
Joe Gregorio adds:
The world is moving on, and while thousands of programmers and many companies will continue to make a good salary from building and maintaining applications written in Java for decades to come, they will be working in a “legacy” language. Do not doubt for a minute that there’s still good money to be made in that space, like there is today for COBOL, but the new and interesting work will not be done in Java, nor will it be done on the JVM.
The thing is, Java is what it has always been. It’s cumbersome, the learning curve is steep, and the sheer number of APIs, libraries, application servers, and IDEs is impossible to keep up with. You don’t hire a Java developer, you hire a server-side Java developer with experience in Java Server Faces, WebSphere, and EJB, or a developer who knows Eclipse, Tomcat, Hibernate, and Spring.
The most interesting stuff has never been going on in the Java community. Yes, some big, important applications have been written on the Java platform but by and large, the most innovative stuff happens elsewhere. The main focus of innovation in the Java world has been in making it easier to deal with Java. There’s a reason why Java development tools like Eclipse and IDEA are awesome — they have to be in order to enable people to work productively in Java. Likewise for many of the frameworks people have built for creating Web applications in Java. Without them we would have all gone insane.
I guess it’s for that reason that I’m not very interested in requiems for Java. In order to criticize it for what it is now we have to pretend like it used to be something else.