Examining Java's Many Missions

"Is it a floor cleaner or a dessert topping?" asks one of the members of the original Saturday Night Live cast in an advertising spoof. The response: "Why it’s a floor cleaner and a dessert topping!" Today, the wildly mixed missions of Java -- language, operating system, embedded operating system, enterprise framework and giant killer -- have IT professionals wondering whether Java is a panacea or the "Not Ready for Prime Time Platform." Java is now 3 years old. Its early adopters have completed, reworked or shelved their first major Java projects. We are now in a position to evaluate how Java has lived up to its many billings, as well as predict to which IT areas Java will bring the most future value.

Java holds an unusual niche in software industry as both a language and a platform. With a compatible Java Virtual Machine (JVM) running on your computer, any certified Java program will, in theory, run correctly without modification. Java’s "write once, run anywhere" paradigm is seen by many in the industry as the only way to loosen Microsoft Corp.’s stranglehold on the operating and applications market.

Sun Microsystems Inc., the inventor of Java, is understandably the company most interested in the success of its product. However, many other major companies are betting big, strategic chunks of their business on Java. Hewlett-Packard Co. is very interested in Java, especially for embedded systems. IBM Corp. is strongly pushing its San Francisco business framework, a collection of prebuilt Java business components. Novell Inc. claims it wants to be "the best platform for running Java." All of the major database vendors have alluded to using Java as a future database scripting language.

Even Microsoft, the company that stands to lose the most from Java’s rapid adoption, has invested heavily in Java development for both its browser and development tools. In addition to the major companies, literally thousands of other companies -- from one- and two- person shops to Windows veterans such as Corel Corp., Inprise Corp. and Symantec Corp. -- are focusing products and resources on Java. Finally, developers are attracted to Java like fish lovers to a Bass-o-matic, best exemplified by the 10,000 attendees of the recent JavaOne conference.

Sun Spars With Java Licensees
In spite of the industry’s commitment to Java, not all licensees see Java through Sun-colored glasses. Sun and Microsoft, for example, differ strongly in their views of the importance of Java the language and Java the platform. Sun prefers that the two parts be considered an integrated system, enabling completely portable applications on any operating system. Microsoft believes that Java should simply be considered an easy-to-use, object-oriented programming language. Microsoft wants nothing to do with the "write once, run anywhere" promise, and has introduced an optimized, Windows-centric Java implementation. These conflicting views have caused Sun to twice sue Microsoft: first accusing Microsoft of not fully implementing the Java specification in Internet Explorer 4.0, and then alleging that the language extensions in Microsoft’s Visual J++ 6.0 violate Microsoft's Java license.

In the embedded world, HP rocked Sun by announcing that it would eschew Sun’s Embedded Java implementation and create a clean-room implementation of its own. Since the announcement, HP and Sun have returned to the table to try to work out their differences. Compiler vendors Tower Technology (Austin, Texas, www.twr.com) and Instantiations Inc. (Tualatin, Ore., www.instantiations.com) have both announced clean-room implementations of Java compilers based on Sun’s open specification rather than Sun’s source code. Both claim they don’t want to depend on Sun for technology.

The fallout of the various fallings-out is concern that Java will not deliver on its cross-platform promise unless all the major vendors play fair. Virtually all vendors other than Microsoft still affirm that compatibility is one key goal in their Java development.

Java’s Record to Date
There are two yardsticks by which to measure Java’s success: Java’s ability to mobilize investment and interest, and Java’s ability to build successful mission-critical products.

By the first yardstick, Java is a phenomenal success. According to Steve Rovell of the Dynamic Consortium consulting group (E. Hanover, N.J., dyna-con.com), "Java will be a winner because it controls the industry mindshare." He also points out that "venture capitalists are very attracted to companies that embrace Java." Mindshare seems to have been coined especially to describe Java. In spite of its immaturity, the buzz following the 1995 introduction of Java utterly drowned out all other language advancements of the mid-1990s. Only languages with very deep roots such as C/C++ and Visual Basic survived relatively unscathed. Now virtually every C++ compiler vendor offers a Java product.

By the second yardstick, delivering successful Java-built products, Java comes up short. The broadly hyped network computer (NC) platform fizzled quickly, and Sun finally had to admit that people seemed satisfied with a Windows-based client. Corel’s highly publicized Java rewrite of its Word Perfect suite never emerged from a promising pilot. Industry-leading component builder Scot Wingo of Stingray Software, a division of Rogue Wave Software (Morrisville. N.C., www.stingray.com), a producer of C++, ActiveX and Java components, tells us that many of Stingray’s customers returned to C++ following successful Java pilots, due to scalability and reliability issues. "The initial development cycle progressed faster with Java, but going from pilot to production would often take twice as long." Companies with deep Java commitments look to the next release (JDK 1.2) as a watershed, where Java will begin to fully deliver on its promise.

Java’s Likely Failures
Front-end programming. Virtually everyone we interviewed alluded to Java’s death on the client. Although Java first grabbed attention via the applet, a small program that downloads and runs within a Web browser’s VM, the paradigm has proved to be unbearably slow and unwieldy. While some life for applets exists within intranet-only deployments, most users concede that HTML, DHTML and native Windows applications do the client-side job significantly better.

A better C++. While Java initially seemed to be a big improvement over its C++ cousin, most users have come to appreciate the significant differences between the languages. Java offers better native network integration and garbage collection. However, Java provides only one programming model (object-oriented) and lacks the generic template programming capabilities of C++ that offer major productivity increases. Java lacks most of C++’s optimization techniques, and Java’s slow performance spawns implementation tricks that can undermine the software engineering principles on which the language is based.

Java’s Likely Successes
Enterprise integration. The continuing trend of corporate acquisitions and mergers leads to challenging IT integration problems. The choice of a single operating system is not always possible when integrating the disparate systems of large corporations such as banks and telecommunication companies. Zack Urlocker of Inprise Corp. (formerly Borland Int'l Inc., Scotts Valley, Calif., www.inprise.com), explains that "our clients can't ask their customers to live without automatic tellers or phone systems for months while the IT platforms are consolidated." Java offers solutions on virtually every major platform, and the solutions are improving all the time. Many enterprises see Java as the only way to write long-lived code while avoiding vendor lock-in.

Database scripting language. While many of the major database vendors have added some level of object-oriented extensions to their databases, the languages used to write stored procedures lack the sophistication of true object-oriented languages. Oracle Corp., Sybase Inc. and Informix Corp. have all announced that Java will be an integral part of future offerings. Problems with incompatible VMs will be less significant in the non-GUI world of stored procedures. Core database functions will still be written in compiled languages, so the performance of a scripting language won’t be as critical.

Windows-specific language. Controversy abounds following the demonstration of Microsoft’s new Visual J++ product. The integrated WFC library calls the Windows API directly, providing speed and robustness not available with current Java tools. The trade-off is that J++ produces code that will run only on the Windows platform. Stingray Software's Wingo believes WFC will be Java’s biggest future success story, while others claim adamantly that nobody using Java is interested in Windows-only solutions.

Java. The platform, the language, the floor cleaner, the dessert topping -- Java has survived its first 3 years battered but intact. No longer considered a panacea for all computer woes, Java does show promise in some key enterprise development areas. Java still thirsts for better performance, and Java VMs are in need of better conformance. Java continues to attract interest, talent and investment, all but ensuring eventual success. In the near term, however, traditional cross-platform solutions -- including transaction processing monitors, CORBA brokers, C/C++, and proprietary two- and three-tier solutions -- are necessary for scalable mission-critical applications.

Eric Binary Anderson is Development Manager at PeopleSoft's PeopleTools division (Pleasanton, Calif.) and has his own consulting business, Binary Solutions. Contact him at ebinary@yahoo.com.