Smalltalk-72 [Was: threads]
Alan Kay
Alan.Kay at squeakland.org
Tue Feb 19 03:10:59 UTC 2002
It was the BestBuy price of one of the early Mac powerbooks one year old.
Cheers,
Alan
-------
At 8:42 PM -0500 2/18/02, gafisher at sprynet.com wrote:
>Alan Kay <Alan.Kay at squeakland.org> wrote:
>> Thanks to Marcel Weiher, "The Early History of Smalltalk" can be found at:
>>
>>
>> http://www.metaobject.com/papers/SmallHistory.pdf
>>
>
>Dear Alan;
>
>A fascinating paper indeed; thank you for posting it.
>
>Though I haven't finished reading "The Early History" yet, the
>introduction immediately caught my eye when you mentioned the US$700
>"1992 Interim Dynabook." Though I might be able to guess, could you
>identify this machine? More to the point, what (if anything) would you
>consider to be the current equivalent?
>
>Gary Fisher
>
>
>> Now to answer David Simmons' question.
>>
>> First, Scheme came later ca. 75 and was more influenced by the early
>> work of Landin in the 60s (the great understander of lambda
>> expressions and the reconciler of LISP and Algol).
>>
>> The history reveals just how ad hoc was the creation of Smalltalk-72
>> -- it was the result of a hallway conversation and bet -- this
>> resulted in my one-pager to show how to do a "really powerful
>> extensible oop language in one page". Then Dan Ingalls got it
>> running, and suddenly there was a working system. Though it didn't
>> have everything I had planned, it was still interesting in its own
>> right, and we started playing with it.
>>
>> The feedins for this one-pager were my own thesis work on Flex
>> (influenced by Simula and Euler), Dave Fisher's control structures
>> thesis (both of these influenced by LISP), Ned Irons' IMP extensible
>> language, and Val Shorre's Meta II compiler compiler.
>>
>> The idea was that one could go McCarthy's half-pager a couple of
>> notches better if:
>> * one wrote the interpreter as a loop rather than as a recursion
>> * objects and classes were the basis
>> * a message send was just a notification to the instance->class that
>> a message was waiting
>> * each class carried the grammar for its interface language
>> * the grammar was a programmable grammar a la Meta II
>> * the recognizers were classes with access to the control chains,
>>a la Fisher
>> * the notification was in the form of a control transfer without
>> (yet) evaling the params
>> -- that is the class was executed in the context of the static
>> and dynamic chain links
>>
>> A version of this half-pager for ST-72 is given in the appendix of
>> the history document. I had to recreate it since I couldn't find the
>> original one I did over two weeks in 72 (I'm sure I have it
>> somewhere).
>>
>> The result is a very minimal, but expressively powerful OOP system
>> with extensible syntax: ST-72.
>>
>> My intent was that we should eventually make the recognizers look
>> more like BNF (there are examples of what was in mind in the
>> history), but we never did. However, Scott Warren (who lurks on this
>> list) a few years later did "Rosetta Smalltalk" in which he and his
>> friends correctly figured out where this style should go, and
>> implemented a version in a very nice and very pretty system on an
>> 8-bit micro.
>>
>> The problem with an easily extensible language (the overhead of
>> writing a class at all in ST-72 also allowed new syntax with no extra
>> work) is that, even with great extensions, a tower of babel can
>> result pretty quickly. The equivalent of polymorphism, especially
>> with the addtion of new classes, could change the interpretation of a
>> message, since the pattern matching was done during receipt of the
>> message. This introduced ambiguities that could be unpleasant.
>>
>> Dan decided to implement a fixed syntax when he did ST-76 (a pretty
>> nice compromise, and nicer than ST-80's today, but similar). We could
>> have gone a different direction, which would gather up the grammar
>> from the existing classes, and use it plus symbolic evaluation to
>> allow both compilation and extensible grammar. Ned Irons did this in
> > IMP, and it worked quite well in his parallel beam parser except for
>> the tower of babel effect. Note the interesting problems in
>> late-binding that have to be solved to allow certain new extensions
>> to an already running system.
>>
>> To me, the most interesting thing about this exercise was (looking at
>> the past) how much expressive power could be obtained from a tiny
>> amount of code, and (looking at today) how impoverished most
>> scripting languages are for no reason I can discern.
>>
>> Cheers,
>>
>> Alan
>>
>> ------
>>
>> At 7:59 AM -0800 2/18/02, Alan Kay wrote:
>> >Hi Dave --
>> >
>> >An interesting question. The story of Smalltalk-72 is in "The Early
>> >History of Smalltalk" that I wrote for the ACM almost 10 years ago.
>> >I have a .pdf of this which I will post in a swiki if someone will
>> >give me URL of a good place to stash it.
>> >
>> >Then I'll answer your question.
>> >
>> >Cheers,
>> >
>> >Alan
>> >
>> >------
>> >At 1:34 PM -0800 2/17/02, David Simmons wrote:
>> >>Alan,
>> >>
>> >>Why was the Smalltalk-72 form abandoned/changed to create Smalltalk-80?
>> >>
>> >>I just looked over the manual and it was fascinating. It looks like a
>> >>hybrid between scheme and half-a-dozen scripting languages that showed
>> >>up between the late-80's and early-90's.
>> >>
>> >>Smalltalk-72 might well have been a very popular scripting language for
>> >>the internet 90's era.
>> >>
>> >>-- Dave S. [SmallScript Corp]
>> >>
>> >>SmallScript for the AOS & .NET Platforms
>> >>David.Simmons at SmallScript.com | http://www.smallscript.org
>> >>
>> >>> -----Original Message-----
>> >>> From: squeak-dev-admin at lists.squeakfoundation.org [mailto:squeak-dev-
>> >>> admin at lists.squeakfoundation.org] On Behalf Of Bijan Parsia
>> >>> Sent: Saturday, February 16, 2002 10:17 AM
>> >>> To: squeak-dev at lists.squeakfoundation.org
>> >>> Subject: re: threads
>> >>>
>> >>> On Sat, 16 Feb 2002, Helge Horch wrote:
>> >>>
>> >>> > At 23:57 15.02.2002 -0500, Bijan Parsia wrote:
>> >>> > >That being said, I don't quite get all of the Smalltalk-72 model,
>> >>> though
>> >>> > >I'm diligently (for me) perusing the manual :)
>> >>> >
>> >>> > Ah!, you mean the one at
>> >>> > <http://www.spies.com/~aek/pdf/xerox/alto/Smalltalk72_Manual.pdf>?
>> >>>
>> >>> Yes indeed, thanks to whomever put that up. I guess I should pop the
>> >>link
>> >>> into the swiki.
>> >>>
>> >>> Cheers,
>> >>> Bijan Parsia.
>> >>>
>> >
>> >
>> >--
>>
>>
>> --
--
More information about the Squeak-dev
mailing list
|