[squeak-dev] 40 years ago, in a galaxy not far away ...
bert at freudenbergs.de
Tue Oct 2 10:53:00 UTC 2012
Alan Kay about the Fall of 1972:
In Sept. within a few weeks of each other, two bets happened.
One day, in a typical PARC hallway bullsession, Ted Kaehler, Dan Ingalls, and I were standing around talking about programming languages. The subject of power came up and the two of them wondered how large a language one would have to make to get great power. With as much panache as I could muster, I asserted that you could define the “most powerful language in the world” in “a page of code.” They said, “Put up or shut up.”
It turned out to be more difficult than I had first thought for three reasons. First, I wanted the program to be more like McCarthy’s second non-recursive interpreter--the one implemented as a loop that tried to resemble the original 709 implementation of Steve Russell as much as possible. It was more “real.” Second, the intertwining of the “parsing” with message receipt--the evaluation of parameters which was handled separately in LISP--required that my object-oriented interpreter re-enter itself “sooner” (in fact, much sooner) than LISP required. And, finally, I was still not clear how send and receive should work with each other.
The first few versions had flaws that were soundly criticized by the group. But by morning 8 or so, a version appeared that seemed to work [...] The major differences from the official Smalltalk-72 of a little bit later were that in the first version symbols were byte-coded and the receiving of return of return-values from a send was symmetric—-i.e. receipt could be like parameter binding—-this was particular useful for the return of multiple values. For various reasons, this was abandoned in favor of a more expression-oriented functional return style.
Of course, I had gone to considerable pains to avoid doing any “real work” for the bet, but I felt I had proved my point. This had been an interesting holiday from our official “iconic programming” pursuits, and I thought that would be the end of it. Much to my surprise, only a few days later, Dan Ingalls showed me the scheme working on the NOVA. He had coded it up (in BASIC!), added a lot of details, such as a token scanner, a list maker, etc., and there it was-–running. As he liked to say: “You just do it and it’s done.”
It evaluated “3 + 4” v_e_r_y s_l_o_w_l_y (it was “glacial”, as Butler liked to say) but the answer always came out 7. Well, there was nothing to do but keep going. Dan loved to bootstrap on a system that “always ran,” and over the next ten years he made at least 80 major releases of various flavors of Smalltalk.
- Bert -
More information about the Squeak-dev