Related link: http://www.jboss.org/mcnealy.jsp
It looks like Steve Anglin weblogged this a few days ago, but I just came across the response Marc Fleury (head of the JBoss group) posted to Scott McNealy’s comments about the conflict between the J2EE licensing model and open source approaches. Still, it’s ground worth treading again.
I’ve been using Java for enterprise applications since well before it was appropriate to use Java for enterprise applications. J2EE is effective because it’s the result of a standardization effort that open source efforts have yet to match. Open source is excellent for creating implementations, but it’s lousy for creating standards. This certainly not to say that the best standards are the proprietary result of a single company. Standards bodies like the W3C produce open standards while maintaining the centralized authority that’s required to keep the standard a standard. It’s worth noting that most of these standards are for protocols, not languages or environments.
In the two decades or so since C++, there have only been two successful new languages: Visual Basic and Java. It’s just plain harder to maintain a language standard than a protocol standard. While other recent languages (Smalltalk, Eiffel, Object Pascal and so forth) have made important contributions to the theory and practice of software engineering, and contributed to the development of not a few real applications, they’ll show up as tiny slivers on a pie chart showing the languages of choice in today’s development environments.
Now that I think about it, Perl might count as the third major language, but however useful it is Perl has been refactored on multiple occasions and is fundamentally controlled via a central source, along the Linux kernel model.
The J2EE specification, particularly the EJB specification, defines a highly complex environment. The specification for the EJB component model is quite detailed, and for good reason. If the EJB environment doesn’t stay consistent that your code just isn’t portable, however many platforms it compiles on. J2EE had the distinction of being the first successful complete, open and multi-vendor platform for enterprise development. This has been made possible because the company that foots the bill for developing the reference implementations also gets to eventually put its foot down on standards issues. I doubt this is the only way to build a complete language and environment, but it’s undeniably an effective approach.
But I digress, and if I don’t get back to Fleury’s remarks soon I never will. Despire what I said above, I agree that J2EE needs Open Source. Sun needs it too. Open source has filled out the Java toolkit. Tools like POI and iText make J2EE even more useful than the core platform. This is an overlooked but very real advantage that J2EE has over .NET, and I suspect that, given the closed nature of the .NET environment, it’s one that will persist for quite a while.
Fleury points out that JBoss provides an affordable way for developers on a budget to use J2EE, and notes that without this alternative they’ll likely switch to .NET. McNeally points out that open source J2EE servers pull the rug out from under Sun’s Java revenue model. The fact is that other than licensing revenue Sun has no way to make real money off of Java. That’s something Sun doesn’t need, and the viability of the Java platform without Sun is a very open question. I don’t think it’s safe to assume that IBM and BEA and the like would be able or willing to take up the load. For Sun, losing the low end (where they can’t sell servers anyway) to .NET would not be the worst thing that could happen. Which theoretically implies that it could lose it to JBoss just as easily, if not for the fact that JBoss will continue creeping up towards the high-end.
The market for commercial J2EE servers is not going away, although costs, volume and margins are all going to have to come down as the market matures. But it’s not out of the question that Sun will have to find other business areas to develop, including entering the services arena more aggressively. Of course, we’ve already seen the reaction from the rest of the J2EE server industry when Sun bundled an application server with Solaris, and I can see this reaction recurring if Sun moves aggressively into consulting. I don’t immediately see a way clear.
I can’t help but wonder if Java will turn out to be another product of dot-com era enthusiasm, funded by a company that thought it had a line on the next big thing and eventually salvaged from the rubble for the equivalent of pennies on the dollar by people grateful that somebody else had taken on all that initial expense.
Can J2EE survive open source? Can Sun survive J2EE?