Hackers love new platforms and programming languages. Some developers will always argue that the world is full of enough languages already. Nonetheless, from Ruby to Groovy to Scala, to less mature efforts such as Google's Go or Red Hat's Ceylon, new and promising languages usually find a willing and enthusiastic audience among the basement coders. Hackers thrive on change and experimentation.
Enterprise developers, not so much -- new and experimental languages seldom gain much traction in the corporate world, mostly for good reason. Enterprise developers crave stability, constancy, and reliability in their tools. They want platforms that are mature, secure, and well-supported, with clear, well-defined road maps -- platforms like Java and .Net. Right?
[ Track the latest Java trends in the JavaWorld Enterprise Java newsletter and at JavaWorld.com. | Keep up on the key Microsoft developments with the Technology: Microsoft newsletter. | And get software development news and insights from InfoWorld's Developer World newsletter. ]
If that's the case, little wonder the Java and .Net ecosystems are both in such disarray. Far from being satisfied with the status quo, enterprise developers worry that their platforms of choice are lagging behind, burdened by their own histories. Leadership from the top is lacking. Too many new initiatives seem like false starts, while old ideas are debated endlessly yet never implemented. For enterprise developers, the unthinkable has happened: They're working with platforms whose futures seem uncertain. How long will they sit still for it?
You call this community?
You call this community?In the Java camp, the Java Community Process (JCP) has approved Java SE 7, the first major revision to the core platform in five years. For some developers, the vote came not a moment too soon. Still others say the new version doesn't go far enough to bring Java up to date with modern language features.
For example, one vocal camp has long clamored for support for lambda expressions, also known as closures. Although Java SE 7 was initially expected to include this feature, it has since been pushed back to Java SE 8, which isn't expected to ship until late 2012.
On the other hand, some developers say they don't relish the idea of moving to a new version of Java SE if this transition will go like the last one. First Sun and now Oracle have issued no fewer than 26 updates to Java SE 6 since it was released, mostly to address security vulnerabilities and performance issues.
But by far the greatest number of complaints involve the Java Community Process (JCP), the consortium-based effort to guide development of the platform. Some have accused the JCP of being a secretive cabal, a charge JCP leaders deny. Still, it's hard to overlook the Oracle's growing influence. Several prominent members of the Java SE Executive Committee have resigned in the past year after finding themselves at odds with the database giant's positions, including the Apache Software Foundation. Former member Tim Peierls wrote in his blog, "One can only conclude that the SE/EE EC is never going to be more than a rubber stamp for Oracle."
Even James Gosling, the "father of Java," has distanced himself from the JCP, saying, "It's just gotten complicated." Mind you, that may be no coincidence. Gosling took a job with Google in March after leaving Oracle last year, and Google is currently embroiled in a lawsuit with Oracle over Java patents. As a result, Google was the only "no" vote in the final Java SE 7 deliberation, as it has been in several other recent votes.
A new Java Specification Request (JSR) approved earlier this month, dubbed "JCP.next," proposes sweeping changes to the JCP that proponents hope will improve the situation. In the meantime, however, enterprise Java developers have little choice but to watch and wait, their fates seemingly hanging in the balance between warring IT titans.
Uncertainty shrouds .Net
Uncertainty shrouds .NetYou'd think Microsoft shops would have it a lot easier. While the Java ecosystem resembles something like the United Nations -- albeit with Oracle permanently at the head of the table -- Microsoft's .Net platform is more of a monarchy.
The trouble is, as an absolute monarch, Microsoft doesn't inspire much faith. From the very beginning, the .Net platform was widely perceived as a Java rip-off. For many developers that was fine, however, since it meant Microsoft was able to build on Java's strengths and address its weaknesses in ways the JCP seemed unwilling to do. Unfortunately, Microsoft seems far less committed to some of .Net's advantages than some developers would like.
For example, early on, Microsoft touted .Net's Common Language Runtime, which made it possible for developers to code .Net applications in a variety of different languages. For a time, Microsoft even funded development of IronPython and IronRuby, versions of two popular scripting languages that ran on the CLR. But Microsoft has since backed away from these dynamic languages to focus on C# and Visual Basic, leaving IronPython and IronRuby developers in a lurch.
Now some Microsoft shops are wondering whether other .Net technologies might soon meet the same fate. For several years, Microsoft has been encouraging developers to build UIs using Silverlight, a proprietary Microsoft technology for constructing rich Internet applications. The great thing about Silverlight, we're told, is that because Silverlight's APIs are based on Windows Presentation Foundation, Windows developers can use their existing skills to create apps for the Web and mobile devices.
The market keeps changing even if platforms don't
The market keeps changing even if platforms don'tSome will say, "So what?" Even if the futures of Java and .Net are unclear, both platforms still provide what enterprise developers really want most, which is consistency. Just stick with what works, don't worry about the future stuff, and everything will be just fine.
But the problem with this manner of thinking is that "what works" for today's paradigm might not be what works for tomorrow's computing market. If I'm right, and application development is heading toward a model based on clients plus the cloud, then neither the status quo of today's enterprise platforms nor their lumbering pace will serve enterprise developers for long.
There are plenty of alternatives out there. Perhaps they only appeal to hackers for now, but today's hackers have a funny way of becoming tomorrow's enterprise developers. Microsoft and Oracle just better hope they don't walk away from .Net and Java before they get there.
This article, "Are Java and .Net becoming legacy platforms?," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
This story, "Are Java and .Net becoming legacy platforms?" was originally published by InfoWorld.