[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