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

Related Web Works


[Image]

---------------------------------------------------------

[Image]

distributed software, java, and the future of computing

by andrew zolli, webmaster at siegel & gale. azolli@www.siegelgale.com

There's been much fanfare recently surrounding a host of new 'executable content' tools for the web, including Macromedia's Shockwave, Microsoft's Blackbird, and NeXT's WebObjects. But by far and away, the technology that has received the most attention is Sun's Java, the distributed, object oriented programming language, based on C++.

Java is usually touted for its ability to animate and add functionality to web pages and web page interfaces. While these aspects of Java are certainly impressive, and will certainly change the face of the web, they do not capture the most important aspect of this new programming tool. To see why Java is so important, and why so many companies like Microsoft, Netscape, and SGI are licensing it, one must look ahead several years, to a new emerging paradigm of computing.

[Image]

To best illustrate this new paradigm, its helpful to look at the current model of computing, and the role of the web browser in that model.

Currently, computer scientists conceive of four relatively discrete "levels of abstraction" in a working computer. At the lowest level is the hardware, or physical component of the computer. Above that level, exists the operating system, which handles much of the input, output and hardware interface. Above the operating system, there exists the level of the application, which enables the user to do more abstract tasks like balance a checkbook, play a video game, or wordprocess an article such as this one. Finally, above the level of the application, is the level of the network, which has resembled nothing as much as an "infinite hard-drive" of abstract information and connections between different computers.

Now, while this current model is clear, it does suffer from some important drawbacks. First, changes at any one level of abstraction can drastically affect the levels above. (For instance, if you change your operating system, many of your applications won't work, as many end users have sadly discovered.)

Second, there is an incredible amount of unnecessary redundancy built into the model. For instance, if you decompile two radically different applications, (say, a word processor and a spreadsheet) you'll find that the applications are, at the code level, suprisingly the same. This means that if you have 20 applications on your computer to accomplish 20 different tasks, you are wasting an enormous amount of disk space.

Third, not everything that a computer does fits neatly into the model. Web browsers, for instance, inhabit a peculiar niche in this computer ecology, wedged at the boundary between the application layer and the network layer. A program like Netscape's Navigator can be thought of as a strange hybrid, encompassing some of the functions of an application, such as enabling users to perform database queries, and some of the functions of the network, in the form of increased access to, presentation of, and interaction with abstract information, such as email and network news.

Now, how is Java going to change this tidy paradigm of computing which has held sway since the arrival of the first PC some 10 years ago? The answer is tied to the inevitable growth of the web browser into a new level of abstraction for the computer.

[Image]

The growth in complexity and features of web browsers is rather startling, and rather easy to forget. Only 24 months ago, web browsers such as the revered Lynx and Mosaic were small, machine specific applications with few features other than the ability to present static documents. In the months that followed Netscape 1.0's release, browsers have begun rather rapidly to assume more and more of the duties of the applications layer, (allowing for off-line viewing and authoring of documents,) and more and more network layer applications (like accessing ftp, email, network news, and gopher). Like a celestial star going supernova, the browser is engulfing more and more of the functions of the computer. (Witness: in 1993 one could fit several web browsers on a floppy; the newest Netscape Navigator requires several disks, even when compressed.) Such an expansion in size, services, and complexity cannot continue for long. There are simply too many tasks being built into one piece of software.

Many in the upper echelons of computing are beginning to believe that the elegant 'executable object content' concept behind Java will resolve this problem, by changing the web browser into a web platform, and eventually into a web operating system. In essence, this is a 'JavaOS', that will collapse all of the layers of a computer into one seamless system.

What does a 'JavaOS' look like? Its three cardinal virtues are that it is very small, very simple and very robust. In fact, it's an operating system with only two functions: to point at 'objects' out on the Internet and download them, and then compile and execute them. In developers terms, its a distributed, object-oriented operating system.

The implications of such a radically different operating system are breathtaking. Instead of having 20 applications to 20 different tasks, you will instead have one 'application' that rewrites itself to your task. If you want to use WordPerfect, for instance, you simply 'point' your computer at the WordPerfect site, grab those 15 objects that are unique to that software application, and grab the remaining 'common' objects elsewhere off the Internet simultaneously. A few seconds later, and you can be off and wordprocessing as usual. In other words, features, protocols, and objects are downloaded as needed, in a way that is completely transparent to the user.

In this model, software updates become a snap. If you prefer to use version 1.2 of a particular application, rather than 1.3, you can simply 'point' to that application out on the net. The end user no longer needs to focus energy on managing a big software library, since all the software versions are available on-line all the time. Updating becomes a matter of point and click.

[Image]

The benefits of this paradigm to hardware and software developers are also promising. Since the cost of physical distribution is all but eliminated, the cost of developing commercial software drops dramatically, and per-use fees enable software developers to reach markets that their products' cost previously priced them out of. For hardware manufacturers, a 'JavaOS' will enable the development of home computers for under $500, since it will require less components. (For example, no hard drive requirement, since the network itself holds all of the applications and all of the user documents.)

But that is only the beginning. Because this new 'JavaOS' will be small, (the current Java runtime compiler is only 220k) you can put a 'JavaOS' anywhere; in a computer, in a set-top box, on a wristwatch, in a pager, or in the dashboard of a car. And because Java is platform independent, and all of the hardware must be connected to the Internet to function anyway, it won't make any difference which machine you start and end a task on. You can begin a task at your desk before work, continue it in the car, and finish it before a 10 am meeting -- all on different machines, perhaps with radically different interfaces. A 'JavaOS' enabled world begins to approximate the 'ubiquitous computing' pioneered over the last few years at XeroxPARC, the research center that gave us the mouse and the Mac.

This 'JavaOS' vision does rely on two independent factors: the development of widespread, highly reliable, high bandwidth connections to the Internet, and the development of effective on-line payment mechanisms. Progress on each of these factors is progressing at an equally quick pace, and each show every sign of succeeding.

It is the vision of the future given above that is causing the frenzy of licensing and industry interest in Java: it represents the first conceptual tool for the next generation of computing. Chances seem good that the above vision, or one very similar to it, will actually come about. The pieces are coming together. And the most exciting part is that we, as web developers and programmers, will be there: both to see and to make it happen. To focus solely on the capabilities of Java today is to profoundly miss the point.

[Image]

---------------------------------------------------------

[Image]


[ Back to Index of Web Works | Top ]