Self: The Video
If you’re interested in software development—even if you’re a non-programmer who wonders if you might ever be able to learn this stuff, or if you’re interested in effective ways of teaching programming—you should watch this video of the Self system in action. (I recommend watching one of the big ones, even though they’re very large files, so you can see what’s going on on the screen.)
This video was made in 1995. It’s a video produced by a software research lab, and that shows in the production values. But you can see in the video the genesis of a lot of today’s software technology. The Squeak user interface system is borrowed from Self. (But we all work in web applications, you say? Avi Bryant is trying out the same ideas in that context.) Self is the original Naked Objects system. The prototype-based OO system that’s at the root of JavaScript (and was central to NewtonScript) originated in Self. Ruby’s singleton classes were influenced by prototypes. And the implementation technology is equally impressive. Remember that the demo you see is written entirely in Self, and is running on Sun computers from 1995. The techniques pioneered in Self became the basis for Sun’s HotSpot Java VM—one of the names in the credits is Lars Bak, who went on to become HotSpot’s architect.
The Self project at Sun is, unfortunately, long dormant. The web page is still there, and if you’ve got a Mac and are still running Jaguar you can run it. There are still a few problems on Panther, unfortunately. (For that matter, if you have a Sparc machine running Solaris you can also try it out.)
But whether it’s directly useful today or not, it’s still fascinating history, and it’s sobering that although Self has influenced other technologies, those more successful systems are in many ways pale shadows of the original. It’s yet another vivid demonstration that much of the future of computing can be found in the past.