Making A Little Smalltalk

While things like object oriented computing and model-view-controller are old hat these days, when Smalltalk burst on the scene, many people had never heard of these new ideas. While the little language with roots at Xerox and based on Simula never caught fire, it was very influential in a number of ways. Now Smalltalk luminary [Dan Ingalls] has the Smalltalk Zoo, a collection of Smalltalk-related items including several historical simulations you can run in your browser.

We were especially impressed with the AltoSmalltalk-72 simulation since our chances of running a real Alto are pretty slim. The JavaScript behind it actually implements the Alto’s Nova instruction set. The emulator then runs a 45-year old memory dump from a real Alto. According to [Dan], there’s no file system and the microcoded music and animation instructions are missing, but he hopes someone will add them as a spare-time project.

There are a few other project suggestions for anyone brave enough to dig into this old software. We found it amusing that the Smalltalk-72 Javascript interpreter runs over 500 times the speed of the original and has “nearly unlimited” object storage.

In Smalltalk everything is an object. With things like the turtle graphics object (@) and you can say things like:

@ go 50 turn 90 go 50 turn 90 go 50 turn 90 go 50\

It is less amusing when someone tells you they sent the + message to the 3 object in order to add something to 3, but that’s object-orientation for you. If you don’t know Smalltalk, try the snippets you can find on the right side of the emulator.

12 thoughts on “Making A Little Smalltalk

  1. Thanks for pointing it out! Ingalls’ Smalltalk Zoo is really well put together, terrifically documented and very approachable. That this system was operational in 1972 (mind blown) is a testament to what researchers can do. Wow.

      1. LISP was written in 1958, published in 1960, so not only should it have replaced the slightly older F0RTRAN and COBOL, it should have replaced most languages written after it also…

        Back in the 1990s a friend of mine used XLISP a lot – said that while his prototypes generally ran a lot faster than the production code written in more conventional languages did, they also usually did more.

    1. Even now, Apple does everything to disable F-SCript, teh Smalltalk IDE that interfaces with the native Objective C libraries, even though its perfect for tiny projects on the mac.

    2. Actually, Microsoft was not involved. In Smalltalk-80: Bits of History, Words of Advice, Glen Krasner said the four initial licensees were Apple, DEC (remember them?), HP, and Textronix.

      I was working at Tek at the time, and implemented the Smalltalk Virtual Machine in National Semiconductor 32032 assembler for a workstation that Tek never got out the door. We later ported it to Motorola 68010 and 68020 microprocessors on workstations that Tek did eventually (but half-heartedly) marketed.

      The Xerox PARC license was somewhat oppressive. Adele Goldberg wanted companies that would build “iron” for Smalltalk, and so the license said the licensees could only supply Smalltalk-80 on machines they build. We had it running on the IBC PC in the lab, but could not sell it. Things might have been different if it was running on every Windows machine!

      Apple could have sold Smalltalk-80 running on the machines they made (and there was limited distribution of it on a Lisa), but I believe they didn’t like the performance on the 680×0 processors of the day, and so scraped the GUI ideas off Smalltalk, and used C and assembler for the actual programs.

      DEC and HP implemented it on their hardware, wrote a report (also a requirement of the license), and abandoned it.

      1. Apple did release an implementation of Smalltalk-80 at some point (you could order it from DTS, and it came on one or two floppies), but Smalltalk-80 wasn’t really designed to work well inside of another GUI, nor with a one-button mouse. So you had to run it full-screen, and it was basically a toy, since it was a straight Smalltalk-80 image with no support for a disk-based object store such as LOOM.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.