[Edu-sig] Tracing the Dynabook: A Dissertation
Paul D. Fernhout
pdfernhout at kurtz-fernhout.com
Fri Jan 19 16:11:46 CET 2007
Bert Freudenberg wrote:
> Btw, I hope that we might get a bit closer to this on the OLPC UI -
> at least it is running in Python, you have that "view source" key on
> the keyboard, so the necessary ingredients are there. It's just hard
> to get people to even *imagine* that something this powerful is
> actually doable.
While it is not progressing at the moment, check out the PataPata
environment for Python I developed to see what is at least a
proof-of-concept of this level of interaction in Python.
http://patapata.sourceforge.net/
http://sourceforge.net/projects/patapata
http://sourceforge.net/project/showfiles.php?group_id=165910
It allows one to browse and modify the code of a running world of objects
(using either tk or Swing as the interface).
The screencasts done by Francois Schnell showes an earlier version in
action, see for example:
http://francois.schnell.googlepages.com/patapata
or:
http://showmedo.com/videos/video?name=patapata_tkinter1_fSchnell
I think if I took PataPata further, I might de-emphasize the
prototype-oriented aspect of it in favor of classes, while still trying to
retain PataPata's capability of having an "image" or "world of live
objects" stored as Python scripts that rebuild the objects of interest.
I would certainly emphasize any changes to Python needed to easily debug
into a function, change it, and restart it (which is at the core of a lot
of Smalltalk productivity). I had earlier made support for that for plain
Python (mostly in Jython, posted to that list) but it would be nice to see
such support much better integrated into the base Python -- as a PEP
perhaps? (And this suport is a lot more fine-grained than module reloading...)
I think making easy and widely available this support for easy debugging
into a function and changing it and restarting all in a still running
application would be of great value to anyone learning through tinkering
with a Python-powered application (like an educational simulation). And it
would increase Python programmer productivity when developing medium to
large applications probably by a factor of at least 2X or 3X.
--Paul Fernhout
More information about the Edu-sig
mailing list