[Edu-sig] [edupython] Python in Education Advocacy Article
Paul D. Fernhout
pdfernhout at kurtz-fernhout.com
Sat Mar 31 14:15:18 CEST 2007
Thanks for the links and ideas. I've never tried to work in io, though I
had downloaded it and tried to run some applications in it. I can't get
past the syntax. :-) I think Smalltalk syntax was one of the things best
about it, yet most of the alternatives (like IO) try to put C-ish syntax
on Smalltalk ideas. And I do love Python's significant indentation.
Anyway, the XO OLPC project and it's "view source key" is a great angle
for getting "edit and continue" into the Python mainstream eventually.
However, perhaps what the XO OLPC project really needs as well is a
"break" key and a "trace" key. :-) Maybe it has them too?
Now this is interesting and surprising on Guido's blog post as well:
"The keynotes had a strong educational theme: on Saturday morning Adele
Goldberg gave a passionate plea for improvements to the USA's
educational system. 40 years ago, US education was #1 in the world;
today it is #19. The public school system is stuck in a complete
political gridlock; changes are nearly impossible to make due to the
many constraints imposed on schools by federal regulations, fearful and
litigious parents, bullying, lack of funds, and many other depressing
factors. It also seems that most uses of computers in the classroom have
turned into disasters: the well-meaning geeks behind many school
computer experiments don't understand the situation in the average
classroom. For example, computers show up without sufficient power, are
likely to be stolen, or locked up in a safe rather than being used!
Schools are in total fear of the internet, which is seen as a source of
pornography and influences of the devil. I hope Adele will put her
slides on line, there was much interesting data."
What a far cry from "computer programming for everyone". :-(
I guess I really haven't given Python3000 much thought because it seemed
always such a long time away; looks like it is finally coming to
fruition. Another good time for any incompatible changes (if needed) to
allow "edit and continue".
Dethe Elza wrote:
> On 30-Mar-07, at 9:13 PM, Paul D. Fernhout wrote:
>> Still, there are always tempting new projects like "Factor"
>> which uses FORTH ideals to do amazing things (like with OpenGL) in
>> fairly small footprints and with minimal external dependencies and
>> fairly few core developer-years of work (though the developers are
>> unusually bright. :-) From the web page: "Factor has an optimizing
>> native compiler, automatic memory management with a generational
>> collector, a powerful collections library, and various advanced
>> features such as higher-order programming, continuations, and
>> syntax. Factor development is done in an interactive environment
>> with a
>> graphical user interface. There is a single-stepping debugger which
>> travel backwards in time, and extensive documentation. An easy to
>> use C
>> library interface allows one to call C libraries without writing any
>> glue code in C. Bindings for OpenGL, FreeType, X11, Cocoa, and Windows
>> APIs are provided." (I can hope AK's FONC
>> in a few years will produce something even beyond that, if it
> Factor looks interesting. You also might be interested in Io:
> <quote>Io is a small, prototype-based programming language. The ideas
> in Io are mostly inspired by Smalltalk (all values are objects), Self
> (prototype-based), NewtonScript (differential inheritance), Act1
> (actors and futures for concurrency), LISP (code is a runtime
> inspectable/modifiable tree) and Lua (small, embeddable).</quote>
> Despite the fact that Python isn't listed as an influence on Io, I
> find it has a bit of a pythonic feel, with the difference that
> prototyping brings. It has bindings to a rich set of external
> (mostly C) libraries (async sockets and dns, SQLite and SkipDB
> (embedded transactional databases), regular expressions (Perl 5
> compatible), xml/html/sgml parsing, md5, sha1, zlib, lzo, blowfish,
> curses (text interfaces), OpenGL/GLUT, PortAudio, FreeType (TrueType
> antialised font support),Objective-C bridge. And, one of my favorite
> things, it has Erlang-like messaging and scalable (non-thread)
> concurrency. Not quite ready for prime time yet, but very
> interesting to keep an eye on.
>> The bottom line on "Edit and continue" is that making it work properly
>> likely requires deep thinking and understanding about the entire
>> runtime system (as well as getting pickup of your changes by
>> various IDE
>> developers), and Python as a system has moved so far along the
>> development curve that coming from a standing start up to an
>> understanding of Python's current internals necessarily beyond that of
>> Guido (who says it is impossible :-) is likely a long hard effort.
>> During which time Python will keep moving. It's not exactly a best
>> choice of Python internals hacking. Guido is obviously the best person
>> to tackle it, I think; just need to figure out how to motivate him to
>> care about it instead of other cool and important things. Now if I
>> just get hold of some "first herring" perhaps? :-)
> Well, the herring is probably the OLPC, which Guido is working to
> support by implementing edit and continue, according to his blog:
> The software is far from finished. An early version of the GUI and
> window manager are available, and a few small demo applications:
> chat, video, two games, and a web browser, and that's about it! The
> plan is to write all applications in Python (except for the web
> browser), and a "view source" button should show the Python source
> for the currently running application. In the tradition of Smalltalk
> (Alan Kay is on the OLPC board, and has endorsed the project's use of
> Python) the user should be able to edit any part of a "live"
> aplication and see the effects of the change immediately in the
> application's behavior. (A versioned document store will make it
> possible to roll back disastrous changes.) This is where Krstic wants
> my help: he hopes I can work magic and implement this feature for
> Python. I got started right away during the conference, with a
> reimplementation of python's reload() function that can patch classes
> and functions in place. Even this small component still has a long
> way to go; a checkpoint of the work in progress is checked into
> subversion as part of the Py3k standard library. That's not where the
> rest of my OLPC work will show up; they use GIT for source control,
> so I will get to learn that.
> At least, that's what it looks to me like he's saying, and he said
> much of the same thing on this list when he posted an improved reload
> module that he said was a simpler version of the one he was working
> on. Maybe it won't be as powerful as Smalltalk's edit-and-continue,
> but it might end up being the 80/20 solution to the same problem.
> Now if I could just get him to take concurrency seriously (and the
> only serious approach to concurrency that seems to be workable is
> what Erlang does).
> "...our universities, I suggest, are not half-way out of the fifteenth
> century. [...] The three or four years' course of lectures, the bachelor
> who knows some, the master who knows most, the doctor who knows all,
> are ideas that have come down unimpaired from the Middle Ages.
> Nowadays no one should end his learning while he lives and these
> university degrees are preposterous. [...] Educationally we are still
> for all practical purposes in the coach and horse and galley stage."
> H. G. Wells
More information about the Edu-sig