So, it is easy these days to find people predicting the death of Java, or discussing the continuing utility of a framework and in the very next breath pontificating about the demise of the same. It is also imposible to miss the deification of the next great thing among the technorati.
I admit, recently I find myself more and more disillusioned with Java. And whether it its my own gripes about constant framework proliferation and NIH syndrome among the people who disclaim it at every turn, the Java world is getting seriously muddled.
At the server level, it is obvious that some things are more than a little over hyped and introduce complexity that shouldn’t be there, but the stanards people have just dropped the ball on driving us forward to a future with levels of complexity from the basic to the “I need everything.” The sad truth that “Enterprise” Java has missed for so long, is that even in the “Enterprise” only 1 in 500 applications need “Enterprise” functionality. While there are finally steps in the right direction, most of the world is still way more complicated than it needs to be.
On the desktop, you end up with mutliple solutions to identical problems that really should be getting driven at the JRE level. Not to mention several advancements in what we should be expecting from our environment that Java’s competition has gone to school on over the last few years. Sure there are partial great solutions to some of these problems, but none of them offer what you really want, and they are certainly not something you can expect the world to standardize on when they aren’t coming from the “standards” bodies.
No, Java is not dead. At worst, Java will be around for years in the same way ANSI-C has. There is just too much out there to walk away. However, Java seems to have become an also ran in every possible category. It is not “the language of the Web”, nor is it a “first class citizen” in the desktop. Even in the world of “AJAX” and “RIA” which Java foretold, it has lost the lead in technology and is negligible in mindshare. Java, however, needs some new life. It needs to reinvent the “Applet” into something cool and powerfully cool. It needs to absorb the things almost everyone needs in every app into not just a spec, but into the core runtime. I noted today that a lot of the very fair criticism of Linux could be applied 100% to Java with a simple search and replace. But most of all, what Java needs — for the first time I can think of — is not just someone who can design software or APIs well, it needs “the vision thing”.