As expected, Microsoft also announced Visual J++ 6.0, a new version of its Java compiler intended to be easier to use and more Windows-friendly.
The announcements further Microsoft's goal of elevating Java to equal status among its development tool lineup, alongside Visual Basic and other tools. The technology pact with Apple could also make Microsoft's Java Virtual Machine the default standard on a majority of desktop systems, analysts said.
"Microsoft's move to make Internet Explorer the default Macintosh browser was the first step in generating enough leverage to usurp dominance from Netscape," said Stephan Somogyi, principal of technology consulting firm Gyroscope. "The idea here is to add more leverage. If any given Microsoft technology can be said to own both Windows and Mac desktops, who cares about the others?"
The virtual machine is based on Apple's Mac OS Runtime for Java and will use a range of Microsoft Java technologies, the companies said, including aspects of Microsoft's J/Direct application programming interface technology.
J/Direct, which Microsoft originally designed for Windows, allows Java developers to access specific features of the underlying operating system. That's great for Windows--and now Macintosh--developers wanting to build OS-specific applications. But it also goes against the original goal of Java as a "write once, run anywhere" language, according to Java's inventors at Sun Microsystems and other purists.
Microsoft also today debuted a new set of Java foundation classes for building Windows-specific applications. Windows Foundation Classes (WFCs) give Java developers on Windows full access to the Win32 API, and in essence make Microsoft's Visual J++ development tool a more capable Windows toolset. Microsoft product managers are quick to point out that the tool is also fully capable of building non-Windows Java applications.
Tool vendors, including Sybase and Rational Software, have also licensed WFCs for use in their tools. But Java tool competitors Symantec and Borland International have not yet announced intentions to use WFCs.
In addition, as previously reported by CNET's NEWS.COM, Microsoft debuted its next-generation Java programming tool today.
Visual J++ 6.0, now entering widespread beta testing, will be one part of the Visual Studio 6.0 suite, due in the second half of the year. A preview version can be downloaded free of charge from Microsoft's Web site.
The Java tool will advance Microsoft's philosophy about Java: It's a great programming language, but it can't beat Windows as a platform. In fact, the tool is an attempt to draw C++ programmers to Java, as long as they continue to build Windows applications.
"Microsoft is whole-hearted in its commitment to Java as a language, and it understands clearly that given reasonable exposure to Java, most C++ programmers will shift," said Evan Quinn, director of Java research at International Data Corporation. "The trick is not just to make [its tool] palatable for Java programmers, but to make it a business imperative."
Microsoft hopes WFCs will do that. But WFCs are also yet another set of foundation classes that developers will have to contend with, in addition to Microsoft's Application Foundation Classes (AFCs). Developers can use WFCs to build Windows-specific applications, but those applications will not run as intended on other operating systems. That's where AFCs will come in, analysts said.
The WFC also will advance Microsoft's strategy to pull Java developers over to its BackOffice server platform anchored by Windows NT.
"Everyone understands now that Java's real strength is on the server side," Quinn said. "It would surprise me if [Visual J++ 6.0] doesn't have a complete set of classes for building server-side applications."
Those applications won't run on non-Windows platforms, of course, and critics say that violates the spirit of Java's "write once, run anywhere" promise.
"If you expect to use Microsoft tools to build real Java applications, then you should also expect to be disappointed when you try to move beyond the proprietary confines of the Windows environment. It is that simple," wrote Java Lobby founder Rick Ross on his Web site.
The new release of Visual J++ also will be tuned to work with COM and COM+, Microsoft's next iteration of its Component Object Model architecture.
The tool allows any Java class to be turned into a COM object, Microsoft said.