Linked by Thom Holwerda on Mon 23rd Oct 2017 09:55 UTC
Hardware, Embedded Systems

We succeeded in running the Smalltalk-76 language on our vintage Xerox Alto; this blog post gives a quick overview of the Smalltalk environment. One unusual feature of Smalltalk is you can view and modify the system's code while the system is running. I demonstrate this by modifying the scrollbar code on a running system.

Smalltalk is a highly-influential programming language and environment that introduced the term "object-oriented programming" and was the ancestor of modern object-oriented languages. The Alto's Smalltalk environment is also notable for its creation of the graphical user interface with the desktop metaphor, icons, scrollbars, overlapping windows, popup menus and so forth. When Steve Jobs famously visited Xerox PARC, the Smalltalk GUI inspired him on how the Lisa and Macintosh should work.

Be sure to read the comments after the article itself, since it includes comments and clarifications from none other than Alan Kay himself.

Thread beginning with comment 650173
To read all comments associated with this story, please click here.
Details
by le_c on Mon 23rd Oct 2017 20:16 UTC
le_c
Member since:
2013-01-02

Does anybody knows how to trigger the class browser? Was it an application to edit global properties such as the scroll bar? or can you edit the code for each individual application?

What happens when you messed up the code? e.g. set the size of buttons to zero. Was there a way to reset the custom code?

Reply Score: 1

RE: Details
by RobG on Mon 23rd Oct 2017 20:58 in reply to "Details"
RobG Member since:
2012-10-17

There were two main ways to trigger the class browser.

1. Opening it up from a menu (exact location depends on Smalltalk image).
2. Middle-clicking an object in the UI allowed opening a menu and choosing the Browser for it.

Your last point is the issue though. To my mind Smalltalk failed for two real reasons:

1. At the time it was expensive, really expensive, and the hardware was expensive too.
2. It had an image problem - Smalltalk stores the state of the system in images, which can be loaded. On the one side this enables live editing of absolutely everything (including the language and environment). On the other side, if you messed up you could really mess up - having to revert to an earlier image. Sometimes this is a real pain, as trying to track which of a number of image files introduces a subtle issue may not be simple.

There is a reason Test-Driven Development originally came from the Smalltalk camp.

I really recommend people download a copy of Squeak (http://squeak.org/) though - it bears enough similarities to the original to be worth a look, and it can really change your perspective on what is possible.

Edited 2017-10-23 20:59 UTC

Reply Parent Score: 7

RE: Details
by whartung on Tue 24th Oct 2017 00:33 in reply to "Details"
whartung Member since:
2005-07-06

What happens when you messed up the code? e.g. set the size of buttons to zero. Was there a way to reset the custom code?


You "Don't save".

The image is just that -- a memory image. You need to "save the image" to "save your changes".

If you hork up the image with bad code, don't save it. Reload from your existing image and start over.

The novel thing, especially at the time, was that every time you enter a command in to the system, Smalltalk will save that command to the Changes file. Like Bash History.

This was specifically for this issue. If you crashed your image, you would reload from the most recent saved image, and then, one by one, re-apply the changes from the change log until you got to "just before" you messed everything up.

It's essentially like "point in time" recovery in a database.

Imagine if your source code was committed locally every time you changed it. With normal system, you save your file, and that's it. Unless you have a back up, the new overwrites the old.

In this case, each change is saved out, then you work with a Change Browser to manifest changes going forward.

Today, it's even a mechanism for collaboration in the Smalltalk community.

It was quite novel and exciting for the time. It's still novel today.

Reply Parent Score: 4