Sun's language is working its way into mainstream computing
By Christy Hudgins-Bonafield
ava's promise of "write once, run anywhere" has too often turned into "write once, test and debug everywhere." The vow to extend Java via the browser without touching the client is seen as sales hype. Some even are poised to decry client-based Java as a dead movement.
But if Java hasn't delivered everything that was promised in its first three years, that's not to say it isn't a success. Java is many things, some of which make the enterprise grade, and some that don't. For example, Java is positioned as:
A language that can cut development cycles for sophisticated applications by a factor of two while building in greater reliability than alternatives such as C++. But it's a language that can't yet be ubiquitous because of performance and compatibility issues. Also, clients based on different Java Development Kits, Microsoft's independent approach to Java, and disparate machine capabilities limit functionality to early JDK versions (see sidebar story, "Java's Portability Problems.").
A way to write portable client-server code that's widely perceived as better than any alternative, but is far from perfect.
An important language for third-party enterprise application development, though Java draws low marks from businesses seeking such applications today.
A server platform that's gaining momentum both as a way to knit together back-end applications and to create simpler and more functional user interfaces, but which still lacks a critical reference model.
A distributed computing platform, along with Corba, that must compete with Microsoft's Component Object Model framework and growing IS dependence on combination frameworks, including those that tap Corba/COM with proprietary APIs and platforms.
A new product approach built around the still far-flung and nebulous features to be found in emerging application servers.
An emerging client platform for niche vertical applications and embedded systems that figures to catch on, given Java's ease of development and reliability.
Indeed, Java isn't perfect, but its lightning-quick evolution in a 36-month span makes it a phenomenon in the history of development languages and platforms. Java development already is mainstream in the top 20% to 30% of IT organizations and is on the verge of becoming mainstream in the rest, says Gartner Group Inc. analyst David Smith. Similarly, Forrester Research Inc. finds that almost half of Fortune 1,000 companies already use Java--and that nearly 20% consider it important or critical. By 2000, Forrester predicts, nearly half of the Fortune 1,000 will consider Java important or critical, with 80% of those companies relying on it as their dominant application development language.
Java may even prove to be as strategic to Microsoft as it is to Sun Microsystems, its developer. While Microsoft's ultimate vision may be that of a singular, universal Windows platform, the company has been forced to pay attention to non-Windows platforms. Microsoft needs Java to move effectively into enterprise distributed networking. As long as a competing vision exists, Microsoft must retain some degree of Java one-upmanship.
So, when Microsoft adopted Java, it wrapped pieces of the language, its tools, and its virtual machine in a bear hug. But it bared its teeth when it came to the heart of its own territory--the Windows client interface and the distributed networking architecture mapped out in COM. Microsoft's decision to stamp Java with its own brand raises concerns about Java on the client, where it's most widely deployed in business today.
At the same time, Java is picking up momentum on the server, where it stands to make its most lasting imprint. Java is most noticeable on the server side in quick-to-build midtier applications that extend functionality, such as between clients and legacy databases and applications. Java is also showing up in less-visible ways on the server, such as in its role as intermediary between older, back-end systems. Nike Inc., for example, built a Java application that updates its enterprise resource planning software with procurement information in real time.
Java helps many businesses--especially those that still rely on terminal emulation--to jump several technology hurdles at once. Rather than fashion new applications and retrain users, some businesses choose midtier servers that bring the mainframe to the desktop browser. As a result, emulation is rapidly approaching commodity status on these servers. The downside is getting servers to scale without spending a fortune, since they must handle emulation and pipe graphics to the client. Some companies also find great value in taking a once-complicated terminal emulation interface and simplifying it so that it can be used not only by sales reps, for example, but also by outside customers.
Java's simplicity goes a long way toward explaining its burgeoning popularity. Java makes it easy to extend sophisticated logic to the server while maintaining reliable performance characteristics. Good Java programmers say the language can increase their productivity by a factor of two over C or C++. Best of all, without the pointers and memory-management headaches of C, the resulting applications are more stable, reliable, and modular. That's reason enough for many companies to use Java, but managers also welcome Java's reputation for being much more portable than C or C++, the two main languages used for sophisticated enterprise applications that may one day need to be ported.
Although Microsoft positions Visual Basic as the functional peer of Java and C, few large users or analysts agree. Jim Turley, senior editor of the Microprocessor Report newsletter, says programmers typically view VB as something teenagers learn. If you're 35 years old and still writing in VB, he says, "it's like saying you fingerpaint for a living."
But fingerpainting must be a big business, judging by the huge number of programmers who value the ease of writing in VB and find Java too obtuse. A middle ground may lie with new Java-based development platforms like the one associated with an application server from SilverStream Software Inc. Programmers say SilverStream's big advantage is that its development environment resembles that of a fourth-generation language. It's sufficiently alluring that even Microsoft shops, such as Cellular Technologies Inc., have standardized on SilverStream's Java products.