AppleScript
何らかのオブジェクトの属性値を取得したい場合に、複数の属性値を何回かに分けて取得するよりもpropertiesでまとめて属性を取得した方が速いケースなどがある。アプリケーションをコントロールするために存在しているAppleScriptであるが、アプリケーションとの通信回数を減らすことが処理の高速化につながる。
例えば、指定フォルダ以下の全てのファイルを処理する場合、Classic Mac OS時代にはFinderに対して再帰処理で取得するように書いていたが、現代のmacOSではSpotlightを用いてファイル一覧を取得するとずっと速く処理できる。このように、macOSの機能の移り変わりを意識していないと処理速度が大幅に変わる。
HyperCard用のスクリプト言語であるHyperTalkに似た、英語に近い構文が採用されており、基本的には習得しやすい。機能の異なるアプリケーションを操作するためには、それぞれアプリケーションごとに異なる命令やオブジェクト構造を知る必要があり、AppleScript対応アプリケーションのアイコンをスクリプトエディタでオープンすることで表示される「AppleScript用語辞書」を参照しつつ記述することになる。
初期は日本語表現形式を含む英語以外の言語による記述も可能だったが、Mac OS 8.5以降は英語表現形式のみが採用されている。英語表現形式の場合も変数名は | で囲むことで日本語などを使用できる。
Mac OS X v10.10でAppleScriptObjCがXcode上のみならず、スクリプトエディタ上でも利用できるようになったため、Objective-C風の表記も標準採用された。
スクリプトの例(変数「持ち物=myItem」の中身が0だったらダイアログを表示する)
英語
通常は上記のように記述するが、より英文に近い以下のようなコードも記述できる。ただし複数の処理を一行のif文に組み込むことはできないので、先ほどの構文を使用することになる。下記のコードでは比較演算子の“等価”を表す = が is に置き換えられている(is は is equal to と書くこともできる。このような同義語が数多く存在するのもAppleScriptの特徴のひとつ)。
変数名に日本語を用いた例
日本語(現在は利用できない)