Monday, August 15, 2005


Cocoa Programming with Python and Ruby

For the past eight or nine years, most of my work has involved writing Windows programs in C++. As a result, I am thoroughly sick of the Windows API, Windows development tools, and the C++ programming language. In my off hours, I play around with UNIX programming and other programming languages, but I generally have to stick to non-GUI programs due to the lack of good graphical libraries on UNIX (yes, it's true—don't tell me how great Tk or wxWindows or GTK+ or any of those other things are—they all suck).

Apple's Cocoa stuff is nice, but I don't like Objective-C much. It's an ugly mixture of C and Smalltalk. So I'd like to play around with Cocoa, but I want a different programming language.

Apple has published a Developer Connection article about developing Cocoa apps with PyObjC, the Python/Objective-C bridge. The author of the article has some additional information in his blog, including some videos demonstrating how to carry out the Interface Builder steps.

PyObjC is something I've wanted to look at for a while, but I haven't had the time. More interesting to me is the RubyCocoa bridge, but I got a bunch of errors when I tried installing it. I'd like to figure out why my system doesn't like it, but again, I need to find some time.

The videos are in the article, his blog entry simply has them also available in an older QuickTime format.

As for RubyCocoa, good luck.. it's got a ways to go before it's a stable and correct bridge to Objective-C.
I generally agree about that Tk, wxWindows and GTK+ really suck. But you don't mention Qt, so if you haven't tried it yet, I would really recommend you to have a look at it. IMO, that's a really outstanding GUI (and more) toolkit, well adapted to C++ development and with quite nice documentation.
Thanks for the comments.

I looked at Qt a few years ago and quickly dismissed it. I don't remember exactly why, but I believe it still had a not-totally-free license back then, and it had some sort of code generator or preprocessor that I didn't like.

In any event, I'd like to get away from C++. Maybe I'll throw my efforts into improving RubyCocoa.
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?