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.
Cotton seedling freezes to death as Chang'e-4 shuts down for the Moon's 14-day lunar night
Fortnite easily out-earns PUBG, Assassin's Creed Odyssey and Red Dead Redemption 2 in 2018
Meteor showers as a service will be visible for about 100 kilometres in all directions
Saturn's rings only formed in the past 100 million years, suggests analysis of Cassini space probe data
New findings contradict conventional belief that Saturn's rings were formed along with the planet about 4.5 billion years ago