"It's a floor cleaner and a dessert topping" is a phrase that has worked its way into the American lexicon, a sarcastic homage to the idea that the do-everything gadget is the lineal descendant of the proverbial snake-oil salesman.
But fairy tales sometimes come true. About a penny's worth of aspirin can help prevent heart attacks, after all. Now with Java, the computer industry can lay claim to its own miracle product.
From a small piece of code designed for embedded controllers, Java has grown to address, potentially, every aspect of computing from the desktop to the enterprise.
Want cheaper, easier-to-manage network computing? Java makes it happen. Tired of application bloat? Deploy Java applets. Transaction processing? The Java TP API is on the way, along with Java Database Connectivity, multimedia, communications, the JavaOS, virtual machines, just-in-time compilers, Java Beans containers, and a new set of class libraries that will let it compete with Windows.
The sum total of those parts promises to finally integrate all the disparate elements of enterprise computing.
"What we like about the Java environment is it allows us to distribute software quickly to our customers while keeping the [same] infrastructure in place," said Bill Phelan, vice president of IS for FTD.
Java's initial use among the 10,000 or so FTD-affiliated florists around the world is for sending and receiving orders, Phelan said -- something member florists did an estimated 30 million times last year.
But the promise of Java is that it "offers us the capability of offering more services to our members," Phelan added. "I think in the future we'll be able to use it even for our enterprise systems."
This is what Sun Microsystems envisioned when it introduced HotJava in 1995.
A Sun white paper on Java says that in five years Java will be a credible replacement for Windows for more than 80 percent of desktop users.
"From the time we first introduced HotJava officially, we had in mind that this would be a platform, not just a programming language," said Jon Kannegaard, vice president of software products for JavaSoft. "With the introduction of 1.1 [of the software developer's kit], everything that's needed to make it a true operating environment is pretty much out there now."
And, in fact, the reality of Java at a certain level is impressive. More than 300,000 Java development efforts are currently under way, according to JavaSoft.
Virtually every major computer company in the United States is working to integrate Java into its technology at some level or another.
IBM is adding security features and integration between its massive base of legacy data and applications such as MQSeries and CICS; Apple and Silicon Graphics are adding multimedia APIs to the Java infrastructure; and Oracle is helping to build the bridges between the database world and Java.
Even Microsoft has recognized Java's significance, a major concession considering that most other supporters see it as weakening Microsoft's desktop dominance.
"The acceptance of Java in the developer community has been pretty impressive," said Bob Muglia, vice president of developer relations for Microsoft. "Java supports a lot of interesting attributes. It's very attractive because it supports things like multithreading and inheritance. You can develop applications much faster then you could in C++."
For most companies developing the infrastructure, however, Java goes much further.
"Java is the way to unlock enterprisewide applications again," said Simon Phipps, program manager for Java technology at IBM's Center for Java Technology, in Hursley, England. "IS departments haven't been able to build enterprise-class applications for years, because of the wide variety of workstations they would have to run on."
Even if it's not the entire platform, it could be the way to revitalize existing OSes.
"You're going to see us rely much more on Java in the future," said Will Iverson, Apple's product manager for Java and System Object Model product lines. "Right now we're using it like a system service, much like QuickTime, but you can expect us to use it much more broadly in the future."
For Apple, Java has even changed the nature of OpenDoc.
"We now see OpenDoc as a Java container," Iverson said. "OpenDoc is getting out of the development-environment business."
The core component of Java the platform so far is the beta release of Version 1.1 of the Java software developer's kit (SDK), which adds additional layers of functionality to the Java environment, Kannegaard said.
The 1.1 SDK increases the Java test suite to more than 5,000 compatibility tests, up from 50, while adding security features such as authentication, verification, local control, worldwide localization, better performance, and additional APIs. But users, industry analysts, and Microsoft are still skeptical, and so far, at least, they're waiting to see some real code.
"We're taking a look at it," said Jack McManus, vice president of IS at the University of Illinois, "but it's not something we're going to do right away. There's been a lot of promises made, but we haven't really seen anything real as yet. I don't think we're speaking the same language right now."
Even FTD, the primary poster child for Java and Sun's thin-client JavaStation, is still evaluating the Java platform, Phelan said.
"So far it looks really good, and they've done everything they said they would," Phelan said, "but it's still just an evaluation."
"What we're telling clients is that as a programming language, Java is well thought out and pretty solid," said John Rymer, a vice president at market-research company Giga Information Group, in Cambridge, Massachusetts. "They should be taking a look at it seriously.
"But in the entire history of computing, nobody's been able to make the idea of write-once run-anywhere work," Rymer added. "What has happened is that you can have write-once run-many-places with a little additional work, and Sun hasn't really explained how this is going to be any different."
Java's chief obstacle is also one of the primary strengths being touted by Sun and JavaSoft: the fact that so many companies are involved in the development of Java.
"The things they are promising that will make Java a platform are very immature," Rymer said. "The development is very Balkanized and getting worse all the time."
Even some developers enthusiastic about Java's promise acknowledge that the idea of Java as a stand-alone platform is in some jeopardy.
"For writing a cross-platform solution, there's nothing better out there than Java," said Mark Lussier, chief architect for Sanga International, which has developed the first implementation of a Java Beans container with Sanga Pages. "It has pretty much everything you need to develop enterprise applications right now, including database access, MAPI, the standard protocols, security."
But with development efforts so spread out, and multiple implementations of the Java virtual machine appearing for some operating systems, the idea of a single, unified infrastructure is in jeopardy.
"Windows is such a forgiving environment that if you make mistakes in developing a Java applet, the software will compensate for it," Lussier said. "But then it might not run on a Unix platform."
This opens the door for Microsoft to step in and redefine Java altogether. "Microsoft views Java as a great language that's very attractive to businesses that want to build business rules and applications," Muglia said. But the idea of a true cross-platform operating environment that is all things to all platforms is unrealistic.
"You can't even test the virtual machines against each other right now," Muglia added.
For most users, Java offers the same promises as object-oriented code, hardware application layers, and even OpenDoc.
"Right now, it's all just a bunch of hype," said Mark Perl, business manager for Visa USA, in San Mateo, California. "We're interested in it, but until it actually proves useful, it's just another way for [vendors] to get my money."