LAS VEGAS -- After a year of careful positioning, Microsoft Corp. last week made it clear that it wants control of Java and is well on its way to creating a separate, Windows-specific version of the development language.
At Comdex here, Microsoft announced plans to release a native-code compiler for Java, letting developers create Java executables that are faster--but that run only on Windows.
Microsoft also renamed the Win32 Java Virtual Machine as the Microsoft Virtual Machine. Officials said users can replace the Java virtual machine in Netscape Communications Corp.'s Navigator browser with the Microsoft VM, adding that Microsoft would freely redistribute its version to any ISV.
"We are going to be the No. 1 supplier of Java," said Charles Fitzgerald, program manager at the Redmond, Wash., company.
But there's a major catch for users and developers: If it delivers on its strategy, Microsoft will splinter the Java camp, creating potentially dueling sets of applications and technologies.
"We are very concerned about the Microsoft message," said Allen Bannon, director of developer relations for Symantec Corp.'s Internet tools division, in Cupertino, Calif. "JavaSoft wants to keep Java as a single language, and they have been developing standards to ensure that. Anyone trying to change that has ulterior motives."
Microsoft officials admit they encourage developers to write to Microsoft Java but insist that any pure Java application will still run on Windows, because most of the Windows-specific functions are implemented as additional classes, and not as changes to the VM.
Borland International Inc. is one of the vendors that has lined up behind the Microsoft Java camp and has plans to support both the Microsoft VM and the JavaSoft VM in its forthcoming JBuilder development software next year. But sources close to Borland said the Scotts Valley, Calif., company has been pressured into supporting Microsoft's VM.
"This could be scary," said one source close to Borland. "If VMs end up splintering in different directions, it could fragment the market. It could be like Unix all over again."
If a pure cross-platform version of Java is successful, then Microsoft loses one of its prime advantages: the wide range of inexpensive software for Windows. Java lets users pick the most appropriate hardware or operating system, regardless of the number of available applications.
Microsoft's response is to make it easier to build Win32-specific Java applications by providing better tools for Java, such as its forthcoming Vegas rapid-application-development tool that merges Visual Basic and Visual J++.
On the other hand, Microsoft is making it more difficult to access the cross-platform technology. Microsoft officials said the company will support some of the forthcoming services of Java 1.1.
The ones that overlap with Microsoft VM capabilities, such as the just-in-time compiler and the Java security architecture, will not be supported directly by Microsoft; they will be posted only as downloadables on its World Wide Web site.
JavaSoft officials said Microsoft's support of Java 1.1 does not violate Microsoft's Java license. Microsoft's moves, they said, are nothing more than putting a proprietary wrapper around Java--a move they expected but one that the Internet community will not stand for. "It is not Microsoft vs. Sun, but Microsoft vs. the world, and the Internet community does not tolerate proprietary play," said George Paolini, director of corporate marketing at JavaSoft, in Mountain View, Calif.
"If Microsoft is going to keep building Virtual Machines for Windows, that's great," said Patrick Connolly, president of Ethos Corp., in Mill Valley, Calif., which runs an investment Web site. "But I wouldn't like to see them completely abandon Sun's specifications."
Java Power Play
How Microsoft is veering away from JavaSoft's specification
- Tying Microsoft Java Virtual Machine to ActiveX
- Plans to create Java libraries dependent on Win32 APIs
- Plans to create native Java code compiler for Windows executable files
- Will not support all of the core JDK 1.1 APIs in Internet Explorer or Windows
- Lining up tool vendors for Microsoft Virtual Machine