In a previous life, I wrote a proprietary application for a certain wire die manufacturer. Having just discovered the joys of Python, and wanting to deploy in a cross-platform environment, I wrote it using wxPython and suffered dearly for the choice. Maybe suffered isn’t the right word: wxPython was clearly the only toolkit for the job (for a variety of reasons), but it didn’t do everything, and as such writing the additional code and widgets was more painful than Python should ever be.
Fast forward 6 months. Today I started working on a new application which has as a requirement cross-platform deployment on Mac OS X and Win32. Linux would be nice, in my opinion, but it’s not on the short list of requirements. Once again, wxPython is the only toolkit for the job, and I must say I’m very impressed so far. This afternoon I downloaded the newest release, 2.5.1, from SourceForge and expected to begin the process of reaquainting myself with C internals and obscure, “non-Pythonic” names. Instead, in under two hours, I was able to get a basic GUI put together and have preliminary event binding working. Rereading the last sentence, it doesn’t sound like much of an accomplishment. But when I look at how clean the code is, and how much easier it was compared to before, I’m definitly impressed.
The changes that have taken place in the toolkit are too numerous to mention here. The net effect, however is that developing an application’s GUI no longer feels like it gets in the way of developing the application’s core functionality. Bob Ippolito didn’t seem too impressed with wxPython at PyCon, but after using it, I must dissent: if you want cross-platform development, Python and wxPython are the way to go.