From CLI-Python and Lisp into the GUI (on OS X)
April 16, 2007 8:38 AM   Subscribe

I'm working on what I think will be a GUI application and need some advise on framework friendly with Macintosh OS X, that won't drive me crazy. (Long description of what I've looked at inside.)

The application is based on an long-standing itch to have software similar to N*UDIST but built from the ground-up to handle Computer-Mediated communication data like RSS, Usenet, Email archives, and pulls from databases. My initial goals are actually quite modest: Develop an interface that will pull, filter and tag RSS feeds. I've done a fair bit of this work by batch processing files with unix feeds, and I'm looking at moving towards a GUI framework. Cross-platform is a plus, but not at the cost of driving me crazy. Almost all of my work in the last few years has been lisp and python. I've kicked the tires on a few, researched some others, and here is what I've found:

tk: Good: works with both lisp and python. Bad: trouble installing html and tree widgits. Looks really ugly.

PyObjC: Good: OS X-friendly. Bad: I'm having trouble consistently building application bundles. A very thin wrapper on a language I don't know.

Lisp/ObjC bridges Good: OS X-friendly. And I know Lisp. Bad: minimal documentation. One implementation is proprietary, the other is pretty raw.

*wxPython Good: It runs and is cross-platform. Bad: Second-class citizen on OS X. Unreliable for building application bundles.

*Java Good: Strong support for OS X. And it has many of the things I want in terms of libraries. Bad: I don't know it.

Objective-C Good: Get started in other forms of OS X development. Bad: Don't know it. Might have to reinvent the wheel on some data processing chunks.

localhost webapp Good: I need an excuse to pick up some Javascript skill. Bad: Not a good fit to the problem domain.

The solutions I'm leaning toward are plowing ahead with wxPython and hoping that the bundle issues iron themselves out, or jumping into re-learning java. But other experiences and advise would be good.
posted by KirkJobSluder to Computers & Internet (8 answers total) 2 users marked this as a favorite
Response by poster: s/advise/advice/
posted by KirkJobSluder at 8:40 AM on April 16, 2007

If you know anything C-like at all, Objective C is dead easy to pick up, and it is the first-class citizen of OS X programming. It's also just a beautiful, beautiful thing - the only thing on your list I can describe as likely to be a pleasure to work with.
posted by Wolfdog at 9:08 AM on April 16, 2007

Response by poster: Wolfdog: I know that they have database access (via Core) and text indexing (via the Spotlight API), how hard is it to bolt on regex?

I must admit that my previous experiences with C beyond "hello world" have been irritating.
posted by KirkJobSluder at 9:17 AM on April 16, 2007

OFRegularExpression has a good reputation, though I haven't used it myself.
posted by Wolfdog at 9:23 AM on April 16, 2007

If cross platform were the overriding goal, I'd do java. It's not hard to learn, only hard to live with (I kid, I kid!) Java will give you pretty good UIs on any platform. Azureus is the best example I've seen of a nice UI on a cross platform Java app. Objective C is probably the best choice as long as you don't need cross platform support. If you design your application right so the UI is separated cleanly from the core of the app, you should be able to use a ObC GUI with a more or less portable back end.

Have fun!
posted by chairface at 10:56 AM on April 16, 2007

I'm one of the maintainers of OpenMCL. I agree that the Cocoa bridge is currently very rough. On the other hand, we now have significant resources working on it, and it is improving pretty much weekly. The principal maintainer, Gary Byers, also tends to be very good at responding to questions sent to the openmcl-devel e-mail list.

If you want to contact me via e-mail and tell me more about your project, it's possible that Clozure Associates could find some ways to support your work.
posted by alms at 10:57 AM on April 16, 2007

posted by chrisroberts at 10:57 AM on April 16, 2007

Native is generally the only way to make an App that is usable. The number of App written in Python/tk/Java is near zero (yes, it might upset you, but it is true). Also, Java is terrible when it comes to porting.

Straight XCode Aqua/Carbon is best if you care only about OsX. If you want to include other OS from the same code you could consider wxWindows, or I recently tried out Ultimate++ which has worked great for us. However, U++ only has X11 version, as they only just started on the Carbon code this month.

All just IMHO naturally.
posted by lundman at 6:13 PM on April 16, 2007

« Older Quitting my job after 5 months. How do I explain...   |   How Can I Fling People Into the Air? Newer »
This thread is closed to new comments.