[Edu-sig] Alan Kay - another one of his ideas

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Wed Jul 12 16:58:49 CEST 2006


Andreas Raab wrote:
 > [Stuff]

Expanding on my previous reply.

The Squeak team may find this project of casual this experiment I started 
a couple months ago:
   http://sourceforge.net/projects/patapata
It is an experiment in bringing some Squeak (and Self) related ideas to 
the Python framework in a Pythonic way. For example, you will see here a 
little sketch of a microworld where you plant dandelions,
http://svn.sourceforge.net/viewcvs.cgi/patapata/trunk/PataPata/WorldDandelionGardenTK.py?view=markup
and the thing of interest is how the code is separate from the rest of the 
system so only a 4K file (though images are left out) and that world can 
be edited by the end user, either textually or using an interactive 
environment. Now granted, Squeak has its own approach towards modules and 
change streams etc., but I guess I'm trying to say that this is an example 
of what is possible. A key thing here is that that file was written out 
from the "PataPata" system directly, so living objects were converted to 
this textual form as a valid Python program, and they are read back in 
(using Python itself) and made to breathe again, and not stored in binary 
format like a Squeak image. Note -- this is more than saving code -- the 
objects state is saved in a human editable form too. And, while I haven't 
done it yet, that approach should easily work with Jython and Swing, as so 
would allow one to deliver either a Java applet or a Java web start 
application with full open-ended live editing of the application by the 
end user.

Interesting to see Alan Kay and other Squeakers taking an interest in 
Python. Coming from a Smalltalk background before Python, and no offense 
to Guido, I feel that Smalltalk still has a better syntax IMHO for making 
clear readable programs once so you learn to read it; while I prefer 
Python's indentation to blocks, Smalltalk's keywords are more descriptive 
than parenthetical functions with arbitrary parameters.  Smalltalk and 
Self have solved many difficult problems in various versions languages 
like Python are just starting to think about (i.e. generational garbage 
collection). Many inconveniences in Python (e.g. iteration) required 
language level changes to improve whereas in Smalltalk they would just be 
library level changes because of the block syntax. And the tools generally 
available in any Smalltalk (e.g. the browser, inspector, etc.) make 
managing a complex program far easier than what is usually used in Python 
(a text editor, though maybe with some navigation support). I still can't 
easily change programs while they are running in Python in a systematic 
way, or modify running code and restart it in a debugger that is commonly 
available.  And I preferred many aspect of the underlying technology (such 
as identical cross-platform behavior) to Python. And, these are all 
frustrations any Squeakers will have approaching Python. :-) I've tried to 
address some of them somewhat in my experiment referenced above.

But Python wins in a few areas that turn out to also be very important. It 
has a clearer license history, and because of a different syntax, it has 
less issues of copyright-related "contamination" from contributors exposed 
to a commercial version like Smalltalk has. In no small part due to 
Guido's technical and project management skills, the internal complexity 
of the base Python implementation has been managed well versus Squeak is 
still wrestling with that years later. A big user community has grown up 
around Python from the similarity to Algol-style or C-style languages 
(with Occam style indentation and some Lisp-like features as 
enhancements). Also, the Python module approach from the start has led to 
a different tone to the user community in that regard, and I think it is a 
better one, and similarly the transport of modules as typically-editable 
text form has made them more accessible to managing across versions (I'm 
not doing this last point justice; I know Squeak has tools, etc.).

In the end, I personally moved away from the Squeak community mainly 
because I thought the licensing issue made it problematical how much 
investment I wanted to make in fixing the unmanaged internal complexity 
problems of Squeak. I thought the user community was fine though, and 
actually more suited to education in some way than Python.  Python has 
also had the advantage (to me) of being useful for both commercial work 
and educational work, something Smalltalk also has had (e.g. using 
VisualWorks has made me a lot of money), but not really Squeak. Anyway, 
having written a Smalltalk-like parser in Python, I also don't think it 
will be that hard to eventually get Smalltalk syntax on top of Python, 
although that is never going to be that popular an option for a lot of 
people using Python any time soon, for good or bad.

So anyway, once again, welcome onboard edusig and I'll be curious where 
this all leads.

--Paul Fernhout


More information about the Edu-sig mailing list