There is a lot of talk going on about replacements to Java, or “java-killers”, like another of the many Ruby Rails comparisons to Java. I doubt there’s much chance of Java being killed off. We still have Fortran, Cobol, and Ada out there, and when it comes to Internet development, PHP has been around for a long time, and provides many of the utilities used by web hosting companies. Perhaps a day will come when Java is no longer the most used Internet development platform, but if that happens, it won’t be because Java couldn’t have been the best, it will be because Sun and other Java contributors didn’t pay attention to the complaints of developers as they turned to other options.
I remember when I first got into using Java for Internet development. It was with the JSP .92 spec, and I fell in love with it. Previously, I had written a few servlets and applets, but was using Perl for web development. JSP seemed like such a huge step forward and was so much fun, but I can honestly say now, that much of Java development just isn’t as much fun.
In many ways its become overly complex, and I’m not talking about core Java but the J2EE additions. Its happened many times, and with 3rd party Java solutions as well. The pattern is the same each time. A technology will emerge as a good solution. As it is used, its found to address 95% of the use cases that occur in development. But, the other 5% of the use cases cause more complexity to be added. Unfortunately, 95% of the complexity is there only for 5% of the use cases. I wonder if sometimes, instead of trying to write the perfect solution, and thereby making the simple complex, perhaps we should deal with those situations in other ways.
Java is powerful and its still my preferred method of developing. However, its most certainly not the only tool for all situations, and I think that a large number of development teams are using it when they shouldn’t be, or, more troubling, using it how they shouldn’t be. More on that topic in another post.