Representatives of Microsoft Corporation and Sun Microsystems appeared before Judge Ronald Whyte this week to explain the technical implications of Java and Microsoft's modifications to that language. The presentations were part of pre-trial preparation for next month's legal blowout. Sun has sued Microsoft for creating a version of Java that runs only on Windows.
Microsoft, in its presentation, maintains that developers can use its Visual J++ tool to write Windows-only Java applications if they want, but they can also write so-called "Pure Java" applications that will run on any system with Sun's Java Virtual Machine (JVM) if desired. Microsoft showed the feature in Visual J++ that enables this feature.
"Developers' lives are full of trade-offs," said Microsoft product manager Greg DiMichille. "Should I make it small or fast? There are differences among platforms--in APIs, in features, in what hardware they run on--and operating systems do compete on who has the best features. The Mac was successful because of PageMaker, and PageMaker was successful because Apple had rich APIs for graphics and printing."
Sun says that Microsoft deliberately added two new keywords to the Java language and some compiler directives that tie it to Microsoft's, rather than Sun's, implementation of Java. Microsoft also refuses to support Sun's Java Native Interface (JNI) technology and has, instead, developed its own Raw Native Interface (RNI) that only works in Windows. Sun says that developers using Microsoft Visual J++ cannot switch back to "Pure Java" once they've started programming: The option to do so must be set before programming begins.
"If the programmer steers clear of the Microsoft dialect from day one, there are no problems, but this is not the default mode of Visual J++," said Sun Vice President Bud Tribble. "This is exactly what happened to C and C++. Dialects developed--for good reasons--and Java is designed to address this Tower of Babel.