Yesterday, I described the first keynote, which was about the OLPC project, as “inspiring”. Today’s first session was a keynote by Adele Goldberg entitled “Premise: eLearning does not Belong in Public Schools”. I would describe her talk as disturbing and challenging but hopeful. The condition of public schools in the United States is troubling. It seems that attempts to use computers in public schools to help better educate the children are destined to fail. This is a gross generalization, to be sure. If memory serves me from the session (because my notes certainly have failed on that item), computers are already in the majority of public schools. That doesn’t sound like a failure. But they don’t appear to be an efficacious means of accomplishing their desired goal. That’s what I mean by failure. Now that I’ve given the disturbing part, let me move on to the challenging and hopeful part. There have been some studies which indicate that computers (programming specifically!) can have a positive result on the educational development of children. But, just like most things, it’s hard to do right. But not impossible. Adele offered some suggestions by way of techniques that work in educating children well. I am not going to rely on computers to educate my children, but I certainly will allow them to play a role in their development. I am already, in fact.
The next session I attended was an overview of SQLAlchemy by Mark Ramm. I had heard of SQLAlchemy and browsed some of the docs, but I hadn’t taken the time to study it. SQLAlchemy is an amazingly flexible ORM which is totally different from anything I’ve ever seen before. You don’t have to just map a class to a table and attributes to columns. It sounds like you can do some crazy complicated stuff with it. I hope Django builds in support for SQLAlchemy soon.
After SQLAlchemy, I attended a talk on IronPython by Jim Hugunin. Jim gave an overview of where IronPython is and where it is going. It is currently at version 1.0, which is 2.4 compatible. Version 1.1 should be coming out in April and will provide partial Python 2.5 support and more standard library modules working. 2.0 should ship early 2008 and will provide 2.5 support and still more modules working. Jim mentioned the excellent IronPython Community Edition. For anyone not familiar with the history of IPCE, it was created because Microsoft would not accept patches from non-Microsoft folks and would not bundle IronPython with other applications which have LGPL, BSD, etc. licenses. I was glad to see him directly address the issue in the middle of his talk rather than waiting to be asked about it. I was further glad to hear a straight forward answer on this subject. And while it is sad that Microsoft is unwilling do what IPCE has done, I can appreciate their hesitance to do so. And I appreciate Jim for his candor in discussing it. All in all, IronPython is an exciting project. I’m glad to see Python gain a potential community boost by way of the host of .NET developers across the world.
Next was the keynote by Guido van Rossum on Python 3000. I can’t possibly give even a succinct summary of his talk in a short space. Python 3000 should be out in June of 2008. Some changes include discontinuation of classic classes, dictionary views, all strings will be unicode strings, a new I/O library, signature annotation, abstract base classes (maybe), and a switch statement (maybe). Actually, he took a poll of the audience for the switch/case statement and the response was overwhelmingly “no”.
The next talk I attended was “Embedding Little Languages in Python” by Dan Milstein. Basically, Dan gave an overview of how he had switched from using an imperative approach to writing certain pieces of code to using a more declarative approach.
After that, I attended two IPython sessions back to back. The first was “IPython: getting the most out of working interactively in Python” by Brian Granger. This was an excellent overview of using IPython in debugging, interactive coding, and working with GUI apps without getting stuck in the main event loop. There are definitely some new tricks available since I wrote an IPython article some time back. The next IPython session was entitled “Interactive Parallel and Distributed Computing with IPython”, again, by Brian Granger. He showed how he had built a distributed application using IPython which allows users to send work to a number of “drone” processes which run on other servers.
The last session I attended on day 2 was “A Program Transformation Tool for Python 3000″ by Jeremy Hylton. Jeremy went over a couple of tools which are currently in development which allow users to analyze their own source code and get a hint if it will have problems running under Python 3.0.
I think my head is ready to explode now.