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.)
posted by KirkJobSluder to Computers & Internet (8 answers total) 2 users marked this as a favorite
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.
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.