The Joy of Squeak
March 17, 2008 by Mark Miller
I found this through The Weekly Squeak. Randal Schwartz demo’d the current Squeakland version of Squeak/EToys on Leo Laporte’s show, “The Lab” (video link). I just think it’s neat it’s getting some mainstream recognition.
Schwartz and Laporte gave a quick history of Smalltalk at the start, and they told it pretty accurately. For the uninitiated it may go by too quickly. Squeak’s heritage goes back to the Xerox PARC days of the 1970s, back when they were developing Smalltalk. Smalltalk was the system they developed to create an interactive computing environment for children. It was the first implementation of Alan Kay’s vision of a “computer as medium”. This is the system Steve Jobs saw that inspired Apple to create the Macintosh. Smalltalk is still used today in large firms, particularly major banks. Interesting how a system developed for kids would be put to such a serious use, eh? Well, that was the idea, though as Kay has said with a little regret about Smalltalk’s history, the kids were shoved to the side, and the “professionals” took it as their own. Schwartz said Smalltalk is used wherever you need to rapidly create or change “products or screens”. I take that to mean “software”, but who knows. If so, isn’t that what a lot of businesses need? I mean, what’s RAD all about if not this?
Just a quick note. Laporte said something that’s untrue. He said that the mouse was invented at PARC. It wasn’t. Douglas Engelbart invented the mouse before PARC was created. The Xerox team used it with the Alto computer and Smalltalk. Laporte was basically right when he said that the graphical user interface as we now know it, with mouse interaction, was invented in the Smalltalk system at PARC. More than that, the language used in it, also called Smalltalk, was the first well designed OO language. Other teams at PARC worked on such things as networking machines together using ethernet, exchanging e-mail, creating WYSIWYG displays, and laser printing, bringing it all together with what the Smalltalk team created. They really did create the future.
Schwartz and Laporte briefly talked about commercial Smalltalk environments, and how they’re still sold. Laporte added that it’s “expensive”. Somehow I wonder if that’s more perception than reality. What they don’t say is that Squeak at its heart is the same thing, and it’s free. They leave that for the audience to figure out.
What Schwartz shows is the version of Squeak that’s shipped on the XO Laptop. This version is the current one available from Squeakland. You can get it for Windows, Mac OS (7.6 or higher, and OS X), and Linux.
There are two editions of Squeak. There’s what I think is commonly called the “Squeakland version”, and then there’s the “Squeak.org version”. Squeakland is the one typically used for educational purposes. The Squeak.org version is the one typically used by professional developers, like those using the Seaside web framework. The main difference I think is in how they’re configured, what APIs are included, and how the main visual environment is set up.
What Schwartz shows is a typical EToys demo: “driving the car”. The first time most people see this demo they’re amazed, because they’ve never seen software run like this before. That was my reaction when I first saw Alan Kay do it at ETech 2003 (video link). Without running an app., Schwartz starts a project, grabs a brush from a “paint” panel, and selects a color. He draws a red car (top view) on the screen, just freehand. He then shows how it can be manipulated, and how it can be made to move by itself, just by a few mouse actions. Then, for the coup de grace, he draws a “steering wheel”, and links it to the car’s motion instructions, again using mouse actions, without stopping the car or any running program. It all happens in real time. He rotates the wheel and now he’s steering the car as it moves, all within the span of about a minute!
Smalltalk programmers have known this way of programming for years. It’s interactive. You’re able to change your code while it’s running. What’s cool about this is that through this model children can learn about programming with objects without it getting too hard, and it’s similar to the experience Smalltalkers get with the underlying environment.
With EToys it’s very easy to create objects. You just draw them on the screen. Each object also has a standard set of properties and behaviors that can be manipulated. More can be added by writing scripts, which involves writing a little Smalltalk code. There are some differences between programming in EToys and the underlying Smalltalk environment, which I won’t go into, but it’s okay. The way EToys does things reduces the complexity. The idea was to invite kids in, not to scare them away by making it too complicated. It introduces the idea that programs are simulations of models. The model is the interaction of objects–their relationships to each other. Each object is designed by the programmer to carry out certain behaviors in response to messages. What I think makes people excited when they see this is they realize that they can take what’s in their imagination and see it play out before them on the screen. That was always a joy for me as a teenager, though getting to that point, using the technologies I had available to me was sometimes a tough road.
EToys brings Smalltalk back to the vision that Alan Kay wanted for it all along, a computing environment that can be used by ”kids of all ages”. EToys provides an easy to use and program simulation environment. It’s fun for adults, too, though I don’t think it’s complete enough for all the things adults would want to do with a computer. For that, there’s the underlying Smalltalk system, which provides a powerful environment in which they can create their own programs/systems. Together it comes pretty close to Kay’s original Dynabook vision.
—Mark Miller, http://tekkie.wordpress.com
Thanks for that nice transcript of the segment!
As far as “inventing” the mouse, an invention doesn’t exist until it has found a home. And PARC really found a home for the mouse, by developing the windows-and-mice environment that was eventually taken by Apple and then later Microsoft.
Also keep in mind that the segment is mostly unscripted, and my reactions to Leo and Leo’s reactions to me are genuine, and all happen far faster with the lights and camera on than you can possibly beleive, so if I was a bit sloppy in speaking, that’s just the nature of television. We have far more time on the podcasts to interact… for example, the FLOSS Weekly podcast on Seaside with Avi Bryant (http://twit.tv/floss21) goes into greater depth of the history of Smalltalk and how Seaside is revolutionizing the web space by using a 25-year-old technology.
Squeak is great….
but god damn your blog name is about the gayest thing i’ve run accross in quite awhile.
“lol, i like computers. i am a techie”
please end this bullshit.
@Randal Schwartz:
Re: thanks for the nice transcript
You’re welcome.
Re: the definition of invention
I’ve known for a while that people have different definitions of the term “invent”, and it puzzles me, because to me inventing something means you’ve done the work of researching what goes into the product, and actually produced a prototype that has some demonstrated use (it works and does something useful). Engelbart used his mouse in a 1968 demo he did at Menlo Park, demonstrating NLS. He gave a context for it, showing that it could be used as a device for selecting items on a screen, and for drawing graphics. In addition, he showed it in the context of collaborative computing, where more than one person’s mouse could be used on the same screen. I’d say that’s more than enough to claim that he invented the device and a mode of use for it. What the Xerox team did was realize the utility of the mouse in a different, though somewhat similar context, one that we all know about today. I know that was your point, but to use some people’s definition of “invent”, we might as well say that Xerox invented the mouse, but not until 1978 when they started selling the Xerox Star. In other words, a product that was actually for sale. I don’t like these distinctions, because I think they neglect the research efforts that went into creating the product in the first place. I call something invented in the first instance where it becomes fully formed. I think that was achieved before PARC.
Re: extemporaneous remarks on show
I kind of got that sense. I know what you mean. Thanks for explaining that though. I didn’t mean to imply that you guys said anything that was deliberately false. In past posts I’ve quoted people’s extemporaneous remarks, and corrected them where they’ve flubbed, substituting a paraphrasing for their words. I do that because I think they had something valuable to say, but in print it’s hard to get that sense that someone didn’t say something deliberately. I’m also a nitpicker for facts.
I’m always interested to hear what Avi’s up to. I’ll listen in. This really is a situation where we can say “back to the future!”
Another word we could use for it is “renaissance”.
Anyway, thanks for stopping by!
@Graham:
I have thought about changing the tag line of my blog, since it doesn’t capture the spirit of what it’s about anymore, but I’ll be keeping the name.