Columns

Analyst's Soapbox: A nasty wake-up call for J2EE

A tainted benchmark doesn't prove a thing, but the Java community would be foolish to avoid the warning it represents.

At the end of October, a ''damning'' benchmark demonstrated that Microsoft's .NET is twice as fast as the faster of two ''leading'' commercial J2EE app servers when running a benchmark based on a new implementation of Sun's Pet Store app (see http://www.middleware-company.com/j2eedotnetbench). The benchmark was produced by The Middleware Company, long an advocate of Java and J2EE.

More bad news for Java junkies: The .NET solution required 2,096 lines of code vs. 14,004 lines of Java code. And, under the price performance analysis, .NET is shown to cost 2.5 times less. So it's three early goals for Microsoft. But then things go wrong; it seems Microsoft provided The Middleware Company with a lot of help in developing the .NET solution, while the two other vendors (presumably BEA and IBM) didn't participate.

Next comes an own goal by The Middleware Company: A quick analysis of the Java app that is meant to be an optimized version of Sun's Pet Store app reveals some architectural choices that aren't optimal. Not an advertisement for a company that sells J2EE expertise.

The benchmark is tainted; it's not a fair comparison. But in following the avalanche of feedback from the Java community, I've been struck by the number of Java lobbyists who will not or cannot accept that Microsoft can offer a real alternative to J2EE. Next, I've been alarmed by the speed with which many Java developers seem to rush to blame 'EJB' for the poor performance and complexity of the app. Let's face it: EJB is a rather important part of J2EE, isn't it?

The worst thing the Java community could possibly do is to try to ignore or avoid this report.

Naturally, the Java disciples are out in force; crying foul, making excuses and accusing The Middleware Company of ''selling its soul to the devil.'' And in symmetry, the Microsoft camp can be expected to make its own ludicrous claims.

Tragically, Java supporters are trying to deny that the benchmarking exercise happened. This is stupid for two reasons: First, .NET represents an alternative to J2EE, and for the majority of apps it is viable. Second, J2EE is too complex and cumbersome -- it must improve.

The Java community cannot argue that Java has ''other virtues'' by using the mantra of ''performance comes second to reliability, maintainability and portability.'' This is based on three fallacies.

First, Java apps are not more intrinsically reliable. Reliability is as much a function of the developers who write the code as the environment within which that code runs.

Second, Java apps are not intrinsically more maintainable -- it's developers that make apps easy or hard to maintain.

And finally, Java's alleged portability is often grossly overstated as a virtue. Even only moderately complex apps require porting effort to move them between app servers, even at times between different versions of the same app server.

That the same technology can be used across many platforms is a huge advantage, but only if you really do need to develop new functionality across those platforms.

This report is of great importance to the Java community and, if rational heads prevail, it will bring great benefits to Java technology and the people who use it.

How do I think the community should respond? Read the report!

Java supporters should take the medicine and forge ahead to address the issues it raises. It is an act of denial to pretend that .NET doesn't pose an alternative to J2EE.

J2EE must be simpler, and it must run faster. If it cannot meet these challenges, it will wither on the vine and a great chance to change IT will be squandered.

Vendors (and the whole Java community) should take up the challenge and optimize Java code for their platforms. The benchmark needs this to be credible. As for potential adopters of .NET or J2EE: Be aware that you have a choice. Few of you truly have scalability requirements that come close to ruling .NET out, and claims about the technical 'superiority' of one technology over the other are spurious. Look at what you need and at your skills base, and make a decision based on what is best for you.

About the Author

Gary Barnett is IT research director at Ovum Ltd., a United Kingdom-based consulting firm.