Posted by flozano
on September 29, 2006 at 2:15 PM PDT
I wonder why, after so many years of failed predictions, the so-called "industry experts" still insist that Java is doomed. My conclusion is that they are being mislead by parallels with technologies that are from both a marketing and from a technology point of view radically different from Java.
The real motives why industry analysts love to predict Java fall... and why they will spend another 10+ years being proven wrong.
When I found a YAAPJF (Yet Another Article Predicting Java Fall) featured on Java.Net, I though it would, for a change, provide useful insights on the problems we Java developers would have to deal with during the next years, as technology creates new opportunities, big corporations devise new strategies to achieve total market dominance and marketing hype diverts decision-makers from the real issues that makes dependable IT. But what I found was just another biased and badly-informed rant that adds nothing new on similar articles I've read during the latest 10 years.
The article repeats the old sayings about Java failure for desktop applications and Flash dominance as a web multimedia tool. But if you visit Dice.com, Google Trends or O'Reilly for a reality check, you'll see that Java still generates twice as much "market share" as the second-runner. As if web development were just about the browser, and enteprise or embedded development didn't matter.
I wonder why, after so many years of failed predictions, the so-called "industry experts" still insist that Java is doomed. My conclusion is that they (1) are serving their own interests (2) are being mislead by parallels with technologies that are from both a marketing and from a technology point of view radically different from Java.
1. We all know media and consulting firms needs new hypes to sell articles, conferences and reinventions of the wheel posing as new applications. A mature, stable and robust technology like Java limits their opportunities to cash. The web looked like the golden mine, with the promise for a complete revolution each year and a half, but no corporation can rebuild all its IS at such a pace. And fortunately they don't need to, thanks to Java. (To be fair, there are other web technologies, like PHP, that allows companies to build web applications and keep then running for a long time span. I have applications created for PHP/FI that still runs with PHP 5).
2. The IS arena was for a long time crowded with technologies that promised everything but world peace, but were replaced in just a few years by the next hype. Remember the 4GL languages, RAD IDEs and WAP? When I was at college, about fifteen years ago, Clipper was still the way to get a well-paid developer job; soon everybody was coding using VB under Windows 3.x; them PowerBuilder, Centura and Delphi were "the" solutions for IS development; but all they were left into oblivion by the web.
Enter the web era, there was a rush to learn Perl and CGI programming, which were quickly displaced by server-side scripting engines such as Cold Fusion, PHP and ASP. Even Java entered the wave with JSP. But only multiple-tiered development could deliver the reliability web applications needed, and soon everybody was talking about design patterns, MVC and frameworks like Struts. MS .NET did not had the impact they hoped for, and now the "market" seems to be in a quest to elect the new "must-use" development tool, with Ruby and Rails topping the bets.
Nothing against Ruby and .NET -- except the fact they are not Java ;-). I myself still develop lots of stuff using PHP, and I am also a good SQL Server DBA. But Java development is not about marketing hype. It's about building applications that stand the test of time and that can evolve to meet changing business needs.
The crazy state IS development was before Java was very convenient to lots of professionals and consulting firms that could not (or did *not wanted* to) deliver dependable applications. Their incompetence in building reliable software was masked by new looks, incompatible upgrades from development tools themselves, OSes and databases, and the novelty of each technology hype. Every customer was willing to live with a few reboots and lock downs to use the latest technology. Every one was eager to buy that networks and applications that would solve all their problems. And those professional / firms incompetency at building maintainable software was hidden by the need to re-create everything using the next cool technology. IS was the realization of the "motto continuum", the engine that feeds itself.
Now those professionals and firms are scared about the prospect of getting another 10 year of stability from the Java arena. I was at once reading articles and course material I wrote about Servlet development almost 10 years ago, and every word of them still applies. I took applications I developed 10 years ago for IBM Websphere (at the time named Lotus Domino Webserver) and run then under the latest JBoss release. Of course nowadays I want to use Datasources, JMX management, Hibernate and Struts/WebWorks. But the fact I didn't had to change any of those applications just to stay current with system software is remarkable by itself
For the most part, Java evolution was not revolutionary. It was additive (and adictive). There were few times new JVMs and APIs broke production applications (and programming mistakes accounted for most of them), and it was easy to solve the eventual incompatibilities. I can't imagine having this stability from my dark years as a Windows developer.
So the parallel between Java and previous IS development "best sellers" will lead to wrong predictions about Java being at the end-of-life. Java is much more like COBOL, which still powers some of the most critical IS, but with the advantage that with Java you don't need to stay frozen with IS technology as it was 30 years ago. Rest assured during the next 10 years there will be a great demand for development of new Java applications, not just maintaining old apps like COBOL programmers do today.
I don't want to go back to the previous state of playing catch-up with each and every new cool technology. Neither do any of my customers. Nowadays IT users are much more cost-aware and concerned with ROI. I really doubt most of previous development best sellers would have had any serious market share if IT buyers were in the past half as careful as they are nowadays.
Of course there are lots of people and companies that can't see times have changed. The fact is: we aren't part of a booming market anymore. IT is now a mature market. Sad for them. Good for us Java developers.
Maybe the best parallel to Java is the now decades-old Unix system. It's heir, Linux, is at the forefront of OS and networking innovation. That's where new developments and new research happens, and where more and more companies trust their mission-critical applications.