Is Java cooling down?

Recent studies show Java losing ground to competition from LAMP and .NET development alternatives. Unfortunately, the situation can only get worse in the coming years.
Written by John Carroll, Contributor

That's what this Business Week article says, as Java faces more intense competition from LAMP-style development (a software stack for open source web development) and .NET. According to the article, a survey by Evans Data Corp. showed Java usage declined to 47.9%, versus 51.4% in Fall of 2002. In contrast, ".NET usage increased to 54.1% from 40.3% in the same period." In A different survey, use of PHP (a first class citizen in the LAMP development stack) grew from 26% in the Fall of 2003 to 36.1% this Fall.

I didn't predict the development of the LAMP software stack, which is a bit like the arrival of the "Mule" in Isaac Asimov's Foundation series (which is an astoundingly obscure reference, so for those not up on classics of Sci-Fi literature, a character in that series named Hari Seldon claimed to be able to predict 30,000 years into the future using the science of "psycho-history," and his predictions held true for a mere three centuries, until a random element, the "Mule," started conquering the galaxy and throwing his near-perfect predictions off kilter). It makes sense, though, given the growing maturity of open source as a development alternative, and in my opinion, is a welcome development.

I did, however, predict that .NET would do particularly well against Java, as a September, 2002 article confrontationally titled "Why .NET will conquer the world" explained. .NET was and still is an improvement over Java, and I say that as someone who has spent MANY years programming large applications in Java.  Besides, Microsoft's influence over its developer community combined with its ecosystem reach would have been a hard thing for Java to match, and that certainly seems to be the way things are unfolding.

One thing the Business Week article didn't try to do, though, was predict future trends. The future is pure speculation, and news articles tend to shy from such predictions. On the other hand, blogs and opinion pieces aren't constrained by such scruples (and thank god for that), so allow me play the role of Hari Seldon and predict that life will only get worse for Java, at least with respect to .NET, and probably with respect to LAMP programming (though I won't, however, presume to predict 30,000 years into the future).

Microsoft is about to release an operating system the entire API for which is swaddled in a pleasing .NET layer. That operating system, named Windows Vista, will certainly encourage in the strongest possible terms people to write their applications in .NET. Not only will such applications derive the most benefit from the new operating system, but they will be 80,000 times easier to build than native applications, thus serving as the slippery slope driving the rest of the Windows world into the .NET heartland. Ergo, big boost for .NET market share. Granted, that pressure won't exist from day one, but consider it the drum beat in the jungle growing louder every day, indicating the cannibals are coming to eat you.

This cannot bode well for Java market share, even on non-Microsoft platforms. If most of the Windows world shifts to .NET (and though we aren't there yet, we aren't that far off), that will create a huge incentive to concentrate on .NET for non-Windows platforms in environments that might have otherwise favored Java (though some might turn to LAMP), which bodes well for Novell's Ximian acquisition. Ximian makes Mono, the open source .NET runtime available on platforms besides Windows, and I think more fans of those platforms will have a growing interest in it within Vista timeframes. But, hey, I am a male Cassandra (which is a less obscure reference, and was the woman in Greek mythology who told the Trojans to leave that damn wooden horse outside the gates of Troy), and nobody believed me when I said .NET would take over the world, so I don't expect them to believe me now.

As for competition with LAMP, the barrier is more philosophical than technical. If you are a fan of open source and are looking to develop on an open source stack, Java is not going to be your first choice. Granted, it isn't associated with "always evil" Microsoft, but it IS proprietary, and the GNU CLASSPATH project aiming to remove this taint is not complete. So, what are your options? Why, Perl, PHP and Python, languages which have a lot more developer "buzz" about them and that are (arguably) easier to develop in than Java. Heck, Python is an object-oriented language, so you won't even have to sacrifice object purity.

Am I wrong? Am I right? I'm sure many will inform me in the gentlest possible terms in the Talkbacks.

Editorial standards