If you like Python and you like Mac OS X, you should really check out PyObjC.
It's a bridge that allows you to create first-class Cocoa applications using Python. It also has support from Interface Builder and XCode in Leopard and it's already bundled with Apple's Developer Tools!
Unfortunately, if you followed the above link, it doesn't seem there's a lot of stuff going on. The examples are outdated and there hasn't been any update since January.
If you look more closely, there have been some recent checkins in the SVN trunk - the last one was on 5 May, which isn't that far away. So the project isn't dead/dying. It just needs some pushing and exposure.
The owner (or at least the person that's done most of the latest work), Ronald Oussoren hasn't written anything in his weblog for months, and indeed the only post there describes how he was using a private repository for the Leopard version, probably for NDA purposes. It's also weird that PyObjC is not hosted in Mac OS forge, Apple's open source repository.
Anyway, this post isn't a whine - it's more like a call to arms. PyObjC needs more visibility and more people using it. More activity in the mailing list, more tweets and more blog posts. I'm working on a small QTKit app to explore the API, and I plan to release it as a tutorial. If I have the time I'll make a screencast too. There's also work been done on bringing other examples up to date. Update: Example available here
If you have any experience using the latest version of PyObjC, please, jump on the mailing list and contribute!
I'm also planning on tracking the SVN repository with git - look for an announcement of the mirror in the coming days. Update: Git repository available here
Comments
Comment by Orestis Markou , 3 years, 8 months ago :
Hey Norman,
I have an example working that uses IBActions and IBOutlets, although I don't use AppDelegate (it's a Document based app).
I just discovered that I'm using PyObjC 1.4, which is mildly annoying. I'll have to look into upgrading to PyObjC 2.0 before showing examples. If you can wait a couple of days, I will post the source code (possibly with a tutorial like explanation).
Comment by Orestis Markou , 3 years, 8 months ago :
Turns out I had a stale version of Python framework in my Library. Renaming that (using the terminal) made the project fall back to /System/Library/Frameworks/Python.framework, and now of course I have to rewrite my code :(
On the upside, I now have an example both for ObjC 1.4 and 2.0
Comment by Orestis Markou , 3 years, 8 months ago :
Article updated; Repository available here: http://github.com/orestis/pyobjc/tree...
Look for other post for Hello World tutorial
Comment by Christopher Lee , 3 years, 8 months ago :
Hi Orestis,
I totally agree, the situation is very frustrating. Connecting Python's power and ease of use with Cocoa's GUI loveliness seems like such a natural. I have literally been waiting for years for pyobjc to mature to the point where it seems usable. The sudden jump to 2.0 and inclusion in Leopard looked promising, but now there is no follow up and the docs remain as broken and mixed up as ever.
OK, enough whining -- what can we do about it? I think the key first step to getting enough people working on this is to document clearly the basic basic basics of how to get immediately started:
- where the hell is the pre-installed 2.0 pyobjc on my Leopard and how do I use it?
- where are all the pyobjc 2.0 examples that the sourceforge site helpfully provides no links for? Presumably they're somewhere in any Leopard install, but where?
- how do I immediately gain access in Python to all the non-appkit goodness of pyobjc? This is the single-fastest way to get Python programmers hooked on pyobjc, because there is no barrier of learning Cocoa, learning Xcode, etc. Presumably all that's required is to use the system installed /usr/bin/python, right? What are the most useful functionalities that this provides? (e.g. direct access to iCal interfaces, plist interfaces, etc.)
- what are the minimum elements required to build a Cocoa GUI using pyobjc? Your PyObjCTut is great; if you could provide a README tutorial explaining each of the required elements, that would really help. Just walk people through the required steps and I bet a lot of people will start fooling around with pyobjc to see what it can do for them! Also include "trivial" instructions like "double-click the xcodeproj file and then click Build and Go"... After all, a lot of Python programmers will never before have had a reason to use Xcode.
I suggest that you set up a Google Code project named something like "pyobjc2go" as a "community edition" of pyobjc. This would be a community wiki, tracker, etc. for everyone who wants pyobjc to move forward and is frustrated with the static, closed nature of the sourceforge site. I recently moved one of my projects off sourceforge to Google Code and immediately got a big jump in community participation due to the combination of its wiki tools, setting up a Google Group discussion, and switching my SCM to git.
For example, one of the most useful things you could do would be to turn the pyobjc "examples" into a truly public project, by adding your PyObjCTut (and anything else you've written) to the git repository you're hosting on github. Then people can grab the git repository, and start hackety-hacking their own example variants, which would then get merged back into your public repository.
Yours with thanks,
Chris Lee
Comment by Orestis Markou , 3 years, 8 months ago :
Chris: The idea of a public repository of examples is a good one, although I doubt that people will contribute to that (I'd expect that there would be more blog posts about PyObjC around).
I'd rather contribute to the main site directly (it'll lead to less overall confusion). Sourceforge greatly sucks, so perhaps the best thing would be to actually move from it to Google Code.
I'm still waiting for some feedback from Ronald on the ML - I'm sure he has some ideas about how to move forward. A public wiki somewhere would be a great place to start.
This post is older than 30 days and comments have been turned off.

Comment by Norman , 3 years, 8 months ago :
I completely agree. I'm one of the developers of the Levelator*. It's currently using wxWindows, and therefore I have to bundle an entire GUI toolkit in the app. I'd like to move the GUI to native Cocoa, and thought that PyObjc would be perfect. So far it's been frustrating.
I'm looking for an up-to-date example using Xcode/IB 3.0, with a couple of simple Actions & Outlets, using the ....AppDelegate.py
The documentation isn't helping much either. I'm about ready to give up on it.
I'm on the mailing list, hoping to absorb what knowledge I can!
*http://www.conversationsnetwork.org/levelator