In-Depth
Portability promise at risk
- By Elizabeth U. Harding
- July 31, 2001
Developers are starting to discover that the Java programming language may not consistently live up to its promise of portability. Sun's slogan for its hot language -- "Write once, run anywhere" -- sounds good, but developers are starting to find that it may not always work. Many say that Java applets can run on multiple platforms if developers put in a lot of effort.
"I have an upbeat view of Java; it's the most important language that has come out in a very long time," said William Zachman, president of Canopus Research, Duxbury, Mass. "But, the reality is not so neat and tidy. The promise of portability is always a little niftier than the fulfillment."
Developers list two reasons why Java is not completely portable: first, because hardware and software environments differ; it makes a significant difference what operating system is underneath; and second, competing vendors of Java software try to leverage a little advantage by adding proprietary extensions. Using the Java Development Kit (JDK) provided by Sun's Javasoft unit, developers can produce varying versions of the Java Virtual Machine, which interprets Java code for resident platforms. Microsoft and Netscape, for example, each have their own implementation of the JVM.
In an effort to better control the language specification, JavaSoft plans to increase the number of conformance tests to ship with version 1.1 of the JDK, scheduled for first quarter 1997 availability. Version 1.0 had 50 conformance tests, while 1.1 is expected to ship with 5,000 conformance tests. Technically, any company licensing the JDK from Sun is required to have its implementation pass Sun's conformance tests, but Sun has not been auditing applications. Joe Kannegaard, JavaSoft's vice president of software products, was quoted in December as saying he has not yet seen the need to do so.
While portability is important, Java has other advantages. For example, Zachman said. Java is a powerful object-oriented programming language that incorporates some of the best C++ and Smalltalk while giving you the simplicity and ease of use of Visual Basic.
"It won't bother developers and users all that much if the majority of Java code written isn't platform neutral," said Zachman. "Windows is a good platform for developing Java applications."
Many analysts see Java's portability and openness as a big threat to Microsoft but Zachman said he expects far more developers to run Java on Microsoft's Windows platforms than on Unix.
-- Elizabeth U. Harding