DæmonNews: News and views for the BSD community

Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

Bill Joy delivers USENIX keynote address

Matthew Hunt, mph@freebsd.org

The keynote address:
Bill Joy stands at the lectern,
Saying what will come.

Bill Joy of Sun Microsystems delivered the keynote address on 21 June 2000 at the USENIX Technical Conference in San Diego. Joy's talk focused on his predictions of the future of computing, drawing on his extensive experience in the industry.

Joy began by recalling the origins of Open Source UNIX, before that term had been coined. He stated that sharing code was a logical extension of academia's policy of sharing and publishing research work. There was controversy in the 1970s about whether software was a research product that ought to be published; Joy and others believed that it was, and as we all know many UNIX advances were developed at universities. BSD users in particular are indebted to developers at UC Berkeley, including Joy.

Joy expressed concern that universities are becoming more proprietary and cited an article entitled The Kept University which appeared in The Atlantic Monthly. While these concerns are legitimate, I found fault with Joy's simplistic argument that scientific data are published and that consequently software should be as well. The truth is that data are often proprietary; scientific results obtained from analyzing data are published, but if the data are likely to yield further results the researcher is likely to withhold them from publication, at least for a time. The question then arises: Is software produced at a university more like a scientific result, teaching us something fundamentally new, or is it more like unprocessed data or research infrastructure, which someone has developed on the way to a fundamental result? If it is the latter, it is generally accepted that the infrastructure will remain proprietary, at least long enough for the researcher to reap the rewards of creating it! While Joy might have been making an interesting point, he did not develop it adequately for his argument to be interesting or convincing.

Joy then explained that one of the strengths of UNIX has been that its interfaces and protocols have been well-defined, but implemented multiple times. Because the multiple implementations have been designed to work together properly, UNIX has been a modular and robust system. He contrasted the UNIX approach with Microsoft's; their claim that centralization is necessary for innovation (e.g. incorporating a web browser into the operating system) is "beyond retrograde." Instead, system designers should place boundaries on the components and ensure their separation.

Moving on to the topic of Java, Joy announced that he "wrote a really boring Java book." He became frustrated with C in the 1970s and early 1980s, finding that the language promoted "clerical errors" and provided inadequate support for abstractions. He tried to re-write the UNIX kernel in a "safe" object-oriented language, but found no suitable language for doing so. When Gosling developed the idea of Java, Joy was impressed with the idea that it was thoroughly specified, so that it would run identically on all platforms. He likened the situation to the laws of physics which are, we believe, the same everywhere. He found it desirable that the erratic behavior due to common bugs in C code, such as retaining a pointer to freed memory, be reduced.

Joy did discuss two features absent from Java that he would like to include; both are of interest to researchers doing scientific computations. First, he proposes that the primitive units be dimensioned; that is, that they have units associated with them. If you attempt to add "3 meters" to "2 hertz", the language would protest; if you try to add "2 furlongs" to "8 leagues," the language would either protest or perform the conversion implicitly.

Second, Joy noted that Java specifies IEEE arithmetic, in order to provide consistent results from platform to platform. Instead, some users might prefer the best results possible on their platform. He also suggested that the language provide a facility for keeping track of uncertainties accumulated in the arithmetic operations, and provide not only the results of the computation but also an uncertainty interval.

Joy then stressed the importance of "Connect-a-Thon" interoperability tests, to ensure that systems be able to talk to each other. He cited the development of NFS at Sun as a situation where it was important to conduct periodic tests to make certain that the English protocol specification was being interpreted the same way by all of the implementors.

In a related note, he pointed out that protocols tend to outlive systems: Of the machines speaking TCP/IP today, few of them were around when the first TCP stacks were written! So, how do you ensure long-term compatibility? He suggests authorities like the IETF to define protocols. He pointed out that it was important that Sun maintain control over Java when Microsoft tried to alter the language, and he seemed to consider the Linux community naïve for thinking that the community could not be bought out by, say, a deep-pocketed company from Redmond. He claimed that money can defeat a community-enforced standard.

Every year or so, there's an article somewhere announcing that Moore's law (which states that computing power per unit cost doubles about every 18 months) will soon fail, due to fundamental physical limitations. It hasn't happened yet, and Joy claims that it will hold out for another 30 years due to advances in molecular engineering, improving performance by a factor of one million. This will provide an improvement even greater than the factor of 100,000 which he has seen during his career. Furthermore, he believes that developments in algorithms will provide even greater improvements, especially in scientific fields such as simulation of complex systems. (This belief was echoed by experts from supercomputing centers at a recent astronomy conference I attended.)

As systems grow, there will be increased benefit to storing vast amounts of data locally, instead of incurring the latency of querying a remote server. Systems will become increasingly decentralized as a result, and an evolution of the Web will become increasingly pervasive, and segregated into components which are useful at work, at home, or wherever you happen to be. Joy predicted that we will see a greater tendency for your personal information to follow you around from home to office to your PDA. This will require fast persistent connections everywhere, and he has been disappointed with the slow deployment of such technologies (e.g. cable modems, DSL, and wireless communication).

Joy then discussed ways of improving UNIX reliability. He believes that it will be essential to deal with hardware failures in a graceful manner and work around them. He also proposed a controversial idea that we should re-implement systems multiple times, and have them "breed" a successful solution by working around each others' faults, determining the correct solution by consensus. The systems should be able to work around users' failures, just as our real-life protocols (such as commerce) feature safeguards against various failure modes. He envisions systems as "relationship graphs," which describe how the various components (including users and outside systems) and interact with each other. Updating the system would consist of modifying the relationship graph, which he believes would be less prone to creating unforeseen damage than current development techniques.

In discussing Joy's address with other attendees, there seemed to be agreement that the keynote was not as technically interesting as USENIX talks usually are, and some ideas (such as "evolving" correct systems genetically) met with skepticism. However, Joy's distinguished career at Berkeley and at Sun Microsystems provided him with insight and experience that nobody questioned.


Matthew Hunt
Google
Web daemonnews.org

More Articles
  • Interview with Jan Schaumann
  • Interview with Theo de Raadt
  • Book Review: Virtualization with VMware ESX Server
  • Editorial: Not Quite Dead Yet
  • The Design of OpenBGPd
  • Interview with der Mouse
  • Letter to Steve Jobs
  • Interview with Manuel Bouyer on Xen
  • Apple and Open Source
  • BSDCan 2006
  • BSD Certification Survey Results
  • Lab in a Box
  • Ike Notes on BSDCan 2005
  • BSDCan 2005 Photos
  • FreeBSD Developer Summit Pictures

  • Advertisements




    Author maintains all copyrights on this article.
    Images and layout Copyright © 1998-2006 Dæmon News. All Rights Reserved.