From Self to HotSpot
A typed Smalltalk, a famously fast virtual machine, and a small team whose ideas ended up in languages that hundreds of millions of people use.
Smalltalk in the early 1990s
By the early 1990s Smalltalk had shown how pleasant programming could be: everything is an object, every action is a message, and the whole system — compiler, debugger, browsers — is written in itself and can be changed while it runs. Businesses liked it for that productivity. Two complaints kept coming up, though. Smalltalk was slow next to C and C++, and in big programs the lack of declared types made code hard to read and easy to break.
Two research threads
At Stanford and Sun Labs, the Self project had shown that a dynamically typed language could run fast. Its compilers watched the program run, noticed which kinds of objects actually reached each call site, and generated specialised machine code for the common cases. Urs Hölzle's doctoral work on type feedback and adaptive optimization made this practical.
At the same time, Gilad Bracha and David Griswold were working on a type system that would fit Smalltalk rather than fight it: optional, checkable without running the program, and based on the messages an object understands rather than on its class. They described it in Strongtalk: Typechecking Smalltalk in a Production Environment at OOPSLA in 1993.
Animorphic Systems
Around 1994 the two threads came together in a small company, Animorphic Systems (its legal name, LongView Technologies, is still printed in the virtual machine's start-up banner). The team included Lars Bak, Gilad Bracha, Steffen Grarup, Robert Griesemer, David Griswold and Urs Hölzle. They built a complete Smalltalk around the new type system and a new virtual machine that combined a fast interpreter with an optimizing compiler driven by type feedback.
Strongtalk ran unmodified Smalltalk programs much faster than the commercial Smalltalks of its day — and its types were entirely optional.
Sun, Java and HotSpot
Java appeared in 1995 and quickly took the attention Strongtalk might have had. In 1997 Sun Microsystems bought Animorphic. The team's virtual machine techniques went into a new Java VM, which shipped as HotSpot and became the standard Java runtime. Strongtalk itself was set aside.
Open source
In 2006 Sun released Strongtalk under a BSD-style licence: the virtual machine's C++ sources, the
Smalltalk class library and a Windows build. The program this site's edition was studied from,
strongtalk-r200.exe, is one such Windows build of the virtual machine.
Where the ideas went
- Java HotSpot — adaptive optimization and type feedback for the JVM.
- V8 — Lars Bak led Google's JavaScript engine, whose hidden classes and inline caches follow the same lineage.
- Dart — designed by Lars Bak and Gilad Bracha; its optional types echo Strongtalk's.
- Newspeak — Gilad Bracha's later language, a direct descendant of Smalltalk and Strongtalk.
- Go — co-designed by Robert Griesemer.
- Gradual typing — TypeScript, Python type hints and others share the idea that types can be optional and separate from how programs run.
A short timeline
- 1987–1991 — Self and its optimizing compilers at Stanford and Sun.
- 1993 — the Strongtalk type system is presented at OOPSLA.
- 1994–1996 — Animorphic Systems builds the Strongtalk system and VM.
- 1997 — Sun acquires Animorphic; the VM work becomes HotSpot.
- 2006 — Strongtalk is released as open source.
- Today — this site: the VM re-built in Rust, running in your browser.
Dates and names follow the published papers and the open-source release; the virtual machine binary itself names its authors only as "LongView Technologies LLC" and Sun Microsystems.