[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