Using Dynamic Scripting Languages for Mac OS X Application Development

There’s been a lot of interesting discussion over the last week regarding the use of dynamic scripting languages for programming desktop applications. Here’s some of what caught my eye:

  • Andrew Shebanow argues that this transition isn’t in the future; it’s happening now. Adobe Lightroom’s user interface is mostly written in Lua, for example. He also has a good point that what makes these languages interesting isn’t that they are interpreted, but that they’re dynamic.

  • Bill Bumgarner reminds us that the Python-Cocoa PyObjC bridge isn’t new; it’s been used in production since the Next era in the mid-90s. He also has some good insight into why Ruby and Python are such good fits for bridging to frameworks originally designed for use with Objective-C. He also links to a couple of professional Mac apps that are already written using PyObjC.

  • Michael Tsai is already writing commercial software using a hybrid approach with Python and Objective-C; he writes that the most common performance hit comes when crossing the bridge.

  • Jesper has more on why the Python and Ruby Cocoa bridges aren’t likely to suffer the same fate — irrelevance and eventual obsolescence — that Apple’s Java Cocoa bridge did. In a nut: Ruby and Python are both more dynamic than Objective-C; Java is less dynamic than Objective-C.

  • Scott Stevenson says not so fast — Objective-C 2.0 (coming in Leopard), which adds garbage collection and some useful new syntax like properties and foreach loops, obviates many of the things that might draw Cocoa developers to Ruby or Python, and has the advantage of being the language Cocoa was specifically written for.

(The comment threads on most of these articles are worth a read, too.)