Pages

2009-09-05

Snow Leopardで利用可能になったAppleScriptObjC

あまり注目されてませんが、Snow LeopardではAppleScript周辺の事情もそれなりに大きく変わっています。まず、AppleScript Studioが正式に非推奨となりました。10.2 Jaguarの頃に「AppleScriptでCocoaアプリが作れる!」と鳴り物入りで登場したAppleScript Studioですが、実際に使ってみると非常に使い辛かったり、できることが限られて、結局はObjective-Cで実装しAppleScriptからはcall methodするといった感じでAppleScriptだけで完結できないことが多々ありました。PantherやTigerの頃になるとほとんど機能追加もされなくなり、いずれ消えるだろうとはあちこちで言われてましたが、今回のアップデートでその幕を閉じることになりました。ちなみに、Interface BuilderからもAppleScript Studioに関する設定画面などは消えていますが、一応隠し機能として残っていてターミナルに次の内容を入力することで復活できます。

defaults write com.apple.InterfaceBuilder3 IBEnableAppleScriptStudioSupport -bool YES

で、終わりを迎えたAppleScript Studioの代わりに新しく登場したのがAppleScriptObjC。名前からも想像できるように、AppleScriptとObjective-Cを結ぶブリッジで、RubyCocoaやPyObjCのAppleScript版みたいなもの。こいつはAppleScript Studioのようにあらかじめ容易された範囲の中でしか使えないものとは違って、Cocoa/Objective-Cでできることは全部できちゃうスグレモノ。これで、AppleScriptはわかるけどObjective-Cはわからない、って人でもやっとマトモにアプリケーションが作れるようになったわけです。

そして、これによるAppleScriptの文法的な新たな拡張は一切無し。既存の文法や構造を上手く使ってるので、今までAppleScriptを書いてた人はきっととっつきやすいはず(もちろん、スクリプトオブジェクトとかを普段からバリバリ使ってるようなAppleScripterは少ないかもしれませんが…)。Appleも「AppleScript Studioやってる人は早めにAppleScriptObjCに移行すべし」とアナウンスしていますし、AppleScripterな人は試してみてはどうでしょうか。