Bill Joy’s Law: 2^(Year-1984) Million Instructions per Second

The peak computer speed doubles each year and thus is given by a simple function of time. Specifically, S = 2^(Year-1984), in which S is the peak computer speed attained during each year, expressed in MIPS. -Wikipedia, Joy’s law (computing)

Don Hopkins
6 min readJun 11, 2018
Andreas Bechtolsheim , Bill Joy, Scott McNealy and Vinod Khosla of Sun Microsystems

Introduction

These are some highlights from a prescient talk by Bill Joy in February of 1991.

“It’s vintage wnj. When assessing wnj-speak, remember Eric Schmidt’s comment that Bill is almost always qualitatively right, but the time scale is sometimes wrong.”
-David Hough

C++++-=

“C++++-= is the new language that is a little more than C++ and a lot less.”
-Bill Joy

In this talk from 1991, Bill Joy predicts a new hypothetical language that he calls “C++++-=”, which adds some things to C++, and takes away some other things.

Oak

It’s no co-incidence that in 1991, James Gosling started developing a programming language called Oak, which later evolved into Java.

“Java is C++ without the guns, knives, and clubs.”
-James Gosling

Fortunately James had the sense to name his language after the tree growing outside his office window, instead of calling it “C++++-=”. (Bill and James also have very different tastes in text editors, too!)

Java

Kim Polese came up with the brilliant name Java.

So why did they decide to call it Java? The choice of this trademark is legendary, but how and why Sun eventually “went for coffee” is something of a lingering mystery — even to those involved.

“I named Java,” said Kim Polese, then the Oak product manager and now CEO of Marimba Inc. “I spent a lot of time and energy on naming Java because I wanted to get precisely the right name. I wanted something that reflected the essence of the technology: dynamic, revolutionary, lively, fun. Because this programming language was so unique, I was determined to avoid nerdy names. I also didn’t want anything with ‘Net’ or ‘Web’ in it, because I find those names very forgettable. I wanted something that was cool, unique, and easy to spell and fun to say.

Highlights of Bill Joy talk, re-broadcast

From dgh@dgh Thu Feb 7 12:09:13 1991
Date: Thu, 7 Feb 91 12:07:38 PST
From: dgh@dgh (David Hough)
Subject: Highlights of Bill Joy talk, re-broadcast

This has been given around the world, most recently at the quarterly directors meeting on 31 Jan. A tape was made that will be available from somebody somewhere later. It’s vintage wnj. When assessing wnj-speak, remember Eric Schmidt’s comment that Bill is almost always qualitatively right, but the time scale is sometimes wrong. John Gage collaborated with Bill. Note that some of the specific Sun and SPARC projections are confidential.

Cheap microprocessors have revolutionized computing, but their impact will pretty much end by year 2000, to be replaced by other leading technologies.

Sun’s historical strategy #1: portable software. Unix is portable and runs on all computers; therefore it runs on the fastest and the best price/performance systems.

Sun’s historical strategy #2: open systems. These allow bright people everywhere to add to the system.

Tenets of open systems:

1. all interfaces published; implementation technologies licensed

2. price based on cost rather than value. this killed closed systems.

3. empower individuals: no permission needed from a bureaucracy to investigate and add to the system. The answer is yes by default. Most productive bright people are in small organizations. Large organizations (like Sun) have lots of bright people in absolute terms, but their density is low, and they waste their energy in meetings trying to get the bureaucracy out of their way. Open systems empower small organizations to do great things.

Where does the highest value added (to open systems) come from:

1. new interaction metaphors (e.g. multimedia, pen systems)

2. new software exploiting above

3. generic hardware

4. labor-intensive service/support

You need a mass market installed base to support a small software or hardware organization. 10% penetration of 20,000 seats per year at $200 revenue per seat each barely supports a manager, an engineer, phone, and travel. 100,000 seats per year seems to be the minimum. This means Windows 3, Macintosh, or SPARC/Unix.

The new economic model of the computer industry is over $200,000 sales per employee, good price/performance, and open technology. The dinosaurs with the opposite model and collapsing. [Elsewhere Scott McNealy commented that the computer industry as a whole has twice the manpower it needs and can afford, leading to continuing problems at IBM and DEC, not to mention Unisys, Prime, Wang, DG, … ]

First law of technology: the more you change the more you have to change.

Second law of technology: innovation will occur… usually somewhere else. Don’t bet against innovation. Open systems is a way to bet on innovation, but open systems is not the goal, it is the means to the end: closed systems are unable to cope with obsoleting outside innovation.

Summary: wnj formula for success:

1. bet on innovation

2. open systems

3. mass platforms

Windows killed OS/2; this is great news for Unix, because OS/2 was the last best hope for a competitor for Unix. Windows will be permanently hobbled by being built upon MSDOS.

Open hardware/software successes:

1. ethernet

2. IEEE 754 floating-point arithmetic

3. Unix/Posix

IEEE P1754 (SPARC) should finish up in 1992. Will Open Sparc, like Open Unix, have the same effect as distributing Unix to the universities in the 1970’s and 1980’s did?

Software distribution channels:

1. retail is failing. The costs of running a store and stocking inventory are too high. Few titles can be kept in stock.

2. mail order is cheaper. You can get anything overnight with a charge card.

3. CDROM can be used to distribute demos, encrypted applications, and instructional videos. Sun will be able to distribute any third-party application for $3000. Customers will hear about a product or read an ad, try the software on the CD, then phone an 800 number with a credit card to get a password. This minimizes the overhead for small software companies.

Where did the energy go in the 1980's? To a 10X increase in the amount of source code in the base platform. A lot of that went to support too many networking protocols. Not enough went to user interface. By the year 2000, the amount of source code in the base will increase by another 10X to 10–20 million lines; it should all go into ROM, to handle all the new metaphors:

  • voice
  • natural language
  • handwriting
  • heads-up 3D displays
  • pens
  • computers in desks, walls, etc.

The 1980’s were devoted to perfecting the Xerox Alto metaphor.

Convergence: Macintosh, Unix, and Windows are all converging from the point of view of the average user — less and less distinguishing features among them.

Emergence: multiprocessor software support and exploitation — Macintosh and Windows won’t have an installed base to support this kind of application, but Sun will be first to ship 100,000 MP’s per year.

wnj’s law: 2**(year-1984) performance is slightly behind, but will catch up with superscalar and multiprocessor technologies. 1993 will see three classes of superscalar machines:

  • desktop uniprocessors for simple needs
  • desktop multiprocessors for power users
  • supercomputer servers

But they will all be built from cheap common components! These will make them cheap enough to build and economic enough to write software for.

Networking: is taking off, but in two directions:

1. Gigabit local networks

2. 65 KB ISDN remote networks

Everything about these two cases is different. All problems have to be rethought and resolved for these two environments. There’s a lot of research on compression algorithms to move lots of data (interactive video) through relatively narrow channels.

Software development: C++++-= is the new language that is a little more than C++ and a lot less. Additions include all the things we figured out 20 years ago:

  • storage management (garbage collection)
  • exception handling
  • parallel processing
  • automatic test generation

Deletions include wild pointer bugs and storage leaks.

The many new user interface metaphors are a great opportunity to exploit reusable libraries.

Mid 1990’s environment:

  • 3G machines (1000 mips, 1000 MB, 1000 mflops)
  • 64-bit address space
  • C++++-= for system programming
  • high level applications languages in the dynamic late binding
  • smalltalk and lisp tradition

Year 2000 environment: nomadic devices and designed spaces — offices, conference rooms, theatres designed to exploit technology.

SPARC in 1994: a $23 billion market consisting of

  • 2,000,000 uniprocessor desktops
  • 200,000 multiprocessor desktops
  • 20,000 multiprocessor servers
  • ALL running the SAME software!

The MIRVing of the Alto user interface into multiple new metaphors means that we are moving into very unfamiliar ground. Everybody should get a Macintosh and understand what’s special about it. We still have a long way to go.

--

--

Don Hopkins

User interface flower child. Pie menus, PizzaTool, SimCity, The Sims, Visual Programming, VR, AR, Unity3D / JavaScript bridge.