Senior engineers at Sun Microsystems had serious doubts about using Java to build commercial applications for the company's own Solaris operating system, according to a memo leaked onto the Internet last week.
"While the Java language provides many advantages over C and C++, its implementation on Solaris presents barriers to the delivery of reliable applications. These barriers prevent general acceptance of Java for production software within Sun," according to the memo, which was apparently written by a Sun engineer and appeared last week on the Web site http://www.internalmemos.com The memo appears as something of an embarrassment for Sun, suggesting that it had trouble implementing Java, which it invented, on its own operating system. The company downplayed its significance, however, calling it "a two-year-old document which refers to an old implementation of Java technology."
"It doesn't represent Sun's position or the reality of our implementation today. The issues mentioned in the memo are irrelevant at this point," the company said in a statement. The author of the memo, which is undated, declined to comment, citing company policy.
It recounts a litany of concerns about Java that were shared by "several senior engineers" at Sun. Titled "The Java problem," it describes "the difficulties that keep our Solaris Java implementation from being practical for the development of common software applications."
Among them, it states that the Java run-time environment (JRE), a key part of the Java platform, was too large, which had a "drastic effect" on performance and system resources. It suggests the JRE could be reduced in size by around 80 percent.
It also faults the support model for Java within Sun. Java upgrades were released every four to five months and introduced new bugs as well as fixing old ones. The upgrades replaced earlier releases entirely and couldn't be reversed in the event of error. In addition, around one-fifth of Java bugs reported internally to Sun were quickly closed as "do not fix," compared to 7 percent for bugs involving C++, the memo states.
It recommends that Java should enforce backward compatibility requirements across minor releases, and that a system akin to issuing software patches be used to fix existing implementations. Outside vendors and customers were also affected by the problems, according to the memo.
The problems were not inherent in Java, but stemmed from Sun's implementation of Java for its Solaris operating system, the memo states. The engineers at Sun agreed that Java offers "many advantages" over alternative languages, and said they would prefer to deploy their applications in Java if it weren't for the problems.
The memo appears to refer only to the implementation of Java for Solaris. It shouldn't be seen as an indictment of Java, said Uttam Narsu, an analyst at Giga Information Group.
"If it's real, it only hurts Sun," he said.