THE SEARCHER (Brewster Kahle): Lew Tucker is Javaman. I've watched as he handled thousands of companies as Java's third-party evangelist. If the intensity of "Internet time" is a test of character, Lew passed the test.
Lew Tucker, trained as a biologist, is the former director of Advanced Development at Thinking Machines Corporation and is the director of JavaSoft's Corporate and ISV Relations for Sun Microsystems, Inc.
I kept hearing about Lew Tucker for years, but never in the context of computers or the Internet. It was about love. I call it "Ottavia's Dilemma."
I refer to my friend Ottavia Bassetti of Milano, "the Princess," as I call her, who had spent a few years in Cambridge, far below her station in life, working as an associate of Danny Hillis at Thinking Machines. When Ottavia showed up one summer's day in 1992 to visit me at Eastover Farm she was perplexed. She was ready to go back home to the Palazzo (right off via Monetepoleone), and resume her life in Italy, which included helping her father in his campaign for mayor of Milan.
"I"m lost," she said, with an accent worthy of the best of Fellini. "What am I to do? Live in a small apartment in Cambridge, spend my life programming parallel-processing computers?" "Of course not. So what's the problem?," I replied." "Oh, there is this boy at Thinking Machines. I don't know, I just don't know,"she said softly. "Princess," I said incredulously, "are you out of your mind? Get rid of him. Get on with your life. Go back to Milan. You weren't born to live in Geeksville."
Three years later in San Francisco, I am hosting a dinner that includes Cliff Stoll, Mike Godwin, Stewart Brand, and Jaron Lanier. We are waiting patiently for Sun Microsystems's director of Java Third Party Applications and anxious to hear about the implications of "executable content." Finally, he arrives with his wife, who apologizes. "We are so sorry to be late. The baby was cranky," she said in that familiar accent, worthy of the best of Fellini. Then she turned and smiled at Mr. Tucker, "The Evangelist."
THE EVANGELIST (Lew Tucker): When I first heard about Java, I knew that it was the answer. Java was the missing link that connected a number of ideas that had been forming over the years in my head and through discussions with friends and colleagues. Central to these ideas was the concept of "executable content." Executable content involves the delivery of content along with the means by which you interact with it. That is, content tightly linked with software which allows the user to view it or manipulate it in some way. Take for example VCRs and videotapes. While I'm watching the mandatory FBI warning about unauthorized copying, I would like to see my VCR reading in software that would allow me to view the film in any way I choose. This software would be specifically designed for the film itself and distributed with it on the videotape. Once the tape is loaded, I might choose to see the full four-hour director's cut, the ninety-minute theatrical release, or a twenty-minute condensed version. In terms of the Internet, if I were accessing a personal portfolio of stock information, instead of getting an ordinary list, along with the data I'd receive a spreadsheet program that would allow me to manipulate and analyze the portfolio according to my own wishes. This direct delivery of software with content is what I believe is necessary as we move into the digital information world.
When you talk about executable content, you face the following problem: how does the provider know what system the content is going to be viewed on? Today, software is system-dependent. Java is designed to be architecture-independent and run on almost all platforms. Application writers who write to the Java platform don't have to worry about the fact that the user is on a Windows system, a Unix system, or a VCR. From the developer's point of view, Java allows one instead to write to a single standard software platform, the Java Virtual Machine.
With Java, in addition to getting content from somebody, you're also getting a program. How do you know it doesn't have a virus? How do you know it isn't going to steal personal information that you have on the system? Java is designed so that the program is actually checked during run-time to make sure it's not doing any damage to your system. The Java environment puts constraints around each program running the executable content in a kind of a padded cell, prohibiting it from accessing files or opening up unauthorized connections.
Because Java is network based, communication is an integral part of Java applications. For example, say you had a Java-based encyclopedia or part of an encyclopedia that is six or twelve months old. Since the software is intrinsically network based, the program can send messages back to the publisher, and get an update and include it automatically. Content is no longer a static thing; it's dynamic, because it uses the network to connect to servers and with other content sources. To be able to do all of this seemlessly, you need standards.
People who are publishing on the Net now use HTML. It is independent of whatever browser or viewer is being used. It's ubiquitous. You can get it with every system today, and it is what has made the World Wide Web so popular. It is limited, however, because it's really just a description language for a page. Additions made to HTML allow it to deal with forms and other ways of interacting, but it is limited by its origin as a page-description language.
Java allows programs to live on top of HTML pages. Because a Java virtual machine is installed inside a Web browser such as Netscape Navigator, programs can be run on any machine that runs Netscape. This marriage of Java and the Web is what is causing the enormous popularity of Java and it's adoption by today's major computer companies.
Another important attribute of Java is that it's dynamic. In order to construct a browser today, you have to know in advance all the different formats of the data that the browser is going to support. If you don't support that particular kind of format, then you need a helper application, already installed, in order to be able to view that data. The notion behind Java is that when a Java-enabled browser encounters a data type, or an image file format, that it doesn't understand, the browser can get the code off the Net to view that image format, download the code, and allow you automatically to view it. This opens up a tremendous new playing field for innovation. People who are content providers may find that they can't display the data in one of the traditional HTML formats. Now they're free to invent new formats, because when they invent the new format they also invent Java code that goes along with the content. Java is one of the main enabling technologies on the Internet today and is going to open up a whole range of services that can be provided on the Internet.
Java is also being applied inside corporations. Businesses are finding that keeping their desktops up-to-date is extremely costly. With Java they only need to have a Java-enabled browser on the desktop. Services or applications to be deployed come across the network from the servers themselves. A user who wants to fill out a travel form or an expense report can at the time of executing the form get the program itself. This means that if an application needs to be changed, the system administrators don't have to reinstall all the software on the desktops. They change the software, which is on the server, and it is automatically downloaded the next time people want to file a form.
A number of vendors are also talking about developing a kind of Internet terminal designed to run the Java Virtual Machine. This shields the application writer from the specifics of the hardware. All they have is a Java-enabled browser and applications will come over the Net when they are needed. This development is going to have a long-range impact on the entire software industry. Today, publishers are creating software products that typically sell in the $200 to $400 range and are getting tremendously complex. Most people never need to use all the features built into a typical application. One of the properties of Java is that it's a very simple language. It's designed for building very small applications to deliver functionality just when you need it. This aspect of Java is very powerful and poses a great challenge to the software industry as it is today. The distribution model is about to change. The traditional software channel is disappearing. On the Internet, the cost of delivering products to the consumer is approaching zero.
This change in the distribution model, coupled with the ability to have applications that are very small, dynamic, and updatable by themselves, may lead to a restructuring of the software industry. I believe we will see movement toward a leasing model. If I want to use a particular piece of software to create a presentation, I may need that piece of software only for a couple of hours every month. Why I should have to own it? With a leasing model, whenever I need to use that piece of software, I would get onto the Net and request the very latest and greatest. I would pay for that usage. The next time I came back, I would get the upgraded version automatically.
Vendors themselves have an interest in doing this because it puts them much closer to the customer. They're able to see exactly what the customers are doing with the software, what features they like, and, at the same time, they're able to reduce their distribution costs. Software vending machines will be available on the Net. The downward spiral of software prices, coupled with the ubiquitous nature of the Internet, indicates that the number of different software players will grow. A lot of innovation in software has been stifled by the fact that we've had very big players in the software market; they've dominated distribution channels. It's difficult for a small garage shop with an interesting piece of software to get it out to the market. The Internet levels the playing field. With the reduction in distribution costs, the small players will be able to compete very effectively with the large ones.
Wherever I go, invariably I get asked the question Why is Java so popular with developers? A lot has to do with its origins. Java was originally designed by James Gosling as a programming language for consumer devices, an area where you simply cannot afford software bugsyou're talking about having millions of devices out in the field. Gosling therefore designed Java as a simple-to-use, object-oriented language. Java has many features that make it easier for programmers to build practically error-free applications. It incorporates features from other popular languages such as C++, Smalltalk, and Lisp, and is therefore familiar and easy to learn. The explosion of interest in Java happened when it became linked to HTML and the Internet. Sun's Java Web site is now getting around one-hundred thousand downloads of the Java Developer's Kit a month. That's a lot of interest. Developers really see Java as the new platform for Internet computing. Java addresses the issue of platform-independence and reduces the development cost of new applications and services.
Java's popularity and potential have attracted widespread support throughout the computer industry, and Sun has adopted an open policy that allows everyone to share a common set of programming interfaces. Even Microsoft has "embraced" Java as a key element in its Internet strategy. What is really important, however, is that for the Java revolution to succeed, these interfaces must be open and available on all systems. This is the only way that we'll get applications that can run anywhere. Microsoft would like to make Java simply a part of their Windows environment and force the developers to write code that only runs in their environment, but this runs counter to the whole idea behind the Java revolution.
Java is quickly evolving from a language for Web computing to become a common software platform covering a wide range of devices. This change, I believe, will have a profound effect on the computer industry. Applications will be written once and run everywhere. Executable content, applets, and agents will be able to move freely about the Net without regard for the underlying hardware or operating systems. Handheld devices, pagers, telephones, and other communication devices will allow us to access the Net from anywhere. Java opens up a whole range of new opportunities. The Net as we know it will fundamentally change as innovative developers exploit the new possibilities.
THE CONSERVATIVE (David Gelernter): At Thinking Machines Corporation, Lew Tucker helped create one of the highest-powered computer science research environments ever built. Though Thinking Machines was a losing proposition commercially, it contributed a great deal to the intellectual capital of computer science; Tucker was one of the people who made that possible.
THE GENIUS (W. Daniel Hillis): It's no coincidence that you've got a guy that was trained as a biologist working on getting a language for computers to talk to each other on the Net. He's helping create the first really complicated thing on this planet since biology.
Back to Contents
Excerpted from Digerati: Encounters with the Cyber Elite by John Brockman (HardWired Books, 1996) . Copyright © 1996 by John Brockman. All rights reserved.