On Lisa Rein's Radar
See this archive as a Directory Listing.
This page last updated May 9, 2003
"I once asked Ivan, 'How is it possible for you to have invented computer graphics, done the first object oriented software system and the first real time constraint solver all by yourself in one year?" And he said "I didn't know it was hard."
-- Alan Kay on Ivan Sutherland.
Alan took us on a tour of some of the interface marvels of the last 40 years of programming.
Using a series of demo films and several pieces of live software to illustrate his points, Kay made a convincing argument that there haven't been any major innovations in interface design or programming for the last 20 years.
You'll probably want to start with the entire presentation in two parts (in the little size and resolution that I've been calling "Small" Quicktime movie files).
These little files are fine for the talking head portions of the presentation, but you'll notice that, as the presentation progresses, there are less and less talking heads and more really cool visuals where the little window (or a pixelated enlarged window) won't do. For this reason, I've made higher resolution versions of the smaller movies available.
More details about the presentation from Alan Kay:
The whole talk was in Squeak, which is a 21st century version of the Smalltalk that we created at Xerox PARC. What looked like a "superPowerPoint" was Squeak's "unlimited desktops" user interface -- sorted for each talk.
The children's programs that were demonstrated are called "Etoys" and are also part of Squeak.
Squeak also has powerful media capabilities, all built-in. Squeak runs "bit-identically" on more than 25 platforms, from bare chips to supercomputers, and all the standard ones in between. It can also act as a plug in. Squeak is open source, free, and has a nonpolluting and liberal license. A good way to look at it is as an alternative view of personal computing done by some of the original inventors of the ideas.
Note that the sound is really low for the first part of the presentation. The sound gets better later on...
Alan Kay at Etech - Part 1 of 2 (Small - 58 MB)
Alan Kay at Etech - Part 2 of 2 (Small - 66 MB)
The "a" and "b" versions of each part are both rendered at a lower resolution and cut into smaller pieces for easier downloads on slower connections.
Tim O'Reilly introduces Alan with one of his own quotes. Tim warns us that he might not be getting it right, and, indeed, he mixed it up a bit:
Kay helped me out later with the real quote: "The best way to predict the future is to invent it" (...uttered by Kay in 1971 at a Xerox planning meeting.)
Alan explains what his talk is going to be about: "...a little bit of complaining about where we are and what hasn't happened, pay tribute to a few things that were done a long time ago...(and) show you some ideas about how to make things better.." He also says that hopes to get the audience interested in Squeak so that he can enlist them in the project and that he will be previewing some alpha software at the end of his talk that he's really excited about.
This leads into a discussion and showing of an old demo film of Ivan Sutherland's Sketchpad UI implementation.Alan Kay at Etech - Part 1 of 6 (Med-res - 200 MB)
Alan Kay at Etech - Part 1a of 6 (Low-res - 67 MB)
Alan Kay at Etech - Part 1b of 6 (Low-res - 82 MB)
Kay discusses some of the earliest Graphical User Interfaces and provides clips of Englebart's system.Alan Kay at Etech - Part 2 of 6 (Med-res - 131 MB)
Alan Kay at Etech - Part 2a of 6 (Low-res - 64 MB)
Alan Kay at Etech - Part 2b of 6 (Low-res - 38 MB)
A movie of Englebart's collaborator, Bill Paxton, as he exchanges data with Englebart from a separate terminal.
Kay also plays a clip of a pen-based vector system from RAND in 1968.
Next, he demonstrates a learning program for children that combines Photoshop-like features with modeling capabilities that enable a child to apply variables and forces to objects in real time in order to learn about physics.Alan Kay at Etech - Part 3 of 6 (Med-res - 171 MB)
Alan Kay at Etech - Part 3a of 6 (Low-res - 69 MB)
Alan Kay at Etech - Part 3b of 6 (Low-res - 58 MB)
Kay plays a movie of students conducting Galileo-like tests from the roof of a building. He then demonstrates how such tests can be taken a step further using a video camera and another graphics/modeling application.
Next, Kay demonstrates another application similar to the car graphics/object application he demo'd in Part 3. In this program, a spaceship is moved around and affected by forces (that are manipulated by changed variables within tool windows).
A "Smart Robot Car" application and "Face Ball" application are also demonstrated in action.Alan Kay at Etech - Part 4 of 6 (Med-res - 169 MB)
Alan Kay at Etech - Part 4a of 6 (Low-res - 81 MB)
Alan Kay at Etech - Part 4b of 6 (Low-res - 47 MB)
Here's where Alan and David A. Smith (a longtime major contributor to 3D on personal computers) demonstrate how this new "Squeak" environment can be used to create objects within the environment itself in real time.
The 3D virtual space environment was the coolest thing I've seen in a long time. Alan was the Rabbit and Dave was Alice. They showed one perspective on the left screen and the other on the right. (I got shots of both perspectives.)
Smalltalk was the first complete dynamic object-oriented language, and was one of the main SW implementation vehicles at Xerox PARC in the 70s. It was the first system to have an overlapping window UI (invented by Kay in the early 70s). It was also quite late-bound, and got this idea and technique from LISP.
Squeak was created by a team that includes Alan Kay, Dan Ingalls, Ted Kaehler, John Maloney, Andreas Raab, Kim Rose, Scott Wallace. The hackers' site is http://www.squeak.org. The children, parents and teachers site is http://www.squeakland.org.
The "prealpha" 3D collaboration environment is called Croquet. It is part of an experimental version of Squeak, and will also be part of Squeak releases in the future. Croquet was done by David Smith, David Reed, Andreas Raab, and myself. It's rather sparse website is http://www.opencroquet.org.Alan Kay at Etech - Part 5 of 6 (Med-res - 179 MB)
Alan Kay at Etech - Part 5a of 6 (Low-res - 64 MB)
Alan Kay at Etech - Part 5b of 6 (Low-res - 65 MB)
Kay demonstrates how to create objects within his Squeak programming/graphic environment in real time. Alan stressed the importance of programming languages moving over to "late binding" models.
Late-binding is something I definitely don't understand fully yet, but I am convinced that it's a concept that all programmers will need to understand as soon as possible if they want to stop making broken software.
Alan provides a bit more details about late binding for us here.Alan Kay at Etech - Part 6 of 6 (Med-res - 244 MB)
Alan Kay at Etech - Part 6a of 6 (Low-res - 79 MB)
Alan Kay at Etech - Part 6b of 6 (Low-res - 88 MB)
Most software is made by programmers creating text files that are fed to a compiler and loader which makes a runable program. One can tell how early- or late-bound a system is by looking at the things that can be changed while the program is running. For example, it is generally true of C based systems that most changes in the program have to be done by going back to the text files, changing them, and recompiling and loading them. This is even true of Java. Organizationally, this often leads to at most one or two system builds a day before most bugs can be found.
A late-bound system like LISP or Smalltalk can change pretty much everything while it is running -- in fact, both these systems are so good at this that their development systems are written in themselves and are active during runtime. For example, a program change in Smalltalk takes less than a second to take effect, thus many more bugs can be run down and fixed.
But late-bound has some deeper and more profound properties that include abilities to actually change the both the structure and metastructure of the language itself. Thus an important new idea can be assimilated into the constantly evolving process that is the system.
Another aspect of late-binding is the ability to change one's mind about already instantiated structures that are already doing work. These can be changed automatically on the fly without harming the work they are already doing.
Etc. Wheels within wheels.
These ideas are not new, but they are quite foreign and out of the scope of the way most programming is done today. -- Alan Kay.
Englebart Demo Film (Med-res - 39 MB)
This film is incredible! Englebart using one of the first real-time collaboration systems (also during the 1960's).
Collaborative Section of the Englebart Demo with Bill Paxton (Med-res - 18 MB)
This goes with the clip above.
Galileo Kids (Med-res - 28 MB)
Elementary school children learn about physics through hands on experiments involving dropping objects from buildings and filming it/mapping the fall on a computer.
Kid Program (Med-res - 57 MB)
Alan demonstrates how a program that enables children to create a car and drive it around can also teach them basic science properties.
Audio - Alan Kay Part 1 of 3 (MP3 - 21 MB)
Note: the sound is really quiet on this clip because I had a direct feed that was recording too low. The rest of the presentation is recorded with my live mic at a better level.
These photos are also available for download from the Directory Listing for this archive.