Number-crunching Java applications may deliver less accurate results on x86 and PowerPC chips than on less popular workstations.
The claims were made in a research paper by Jerome Coonen, a mathematics expert who has consulted with Sun, Microsoft, Apple Computer, and other companies on floating-point issues, a method used by computers to perform mathematical calculations. The paper was first distributed late last week on Numerics, a technical Internet mailing list.
Coonen's paper was commissioned by Microsoft, but he said the software giant made no attempt to sway the results of his report. "I wasn't influenced one iota by Microsoft," he said today. Although a Sun spokeswoman could not confirm the paper's conclusions, she did tell CNET that Sun engineers felt Coonen's research methods were sound.
For now, the Java performance and accuracy problems are largely theoretical because relatively few applications are written in Java that are dependent on floating-point calculations. But as use of Sun's programming language becomes more widespread, the problems could frustrate developers of scientific and engineering applications, as well as more basic programs such as spreadsheets.
In his paper, Coonen contends that Java's design will allow mathematically intensive applications to run best on computers based on the SPARC chip from Sun, Silicon Graphics' MIPS chip, and other processors.
Meanwhile, applications running on more popular platforms, such as PowerPC and x86 computers, will run more slowly and, in some cases, produce less accurate results. For example, a Java spreadsheet on a Pentium PC might slow down significantly when calculating the interest on a mortgage loan while the same application would be much zippier on a SparcStation from Sun.
Java's design "is seriously flawed and detrimental to the numerical health of millions of potential users," the paper says. Java has taken off largely because developers can write applications once in the language and run them on any computer operating system or hardware.
Sun's spokeswoman said that JavaSoft intends to improve the mathematical capabilities of Java.
"We are working our way along making the platform more robust," JavaSoft spokeswoman Lisa Poulson told CNET. "Math is one of the areas we're working on. For this very heavy math computation, it's important for JavaSoft to work on this."
Officials at Microsoft said they were disappointed to learn of the performance disparity between hardware platforms. The majority of Microsoft's Windows operating systems run on x86 chips from Intel and other companies.
"We were disappointed to learn that for all the talk of Java's cross-platform design goals that they have optimized for SPARC and that they have imposed a penalty on 99.9 percent of the computer users out there," said Charles Fitzgerald, program manager at Microsoft.
However, Coonen emphasized that Java mathematical applications did not only favor Sun's chip, but chips from other vendors as well.