A lot has been said and written about Java's "write once, run anywhere" (WORA) capability. There have been both supporters and detractors (e.g., "write once, debug anywhere"). Java's statement of WORA raised expectations about Java to the highest possible level and Java is often measured against these expectations.
The inventors of Java made the WORA claim based largely on Java's architecture, which includes both a technical and business architecture. The former includes such things as the Java Virtual Machine, Java bytecodes and standardized Java APIs. With the JVM, model applications can be developed based on a standardized language and API, and be protected from the need to incorporate special code for each supported platform.
The Java business architecture is supported by Sun's JVM licensing program that essentially distributes the development of platform-specific JVMs throughout the computer industry with such companies as Microsoft, Apple, IBM and Oracle. It's interesting to note that Java supports not only distributed computing from a technical viewpoint, but distributed industrywide software development from a business viewpoint as well. Java is successful and will continue to be successful because of the synergy between its technical architecture and business architecture.
It's true that Java initially didn't live up to the WORA expectations it set for itself. Even now there isn't a perfect WORA world for Java developers. This is an ongoing process and it appears that there is continuing progress.
The real value of Java can be determined not by how it measures up against its lofty expectations, but by how it compares to the old world of portability.
My experience with portability comes from the early days of Oracle. The first version was developed in assembly language. We soon discovered C, and set about to create the world's most portable database. History has shown that we did indeed accomplish this.
As with Java, a technical and business architecture supports Oracle portability. The technical architecture was simple. We segregated code into generic (kernel) modules and operating system-dependent (OSD) modules. Initially there were 30 or so OSD modules. Today there are hundreds. OSD modules are rewritten and maintained for each platform Oracle supports. Essentially Oracle has created its own virtual machine. If invented today it might be called the OVM.
The Oracle portability business architecture is quite simple as well. With Oracle's multibillion-dollar revenue base, it can finance the continual cost of porting to the 70+ platforms Oracle supports today. It's estimated that for every kernel database engineer there are about three porting engineers at Oracle. Even Oracle, however, is feeling the pinch of the high cost of porting, and has started to reduce the number of supported platforms.
This technical/business portability architecture has served Oracle well over the past two decades. But what about companies in the embedded database market? The model breaks down on the business side. Embedded database companies have revenue bases that are an order of magnitude smaller than Oracle's. The result is that these companies are forced to select a small number of platforms to support. They all support Wintel and possibly two to three others.
On the other side of the fence, customers are faced with a large installation matrix. They're required to purchase, install and maintain particular versions of Oracle with particular hardware and operating system versions. This must all be done ahead of time, before deployment. Should computers be added to a distributed system, more installations and configurations must be done.
Enter Java and "anonymous deployment." With Java's technical/business architecture, the dynamics of an embedded database company can change and has changed in the case of PointBase.
At PointBase we don't employ a single porting engineer, yet we have more porting engineers than Oracle. Our porting engineers are on the payrolls of such companies as Sun, Microsoft, IBM and Novell. With our small history (a year plus) and small engineering staff our product has been used by our customers on more platforms than Oracle supported in its first five years.
From our customers' point of view, the predeployment step of buying and installing a platform-specific product is completely eliminated. Our customers can deploy their data and data management through the Internet to an anonymous platform. This, after all, is what many have chosen Java for.
The old model of portability creates barriers to an emerging multiplatform world in terms of both cost and time to market. As new platforms are created, data management solutions for those platforms need to be made available rapidly. Those developing e-commerce servers know they're faced with many viable server platforms including Windows/NT, Solaris, Netware, OS/400 and Linux. People developing mobile applications are developing for Wintel laptops today, but expect to be able to move these applications to future mobile platforms. The emerging world of Internet devices and Web appliances will be inherently multiplatform. As Java applications are created for these platforms, the data management solution needs to be as anonymously deployable as the Java applications themselves.
About the Author
Bruce Scott, president, CEO and founder of PointBase, is a leader in the area of enterprise and embedded database architecture and product development. A cofounder of Oracle in 1977, Bruce cofounded Gupta Technology in 1984, pioneering the notion of the small footprint database server for Intel-based