[ Back to Index of Web Works ] part of George's Web Site

Related Web Works


[The Internet never sleeps. Click here.]

[Image]

Cafe Society

Symantec's Cafe shows the Internet community the importance of staying awake

by Nancy Nicolaisen Originally published in the October 1996 issue

[Image] The mark of a good software tool is that it solves developers' problems and answers their questions. The mark of a great software tool is that it forces developers to ask new questions and identify different kinds of problems. Symantec's Cafe for Java, the first standalone Java software development environment for the PC and the Macintosh, is in the latter category. At precisely the right time, Symantec has delivered an enabling technology for developers of average skill who want to take advantage of the emerging opportunities in the evolution of object-oriented computing. And as part of the Internet technology panorama, Cafe is both a dramatic and pivotal development. This truly Web-centric programming language may have the same effect on Java as Symantec's C++ had on programming in C.

The significance of Cafe can be traced to its technical foundation: Sun Microsystems' Java programming language. Cafe includes the source code and samples from Sun Microsystems' Java Development Kit (JDK), but it also extends its scope by offering a comprehensive development environment. It includes wizards for starting a project or generating default applets; a graphical source-level debugger, which is based on Symantec's interactive development and debugging environment (IDDE); a speedy native Java compiler that lets you double-click on an error, taking you directly to the faulty line in the source code; and Cafe Studio for creating Java views and forms.

But to understand Cafe's significance fully, it is helpful to understand Java's origin--and where Sun Microsystems may have missed the boat. Java had a curious beginning, far removed from its current status as the almost brightest star in the Internet software development firmament. At its roots, Sun Microsystems is a Unix company, both in terms of its actual product offerings and its philosophy. For this reason, Sun has long been active in the Unix community, particularly in the area of embedded systems. Java was the end result of Sun's research into makingembedded systems more portable.

Embedded Problems

Today's embedded systems target consumer products like automatic transmissions, alarm clocks, and CD players. In contrast to the defense-oriented embedded systems of an earlier technological generation, these consumer devices are extremely cost-sensitive. The key manufacturing issue in the mass market is reducing the material cost of the end product.

Unfortunately, there is no architectural standard for the microprocessors used in smart consumer devices; in fact, there are dramatic variations in bus sizes, data organization, and instruction sets. This gives rise to wicked porting problems for embedded-system developers, who must respond very quickly to changes in processor parts. Developers have to rewrite applications and, in some cases, redesign them completely. This shortens the development cycle, leaving minimal time for testing software--even though there's virtually no way to correct a firmware mistake once code is burned into ROM.

Java's developers studied this situation and envisioned a solution. They created a single, object-oriented, high-level language that would port across processors fairly quickly and give the applications it supported full source portability. Because consumer device firmware uses a fairly predictable subset of the programming constructs of more elaborate environments like desktop computers, Java began life as a slim and elegant programming idiom. It cloaks a large spectrum of software functionality in an easily learned and used object model.

The full utility of a technology often is not necessarily understood or even imagined when it is introduced. As Java began to gain wide exposure, it became apparent to the software development community that more than a few parallels existed between designing portable embedded systems and designing the applications that target the Internet. The Internet is really just a large-scale model of the firmware target population, with its loosely confederated group of users running sessions from an unbounded number of hardware configurations. The key feature of interest in the story of Java's rise as an Internet programming technology is that Sun didn't take steps to make it a proprietary solution while it was still in control of Java's destiny.

The fact that Java ultimately solved a problem it was never intended to address goes a long way toward explaining why Symantec, rather than Sun, capitalized on the opportunity to provide software development tools for the new language. Symantec has historically been a company that acquires significant technology, either through outright purchase or licensing relationships. The software and tools that it develops in-house are engineered with this larger corporate philosophy in mind, so plugging a Java back end into the existing C++ development environment was more a matter of tailoring a sleek fit than creating an altogether new tool.

A Distributed Future

The Java language raises many questions about the future of distributed object computing. To date, no vendor has offered the software development community a distributed object architecture that could actually work in broad deployment. Aside from the major contenders (CORBA, DSOM, and OLE) being shrouded in devilishly complex programming models, two serious obstacles cast a long shadow across the evolutionary path of distributed object-oriented programming: security and version validation.

These problems are extremely difficult to solve, assuming a sort of anarchic distribution of autonomous, anonymous, distributed objects. Java offers a simple, clean solution to both versioning and security validation because Java code is executed locally, regardless of the physical location of the object. The Java interpreter resides on each host platform that executes Java applets and applications, and it routinely validates Java code instruction by instruction.

Asleep At The Wheel

Clearly, Symantec's Cafe is the team to beat in the Java development tools niche right now, and it's unlikely that Sun can recoup much market share with its belated entry into the race. Sun has neither the software marketing acumen nor the equity in desktop-tool technology that Symantec possesses.

The saga of Java's success and collateral developments must in some respects remind Sun Microsystems strategists of the words of Winnie the Pooh: "It's like one of those nightmares you have when you are awake." First, it lost the tool market to Symantec; now Microsoft has introduced a set of MFC extensions that make writing Web Servers a relatively benign application-level task.

This latter development represents a serious blow to Sun's prospect of reaping a bonanza in hardware sales, as soaring interest on the part of Web developers fuels demand for Web-server boxes. Long a bastion of dominance in this niche, Sun has considerably more to worry about here than lost opportunity. Microsoft's new classes extend the standard Visual C++ toolset with objects that enable relatively unspecialized software developers to create Windows NT-hosted HTTP server applications quickly and reliably. Though some contend that Microsoft was sleeping while the industry was pouncing on Java, it is historically characteristic of Microsoft to wait for a technology to catch on before it supports it.

Intel-based servers provide a better price/performance balance than Unix workstations do. As powerful software tools like Microsoft's new HTTP protocol classes escalate their functionality, the entire workstation class of computers ceases to retain technical advantage in their traditional strongholds.

Microsoft's decision to apply technical leverage in support of HTTP server-solution builders can only benefit the vitality of Windows NT and, not incidentally, Microsoft's longtime ally DEC. With its Alpha computers, DEC is competing for Sun's market share in workstation environments, with corporate intranet apps currently being one of the fastest-growing segments of HTTP usage. This is a clear opportunity for DEC Alphas and high-end Intel-based servers to move existing Sun hardware out of its cozy tenured position in corporate networks.

The bottom line: Java not only enables a new generation of Web content, it may also be the means for rationalizing the development of distributed-object computing. That Symantec was poised to seize this opportunity is due not only to shrewd technical assessment and business decision-making, but also to an early commitment to object-oriented technology in its own products, which enabled it to act very quickly.

Cafe is for the moment the most innovative, sophisticated, and streamlined way to develop Java applets, but vendors including Borland, Microsoft, Rogue Wave, and Take Five have all announced similar entries into the Java development market, so it will not be alone for long. What we see with Symantec's Cafe, however, is much more than a routine, incremental advance--it's a masterful and timely capitalization on the emergence of a technology. Let it be a lesson to the industry.

---------------------------------------------------------------------------- [Image] Send Feedback to Nancy Nicolaisen ---------------------------------------------------------------------------- [Image] ---------------------------------------------------------------------------- Copyright (c) 1996 Ziff-Davis Publishing Company. Reproduction in whole or in part in any form or medium without express written permission of Ziff-Davis Publishing Company is prohibited. Computer Shopper and the Computer Shopper logo are trademarks of Ziff-Davis Publishing Company.


[ Back to Index of Web Works | Top ]