Bob Ippolito has posted the slides to his talks about PyObjC. I hear that there were some neat hacks in the second talk. I’m going to take a look at these slides later this evening.
Day: March 23, 2005
The PyCon Blog looks like another good place to keep tabs on what is going on here at PyCon. Another excellent resource is the collected SubEthaEdit notes for various sessions as gathered by Ted Leung. Also worth keeping an eye on are the searches and tages that I mentioned in my Tracking PyCon post.
Several groups ranted about how much they loved SQLObject while they were recapping what got done at the sprints before the conference. SQLObject allows you to map a database table to a Python object so that you can interact with it in a simple
object.property) way. It aparently increased the productivity of several of the sprinting teams.
After lunch I caught a great session on matplotlib which is a Python library that allows you to plot 2d graphcs in a simple Matlab-like way. The library takes advantage of several graphical frontends, including GTK, Tk, wxWindows, and FLTK. Rumor has it that someone is 90% done with a native Cocoa frontend too.
Take a look at the screenshots for examples of what it can do. It looks like a very easy way to generate really nice looking plots and graphs. The demos took advantage of an enhanced Python shell called IPython, which I had heard about before but hadn’t looked at closely. IPython allows you to work with matplotlib in the interpreter. You need to do some custom handling if you would like to work with it from the standard interpreter. Its outout is highly configurable and looks extremely polished.
Before lunch I sat in on a session on using Python to interface with Applescript. Appscript is used to create a bridge between Python code and Applescript. Here’s a quick code snippet to give you an idea what Appscript can do:
from appscript import * f = app.("Finder.app") f.help # shows what you can do with it, very nice. f.desktop.disk.free_space.get() # gives you an insane number of bytes free
The keynote this morning was by Jim Hugunin recently of Microsoft. The topic was IronPython. Jim took us for a spin around the now BSD-style implementation of Python running on top of the .NET CLR.
Jim started out trying to prove that the CLR was a horrible platform for dynamic languages, but after running some tests realized that quite the opposite was true. When the proof of concept was presented last year, IronPython was about 70% faster than CPython. With advances in the .NET CLR and the fact that IronPython targets version 2.0 of the platform, IronPython is now just about 80% faster than CPython.
Speed doesn’t come without a cost though. IronPython is quite a memory hog compared to CPython. Jim thinks that it’s not a big deal though. Jim demoed a few very interesting things about the platform. In the first demo, he drove Peety the parrot from the interactive Python interpreter. That was neat. The real amazement was when he called a C# extension from the interpreter that in turn called Python code. I’m sure that Jim was releived when it didn’t crash. The ability to extend IronPython is pretty big. Using C# extension are as simple as loading the assembly and importing the namespace.
IronPython’s ability to leverage Avalon widgets and bling isn’t that cool. Pretty yes, cool no. However, the ability to import XAML and then walk the tree and interact with it is extremly cool.
Jim was asked about IronPython and if it might eventually run on Mono and Rotor. He says “not right now” but by the time they’re done implementing .NET 2.0 in Rotor, it should work just fine. It sounds like there is also some interest in the Mono camp about getting IronPython to run on the platform.
All in all it was a thought provoking presentation. I didn’t realize how polished the implementation had become in such a short time. Microsoft now as 1.5 people working on the project, although it constantly benefits from speed boosts and optimization done by the CLR team.
Go ahead and Grab IronPython 0.7. It is released under a BSD-style license, although toward the end of the talk there were some questions raised about patents pertaining to IronPython that might make your life… interesting. Read the FAQ for more.
I’ve tried to gather a list of resources that will allow people who are not attending PyCon to keep track of the various things that are going on. There are also RSS feeds associated with many of the resources below:
I’m gathering up various bits and pieces of gear before heading out the door and taking the Metro down to PyCon. The schedule is impressive, and that’s not even counting a lot of the ad-hoc goodness that will be going on in the open spaces.
I plan on blogging as much as possible and will keep link to my posts throughout the day from this meta-post. The official backchannel is #PyCon on irc.freenode.net, and I’ll be there.
Day 1 posts: