Ask Cornelius Willis what he thinks of the Java programming language, and he sounds like a wholehearted convert to the Sun Microsystems technology.
But Willis bristles when asked whether Java, as many of its proponents have suggested, will make Microsoft's most strategic technology, Windows, irrelevant. "The core value proposition of Java is 'write once, run anywhere.' If you look at that today, it's a joke," he insists.
Like dozens of other companies, including IBM, Oracle, and Netscape Communications, Microsoft has licensed Java from Sun and incorporated it into a raft of its software products. But while it has embraced Java up to a point, Microsoft has also begun waging an aggressive marketing campaign to discredit Sun's claim that Java applications can run unmodified on any brand of computer operating system, saying that the technology is splintering into numerous incompatible versions.
Microsoft's Janus-faced approach to Java is easy to understand, analysts say. Considered as a programming language, Java poses little threat to Microsoft and has indeed been welcomed by the software giant.
However, Java is also a platform in the manner of Windows 95, Unix, or the Mac OS, except that Java applications run on each of those operating systems through a chunk of code known as the Java Virtual Machine. Because of its dominance of desktop PCs and growing stake in the server market, Microsoft is widely recognized as the company with the most to lose if the Java platform catches hold among application developers.
"If you put most of the MIS community on sodium pentothal, what they would say is that they have concerns about Microsoft's domination of all their programming tools," said Russell Crabs, an analyst with Soundview Financial Group. "They want some real choices. The game Microsoft is playing is something of a balancing act, to give you alternatives [to Windows], but not really. Anything they can do to thwart the platform-independence of Java, they'll do it."
At Sun's JavaSoft division, the situation is summed up this way: "Java levels the playing field for everyone," said George Paolini, director of corporate communications. "It makes Sun as vulnerable as anyone else, but it opens up as many opportunities for Sun as it does for anyone else."
Of late, Microsoft has behaved more like a willing participant in, rather than a witness to, the fragmentation of Java. Later this month, the company plans to introduce a beta version of its Internet Explorer 4.0 browser that features J/Direct, an API (application programming interface) that will let developers anchor their applications directly to Windows 95 and NT, thereby sacrificing their ability to run on Unix and Mac OS. Microsoft says that J/Direct will let programmers build better applications than they can with Java's less mature tools.
Just as crucial is what Microsoft plans to leave out of its software products, namely support for several important elements of Sun's Java development kit--the Java foundation class libraries, remote method invocation, and Java native interface. Microsoft offers alternatives to these technologies--the application foundation classes, DCOM (Distributed Component Object Model), and raw native interface--all of which it claims are superior to the Sun tools. The competing Java tools could lead to a scenario in which Java applications are dubbed "Sun-compatible" and "Microsoft-compatible."
Sun believes that its Java licensing contract with Microsoft will compel the software giant to support all of the technologies in its JDK, though Microsoft disputes this. ("I'm not going to comment on our contract other than to encourage [Sun CEO] Scott McNealy to go and read it closely," Willis said.) Still, Sun cannot take the prospect of a "Microsoft flavor" of Java lightly.
Although it isn't the only provider of a Java-capable client on Windows (Internet Explorer), it is surely, along with Netscape, the most important. Microsoft may also become the first browser vendor to support the new JDK 1.1, albeit with the three missing technologies, in its new browser, due out by the end of summer.
Netscape failed to include important elements of the JDK 1.1 when it shipped its Communicator software last June; a spokeswoman said the company will support the new kit in the fall.
In recent months, Microsoft has suggested that Sun itself has contributed to the fragmenting of Java by introducing incompatible versions of the JDK.
"We realized Sun would lose the platform battle when we saw how incompatible JDK 1.1 was with 1.02," Willis said. "Today we are literally 'write once, run 42 percent of everywhere.'"
Microsoft is no stranger to introducing incompatible platforms itself, having released numerous versions of Windows that lack "forward compatibility" with older versions. However, many users and analysts agree that Sun's cross-platform sloganeering is belied by the fact that Java runs far better on the 32-bit Windows platforms--95 and NT--than it does on Mac OS and Windows 3.1.
Those performance concerns haven't deterred some companies from deploying Java on their networks though. Michael Seales, a software developer in the feature animation group at DreamWorks, said the company is committed to Java in spite of what he describes as almost "unacceptable" performance on the Mac OS, which runs on nearly 90 percent of the computers in his group.
"We're pretty comfortable that Java will remain a viable solution," Seales added.
Some analysts question whether Java's "write once, run anywhere" appeal matters that much when most of the consumer and corporate markets are already running Microsoft software. According to Dataquest, the installed base of PCs is 11 percent Mac and 89 percent Windows. New PC shipments in the first quarter indicate a more dramatic tilting of the scales: 5.9 percent Mac OS and 94.1 percent Windows.
"Java's appeal is its cross-platform capabilities," says Chris Galvin, a technology analyst at Hambrecht and Quist. "But the world that we're increasingly accustoming ourselves to is a Windows world. Java's relevance is probably minimized by that."
Nevertheless, new research indicates that interest in Java is rising among developers of corporate applications. According to a survey by Zona Research of IS managers at nearly 300 companies, 47 percent of respondents are currently using Java, while 53 percent plan to test and deploy Java applications within the next year.
IS managers said they plan to devote an average of 12.7 percent of their overall budgets to Java development in the next six months and 21 percent in the next year.
It's clear Microsoft has taken the Java threat seriously enough to attempt to neutralize it with a double dose of technology and marketing. Earlier this year, Microsoft stepped up its efforts to bolster its Java tools, some of which will work only on Windows, by acquiring two start-up companies, Dimension X and Cooper & Peters.
Microsoft may also give developers another option, a compiler, for producing Java applications that are married to Windows. The compiler, which will process Java applications into native Windows code, does not currently have a release date.
Microsoft has begun amplifying its criticisms of Java's immaturity--its lack of basic features, such as support for right mouse clicks, and laggard performance. Sun and Java's most ardent supporters say they are confident the platform will improve quickly.
"Java doesn't have all of the pieces today," JavaSoft's Paolini said. "I don't think we've ever said that it has all the pieces."
But now, as the early hype surrounding Java begins to wear off, building the new technological pieces that can put Java on a more even footing with Windows and other OSes is more important than ever. Some analysts believe that it's too early to tell whether the technology will be able to get to that point or not.
"I think Java is in phase two," said Laura Conigliaro, a computer analyst at Goldman Sachs.
"It's long and hard and tedious. It will leave Sun and Java open to their most massive criticisms. It's easy to object on the grounds that Java isn't Windows, that it isn't robust, that you can't get the same kinds of tools. This is the phase where Microsoft has the opportunity to fractionate Java."