Squeak forth and Logo

Dan Ingalls Dan at SqueakLand.org
Wed Apr 26 22:20:29 UTC 2006


PhiHo -

[Just found this message unsent for two weeks...]

>>I believe it will "just run" if you load it into Squeak 3.4 (it's on SqueakMap).
>
>   Can I just drag and drop it into Squeak VM 3.4 ?

When in doubt, try it out (Ie I can't say).

>>I always feel the need to mention that the greatest strength
>>of St-72 was also its greatest weakness:
>
>>By including syntax in the purview of programming, it
>
>>(a) ran slowly because of parsing as it went,
>
>   How so, was Smalltalk 72 code interpreted instead of
>   compiled or was it compiled every time it's run ?

Yes.  It was tokenized when read in (very much like Forth), and then the token streams were interpreted.

>>and  (b) it was possible to write all sorts of ambiguous programs.
>
>   and also all sort of clever programs. ;-)

Absolutely.  It's how we got experience with various patterns that worked well and that didn't.

>>Oh, and did I mention (c)
>>there were modularity problems with free variables.
>
>   Did Squeak inherit this trait (modularity problems ? ;-)

To a lesser degree, yes ;-).

>   Actually I am still a total Smalltalk newbie. I would love to hear
>   other opinions on the growth-ability and modularity of Smalltalk
>   72 and Squeak.
>
>   It looks like my hope on a modularly growable Smalltalk 72
>   is vanishing.

Don't let me discourage you about this.  I wouldn't be surprised if a nice wrinkle could make it a bit better behaved, and yet leave it open in that wonderful way.

The notion of growable languages is interesting;  there's always the risk of making things more complicated.  I can't say that Smalltalk is the best language, but the St-76/80 syntax was my best shot at preserving most of the growability of St-72 while keeping the syntax simple and uniform(*).  To me that is essential to making things understandable.  And, among uniform syntaxes, I think keywords give a much greater experience of "growing" to suit different domains, whether they be numbers, music, graphics or AI.

(*) The same features that made St-72 not compilable made it actually unreadable!  The parse could not be determined except by reading the code for the receiver (whose type, of course, could not be known until run time ;-).  Unless everyone practiced good style (ie did not use those features), it was unusable.  Interestingly this was a violation at the level of syntax, of the most valuable principle of OO design that Smalltalk introduced:  No object should depend on the internal details of other objects in the system.

>   About the Forth VM, it was just another dream to refactor
>   all platform dependent codes.
>
>   Basically, each plugin (including the infamous trio ;-) comprises
>   portable ANSI C codes and a portable Forth script.
>
>   The Forth VM is, of course. just another plugin in  assembly.
>
>   It can easily be visualized the VMMaker spitting out a bunch
>   of portable C source and Forth scripts for all platforms.
>
>   The VM maintainers have to worry about the tiny Forth VM
>   and plugin loader each worh about 10KB of runtime code.
>
>   Do you have any plan for Squeak?

Er...  ?

>   Cheers,
>
>   PhiHo
>
>   P.S: I am still playing FreeCell with Squeak 3.6

Hehe.  Me too, but not the way I used to.  Think of what could have been done with all those cycles -- I kept track of all my games.  I was indirectly helped out of this particular addiction by the following words of wisdom:

	No one ever says on their death bed, "I wish I had watched more TV."

 - Dan



More information about the Squeak-dev mailing list