Java: A Cup Full Of Promise

"See Pat. Pat wrote just one program. `My program runs anywhere,' said Pat. `It runs on Windows. It runs on Unix. It even runs on a Mac.' "

So goes a radio ad being broadcast these days. As piano music plays softly in the background, a woman's soothing voice narrates the simplistic tale, one of several stories in the "100% Pure Java Storytime Theatre" that promote Java's enticing promise - write a software program once, and it will run anywhere.

The ads present the Java story as a fable. And so far, it is.

Two years after its public debut, there is little doubt that Sun Microsystems' Java programming language has stirred an almost religious fervor in the computer community, attracting more than 400,000 programmers from garage shops to International Business Machines. Java has created a new model for how people use computers and software, inspired the publication of hundreds of books and opened the wallets of venture capitalists. And thanks to its catchy name, plus unconventional radio and TV ads, Java has seeped into the public consciousness.

But in the marketplace, Java is already falling victim to the same challenges that sabotaged many other attempts to "standardize" computer technology - technical roadblocks, marketing one-upmanship and fierce competition. Sun, by stopping just short of calling Java the Holy Grail of computing, may well have set unrealistic expectations for Java's impact, at least in the short term.

"Java is a myth but it's also a dream," said Jesse Berst, editorial director of ZdNet AnchorDesk, an online news site. The "write-once, run-anywhere" promise is one of several that have not yet been met, he said, adding Java might still alter computing in ways its inventors did not envision.

"The crusades were not actually a success, but they changed the world nonetheless. Java is going to change the computing world whether or not anyone does in fact liberate the Holy Land from Windows."

Early animation

When Java was launched on the Web in March 1995, Sun billed it as a programming language for building lively "applets" - small applications downloaded from the Internet and run in a Web browser.

In its earliest forms it was used to create simple animations, like a bouncing-ball graphic. Now, developers are trying more ambitious projects that push against the limits of what Java can do today.

No matter what happens, the concept of distributing software applications over the Web is likely to be Java's lasting legacy even if its other promises go unfulfilled.

Chief among those is the "write once, run anywhere" pledge, which is implemented through Java's second identity. An aspect of Java, separate from the language, is a small layer of software, called a virtual machine, that runs atop a computer's operating system and interprets Java applets. The virtual machine, which must be built specifically for each type of computer, is the core of "write once, run anywhere."

The idea that applications can be deployed over the Internet or corporate intranets and run on many kinds of computers appeals to companies because they can manage the applications and roll out software updates centrally.

Of 279 corporations interviewed by Zona Research of Redwood City, Calif., about half are already using Java, and the rest plan to within the year. But 50 percent of the respondents were concerned about the feasibility of Java's "write once, run anywhere" promise. And 43 percent expressed concern that Java applications might not be powerful or fast enough.

Those technical limitations, though serious, are eclipsed in large measure by a battle in the marketplace.

Central to Sun's vision of Java is its use as a weapon to weaken Microsoft's powerful role in setting the industry's direction. By promising that a program written once can run on many different computers, Java devotees hope to convince customers that they can have access to a huge number of programs even if they don't have a machine running Microsoft's Windows. In effect, the virtual machine takes on the role of an operating system, potentially threatening Windows' near monopoly on desktop PCs.

Microsoft strikes back

So it is not surprising that Microsoft is striking back, and perhaps more than any other single factor, is jeopardizing Java's future as a unifying force among different computers.

"Java was skillfully latched onto the boom happening in the Web, a time of great confusion in the software industry," said Dave Winer, a software developer and online columnist. "It was a smart opportunistic tactic."

But several challenges stand in the way of Java's success. They include:

-- Technical and timing problems, which make "write once, run everywhere" problematic today.

-- Attempts by Microsoft to splinter the proposed Java standard.

-- Sun's own competing agendas - licensing Java yet ensuring Java applets run best on its own computers.

-- The inability of many computers to run Java programs well.

-- The difficulty of creating complex programs in Java.

New Java-based applications

Throw, a Seattle start-up, is writing an application in Java that lets people form communities on the Web around common interests. Using Java programming tools from Symantec, Throw engineers finished their first incarnation of their software.

But when it came time to test it, the engineers found their software only ran on Netscape Communications' browser and other environments that share the same "virtual machine" as the one that comes with Symantec's tools. The application would not run, for example, on Microsoft's Internet Explorer or on the Macintosh without tweaking the code.

Instead of "write once, run everywhere," Sun's tagline should be "write once, debug everywhere," said Scott Moody, Throw's founder and chief executive officer, referring to the process of ridding software of bugs. "So we have to spend time debugging for each platform even though we don't have to code for each platform."

Moody said the goal of Throw's CommunitySpace program is to bring together people with common interests, so writing in Java seemed an obvious choice. "We can't afford to lock anyone out," he said.

Another problem: To try to make applications run anywhere, software developers must follow a set of rules dictated by Sun. Each time Sun releases a new developer kit for software writers, enabling applications to perform more tasks - printing was a recent addition - it takes months for virtual machines to catch up.

The latest version of the Java Development Kit, released in February, is 1.1. If a user tries to run an applet that has version 1.1 features on a Netscape Navigator 3.0 browser, for example, the application won't run because Navigator 3.0 doesn't fully support version 1.1 of the developer kit yet.

Another technical hurdle to "write once, run anywhere" is that Java doesn't yet support many features that developers may want to include in their applications. Rather than penalize these developers, JavaSoft created a program called "100% Pure Pending," a temporary holding spot until Java matures.

Applications that do pass a test, which means they theoretically should run anywhere, are awarded the right to use the "100% Pure Java" logo.

Another battery of 8,000 tests is run to make sure a virtual machine is Java compatible.

Microsoft maneuver

In December 1995, Sun rival Microsoft raised eyebrows when it said it intended to license Java and put hundreds of programmers to work to make its Windows operating system the best place to run Java applets.

In June, the surprise turned to knowing nods when Microsoft announced its J/Direct initiative, a way to use the Java language to create programs that run only on Windows, undermining Java's crucial promise of working on any type of computer or operating system.

Some Java supporters are furious at Microsoft's maneuver. "I hope there will be a reaction that will keep Java a pure language," said Jerry Held, vice president of server products at Oracle, the database company. "It shouldn't require an Oracle database, a Microsoft OS, or a Compaq or Sun product. The whole idea is to be a platform-independent language. The whole industry should be up in arms against anyone trying to own the language."

Microsoft, which is trying to emphasize the widely acclaimed benefits of Java the language but minimize the potential of Java the platform, says it has no secret plot.

"It's a totally overt value proposition," said Cornelius Willis, group marketing manager at Microsoft. Writing cross-platform applications is not "a bad thing, but it's a limited thing," he said.

While some Sun supporters believe Microsoft is wearing the black hat, others say the blame for Java's lack of universality lies with Sun, which farms out the writing of most virtual machines.

"You have to (look) to Sun," said Clay Ryder, principal analyst with Zona Research. "Can you get a virtual machine with a same revision number on Macintosh, Windows NT and Windows 95? No, you cannot, and that has nothing to do with Microsoft," he said.

Sun says home is best

Sun professes that Java can be used to write programs for any computer, but it's taking pains to make Java perform best on its own hardware and software.

Consider recent claims by SunSoft that Java running on its Solaris operating system performs up to seven times faster than on Microsoft Windows. "Those who are using Web technology or cruising the Web who are starting to see interactive pages show up are going to see them faster, more responsive, if they're running on Sun platforms or developed on Sun technology," said Joe Keller, director of marketing for the SunSoft unit, in a recent interview.

JavaSoft officials say each business unit of Sun has its own goals; SunSoft's mission happens to be to sell Sun software.

The publicity surrounding Java has benefited few companies as much as Sun. Market researcher International Data found that sales of Sun's Solaris operating system, a variant of Unix, grew 40 percent last year, while the Unix market as a whole increased a slim 15 percent.

Another barrier to Java's widespread acceptance is that many users still have older versions of browsers that don't support Java. And computers still running the Windows 3.1 operating system - the majority of PCs in large corporations - don't run Java applets rapidly enough to be useful, and may never.

At most, 50 percent of the people who visit a gardener's Web site called Garden Escape have a browser that supports Java, said Andy Martin, chief technology officer of Garden Escape in Austin, Texas. "The biggest draw of Java is the portability, but the problem is not everyone supports Java. Until that stage, it doesn't really matter."

Market researcher Dataquest estimates that by the end of 1997, almost half of all computers will still be running Windows 3.1. In corporations with more than 1,000 users, that figure climbs to 63 percent, dampening the short-term prospects for deploying Java there.

Unfulfilled promise

Though Java hasn't fulfilled its promise yet, its supporters insist it has come a long way. "Rather than complaining about what Java doesn't have, let's comment that . . . we're in month 17 of the platform strategy," said Eric Schmidt, chief executive officer of Novell and former chief technology officer at Sun. "What has been accomplished is a world record by many orders of magnitude. There's no question it's a home run."

Carmi Weinzweig, chief technologist of Real World Software in Glendale, Calif., is a skeptic. But he wonders whether, with Java sparking fresh passion among many of the 400,000 programmers writing programs, the myth might become reality. "You have to question whether . . . enough people believing it's true will make it true."