Microsoft, faced with the realisation that Java is here to stay, has been quietly making changes to its languages and tools strategy over the past few months in an attempt to keep its hold on the crucial developer community.
Java has been Microsoft's worst nightmare. Theoretically, as a cross-platform architecture, Java allows developers to write cross-platform applications that can run on any architecture, whether that be Windows, Mac, Sun workstations or IBM mainframes. Simply put, it is immune to the influence of any one architecture - sadly for Microsoft, that includes Windows.
Microsoft's whole philosophy has been geared towards putting Windows here, there and everywhere. Java is different. It has been designed from the bottom up as a language for the Internet, with its mishmash of hardware platforms and operating systems. In its design goals for Java, Sun describes how the massive growth of the Internet and the World Wide Web has led to a completely new way of looking at the development and distribution of software.
"To live in the world of electronic commerce and distribution, Java must enable the development of secure, high performance, and highly robust applications on multiple platforms in heterogeneous, distributed networks," states Sun in a technical paper published on its Web site.
This is not how Microsoft sees Java, as it made clear at Comdex last month, when it announced plans to release a native-code compiler for Java to enable developers to build Windows-only applications.
Microsoft wants control of Java. Over the last few months the company has been putting in place a number of key technologies to gain a stranglehold on the Java developer community. First, there is the Win32 reference implementation of Java, which has been developed by Microsoft for Sun and includes features that allow Java programmers to use Windows-specific technology. Based on this specification is Internet Explorer 3.0, which uses the Microsoft Java VM (Virtual Machine). There is also Visual J , which provides programmers with a way to create fully-functional Windows applications using Java.
At Comdex, Microsoft announced it had renamed the Microsoft Java VM (Virtual Machine) to Microsoft VM. The company is also encouraging Netscape users to replace their Java VM in Navigator with Microsoft's by allowing them to write Windows-specific code in the knowledge that their applications will run on both Web browsers.
Netscape is understandably dismayed at Microsoft's bid to tie Navigator to the Windows platform. It has accused Microsoft of trying to control the industry and limit customer choice in order to boost Windows revenue.
In a statement Netscape said: "This move is contrary to everything Netscape stands for which is openness and cross-platform technology."
Microsoft's vision for Java is radically different from the industry's.
It positions Java as an alternative programming language to C++ and Visual Basic, rather than as a cross-platform development platform.
"We see Java as a very important programming language for the intranet and Internet," said Jeremy Gittins, marketing manager of Internet tools and platform division at Microsoft. "We believe we are creating the best programming environment for Java."
In Visual J , Microsoft has extended the standard Java packages (equivalent to application programming interfaces) with packages and classes designed to give access to Windows features such as menus, fonts and COM interfaces.
In using these extra Microsoft packages, developers are inadvertently tying themselves in to Windows technology.
This is exactly what Microsoft is planning for its Java tools, although the company would argue it is giving developers a choice. "We believe Windows is where innovation on the Web will take place," said Gittins.
"Programmers should be allowed to use Java to create rich applications and not be restricted to the lowest common denominator."
The lowest common dominator argument has been heard before, by platform-specific tools vendors who wanted to deter application programmers from adopting cross-platform tools. In a nutshell, a cross-platform application is not usually able to take advantage of all the wonders of each individual platform. The message from Microsoft is clear: either build mediocre cross-platform Java applications, or create Java applications for Windows.
Amy Porter, European marketing manager at JavaSoft, said Microsoft is refusing to consider Java as it is - a complete, cross-platform development platform. "Microsoft does not see beyond the desktop," she commented.
Fortunately for Microsoft, extending Java in the way it has, does not affect its licensing agreement with JavaSoft. It has not altered the language per se; it has simply put a proprietary wrapper around Java. As such, it has been able to exploit the market momentum behind Java while attempting to tie users in to Windows.
JavaSoft expected Microsoft to link Windows technology to Java, but it does not think the tactic will succeed in winning over Java developers as the Internet community will not tolerate such proprietary strategies.
George Paolini, director of corporate marketing at JavaSoft, said: "It is not Microsoft vs Sun, but Microsoft vs the world and the Internet community."
Database giant Oracle sees Java as a strategic infrastructure tool. It supports Java, Corba and COM. Adrian Morrish, the company's messaging and system management marketing manager, said, "If, for the next five to 10 years, a customer only wanted the Microsoft platform, then use the extensions." However, he added that it is possible to produce the Windows look-and-feel purely in Java, without having to resort to proprietary, platform-specific extensions.
For its part, Borland sees Java as a genuine cross-platform development tool. It has a long history of delivering successful and not so successful alternatives to Microsoft application programming interfaces. Borland Database Engine is the company's middleware answer to ODBC; OWL (Object Windows Library) is equivalent to MFC.
Borland also accuses Microsoft of manipulating Java. Jeremy McGee, product manager for Internet tools at the company, said: "Frankly, if you are going to write something for Windows, why not use one of the many great Windows-specific tools available."
Borland supports JavaSoft's JDBC specification for database connectivity and co-wrote the JavaBeans specification for Java components. Borland JBuilder, formerly known as Latte, is fully Java compliant. Applications built in JBuilder are therefore are not tied to any one platform, and can run anywhere Java is available. The next release of the tool will be rewritten in Java, making it available on all Java platforms.
As much as Microsoft would like to have a cross-platform story, Windows is where it makes its money. The company has chosen to ignore the cross-platform philosophy behind Java and, knowing that the Sun language is not going to disappear, is attempting to coax Java developers to Windows through a back door. In doing so, Microsoft has split the Java developer community.
(Sun is on www.javasoft.com)
MICROSOFT: ITS PUBLIC POSITION ON JAVA
While we make efforts to promote Java to the development community, we also have obligations to developers who have told us they need tight integration with Windows, especially for building intranet applications.
Sun's Java libraries don't support common Windows controls, such as tab controls, or many common dialogs. Neither does Java support TrueType fonts or incorporate OLE interoperability features such as drag and drop. We are providing these features through ActiveX for developers who need them and we will continue to enhance the development tools for both platform-independent and Windows-specific environments.
Microsoft has added Java classes that serve the needs of programmers of Windows-based applications, but we have not added any bytecodes to the list Sun has defined as valid in a .class file. We understand Java enthusiasts are worried that Microsoft will "extend" Java in such a way that it "pollutes" and fragments the language into a proprietary, Windows-only implementation that is less viable for the Internet than Visual Basic.
This is not our intention. Microsoft's VM can run any standard Java code produced by any Java-compliant compiler.
Some prominent vendors have announced their support for the Java Beans initiative, but it remains to be seen whether they can resolve their competing interests and whether the technology will ultimately satisfy the needs of the marketplace. Microsoft is committed to working with Sun and other Java licensees on Java Beans, but people should not assume that Microsoft is obligated to support these technologies in its products. Microsoft has the flexibility to offer alternative technologies if it believes they are better suited to the needs of its customers and the development community.
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