By Richard Karpinski,
Java performance on the server is about to get a major caffeine boost, but debate is raging as to whether the enabling technologies will sustain or subvert the technology's write-once-run-anywhere spirit.
As IT developers wait for Sun Microsystems to deliver HotSpot, its long-promised, next-generation "just-in-time" compiler, other vendors are working to deliver native platform compilers, which optimize Java byte code for specific hardware platforms.
Although native Java compilers have been available from tools vendors, including Metrowerks, Supercede, Symantec, and Tower Technology, major improvements in native compilation technology are expected in the second half of this year, as well as new offerings from large players with longtime compiler expertise and major enterprise platforms to support, including Hewlett-Packard, IBM, and Microsoft.
For IT developers and so many other things related to Java, the question is the same: How do you separate market positioning from valuable technical advances?
"What's going on is all the vendors are fighting to make their platform the preferred platform for executing Java," said Aberdeen Group analyst Tim Sloane. "They tune their tools to their platform to eke out maximum performance and ease development with diagnostic and deployment aids."
"At the same time," Sloane added, "a lot of effort to have the very fastest environment is simply an effort to move to the top of the latest benchmark test list. In some instances, it's more marketing hype than anything."
However, server-side Java has become so important, any effort to improve performance bears watching.
"Performance is the biggest detriment to Java so far," said Jonathan Clay, chief technologist at Nevo Technologies, which has a 10-person development team in the midst of a two-year project, building a Java-based enterprise information system for Harvard University, in Cambridge Mass.
Pick Up The Pace With JIT Compilers
One answer to the relative slowness of
Java virtual machines, which execute Java
code, is just-in-time compilers. JIT
compilers
compile Java byte code for specific
machines on the fly, with the compilation
occurring at each instance the application
is called.
Early JIT compilers have begun to move Java performance up to par with C++ code in some cases. Sun last week released a new JIT, licensed from Symantec, as part of its Java Development Kit 1.1.6 release.
Meanwhile, Sun's upcoming HotSpot compiler -- due in alpha this summer and in final form in late fall -- makes an even more heady promise: It will be better than C++ code performance thanks to "optimistic optimization" that detects the hardware platform on the fly, and dynamically tunes Java applications, said David Griswold, engineering manager for HotSpot.
"A static compiler has to do all its work ahead of time. It needs to make least-common-denominator assumptions," such as making sure code ported to Intel machines runs on both 386 and Pentium II processors, Griswold said.
Static compilers also have problems with Java's more dynamic features, such as array balance checking, garbage collection, and dynamic class loading. Enterprise JavaBeans, the emerging server-side component architecture, means servers will have to handle more dynamically assembled Java applications, Griswold said, something native compilers cannot handle.
Nothing Is Too Hard To Handle
Other vendors say such challenges can be
overcome. For instance, imagine a hybrid
application with 90 percent compiled for
performance and 10 percent geared
toward JIT environments to handle
more dynamic elements, said Angus
McIntyre, marketing manager for IBM's
VisualAge for Java tool.
"If you want to deliver every last ounce of performance on a box you know the architecture of, that's where a static compiler definitely plays a role," McIntyre said.
Indeed, IBM, while a major backer of 100 Percent Pure and JIT Java, also has aggressively investigated the potential of native compilation. The most recent version of Visual Age for Java has a native compiler for IBM's own AS/400 platform, and a test compiler on IBM's AlphaWorks site offers native Java compilation to Windows NT and 95, OS/2, and AIX platforms.
IBM is shooting to move broader native compiler support into the next major version of Visual Age, expected later this year, McIntyre said. "We have 15 years in the optimization business here -- just watch us," he said.
Somewhat surprisingly, Microsoft takes a measured view of native compilation.
"Native compilation is one area we're investigating to improve performance. Unfortunately, the technology or approach to solve the problem isn't there today," said Bill Dunlap, product manager for Visual J++, adding Microsoft is hopeful it can produce a solution in six to 12 months.
For HP, meanwhile, optimizing Java for its platforms, particularly emerging 64-bit machines, is a simple matter of helping its customers, while at the same time differentiating itself from fellow hardware and Unix vendor Sun.
"A VM [virtual machine] isn't the answer to all things, as Sun would have you believe," said Nigel Ball, general manager for HP's Internet applications systems division. "You're likely to see a rift within Sun over time as JavaSoft, in true religious style, backs the VM, while the hardware side is faced with customers trying to optimize their applications."
What? Performance Is Fine
Other early Java users are skeptical
performance is an issue.
"The one thing we're pretty satisfied with server-side Java is the performance. We have a workflow engine on the back end and database connectivity, and it runs fine," said Charlie Bonomo, director of clinical technology at the Mt. Sinai Medical Center, in Cleveland, Ohio, and a major Java user. "My general impression is these guys are building tools not many people are using."
The debate over performance gains aside, it is important to note native compilation -- unlike platform-specific application programming interfaces -- does not necessarily subvert Java's cross-platform cause. Developers can still write in 100 Percent Pure Java, and any loss of Java code portability could simply be managed as part of the development process.
"It would just be another step in the process of putting builds out," said Clay, the chief technologist at Nevo. "It would stop you from being able to just dump a [code] image from one machine to another, but it's a small price to pay if the performance benefits are large."
Broadcom seeking Sr Staff Business Analyst in San Jose, CA
CAST Software, Inc. seeking Sr Post Sales Engineer in New York, NY
Tower Hill insurance Group, Inc. seeking Programmer in Gainesville, FL
ISES, Inc. seeking C # Engineer in Bridgewater, NJ
Dell, Inc. seeking Counsel, Distribution Law, Channel Sales Division in Austin, TX
For more great jobs, career-related news, features and services, please visit our Career Center.
TechWeb's FREE e-mail newsletters deliver the news you need to come out on top.
Get definitions for more than 20,000 IT terms.
Editorial and vendor perspectives