Microsoft said in a presentation to US District Judge Ronald Whyte yesterday that it was justified in modifying Java.
It argued this was the case even if it meant that Java applications written for Windows could not run elsewhere, because it was attempting to address what it perceived were the shortcomings of the language.
The software giant claimed it went down this route because Java contains only a limited number of class libraries or pre-written code that enables users to insert features into an application without needing to do a lot of hand coding.
But according to Greg DiMichille, Microsoft?s product manager, these class libraries are the lowest common denominator and only include basic functions that are common to all operating systems.
As a result Microsoft felt itself entitled to add application programming interfaces (APIs) to Java that would enable developers to take advantage of the more sophisticated features in Windows.
But DiMichille claimed writing to such APIs was optional. Programmers using version 6.0 of its Visual J++ development tool were not forced to build Windows only packages because they could switch Windows based enhancements on and off using a mode switch. The enhancements appear in default mode however.
He continued: "Developers? lives are full of trade offs. 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 which has the best features."
Sun on the other hand maintained that Microsoft had deliberately added compiler directives and two new keywords into Visual J++ that could only be understood by Microsoft?s own implementation of the Java Virtual Machine - a move that destroyed the language?s stated aim of portability across all platforms.
Big Green had also refused to support Sun?s Java Native Interface which dictates how Java code interacts with native C and C++ code and had instead developed its own. This had resulted in a Windows-only dialect of Java by preventing compatibility with other languages at the native interface level.
To back up his case Bud Tribble, Sun?s vice president, showed the court a video that demonstrated a group of developers building an application using Visual J++, only to discover it was not cross platform. When Microsoft?s compiler directives were removed after the application was finished, it became apparent that the package could not run anywhere, let alone under Windows.
The two hour presentations by both sides were intended to bring Judge Whyte up to speed on Java in preparation for next week?s hearing on whether Sun should be granted a temporary injuction to prevent Microsoft shipping its Windows 98 operating system and Visual J++ development tools.
Sun and Microsoft will question witnesses before Judge Whyte next Tuesday and Wednesday, prior to the full hearing on 10 September. This will examine whether Microsoft is in breach of its Java licensing agreement with Sun.
Commons Science and Technology Committee calls for new post-Brexit skilled-workers immigration system
Committee calls for visa-free travel and permit-free work for skilled workers
Eleven 'normal' outer moons, and one described as 'oddball' found circling Jupiter
Scientific discovery has found a quadrillion tonnes of diamonds in the earth's mantle
Mobile payment app makes users' details public by default