AppleScript初心者がつまづきやすいのが、logコマンドのようです。
スクリプトエディタ上でlogコマンドによって、スクリプトエディタ上にログ表示されるので、他の実行環境(Mail.appのプラグインScriptとか、AppleScriptアプレットとか)でlogコマンドを実行して、その内容がスクリプトエディタにログ表示されないことにブチ切れる初心者が何度も観測されています。
logコマンドは、スクリプトエディタ(もしくはScript Debugger)上でAppleScriptを実行している場合に、その実行しているエディタのウィンドウ内のログエリアに表示されます。
スクリプトエディタ(およびScript Debugger)以外の実行環境でAppleScriptを実行しても、スクリプトエディタのログ表示エリアに表示は出ません。これは、バグでもなんでもない仕様なのですが、この点でブチ切れる初心者の多いこと多いこと。
AppleScriptの実行環境=ランタイム環境はmacOS標準装備されているだけでも11個ぐらいありますが、環境によって実行できないコマンドがいくつか存在します。
logコマンド
前述のとおり、便利なコマンドではあるものの、「いつでも使える」「どこでも使える」というものではない点に注意が必要。
display notificationコマンド
本コマンドは、アプリケーションの組み込みAppleScript環境で実行できないケースが観測されています。AppleScript実行をXPCサービス内で行なっているアプリケーション(Keyboard Maestro、BBEdit)では、notification表示がOSの制約(仕様)により行えません。
この実装自体が間違っているわけではないのですが、ユーザーに「本アプリの内蔵スクリプトメニューから実行したAppleScriptでdisplay notificationコマンドは有効ではない」ことが周知されていないことに問題があります。
display dialogコマンド
本コマンドが実行できないケースはほとんどありませんが、Xcode上でAppleScriptによりGUIアプリを組んでいる際に、メインのAppleScriptではなくサブクラスを定義しているAppleScript内でダイアログ表示が行えない(デバッグしにくい)という現象を確認しています。
sayコマンド
おおよそ、display dialogコマンドと同様です。
on openイベントハンドラ
ドロップレット形式で書き出した(=スクリプトエディタやScript Debugger上で実行した状態ではない)状態であればドラッグ&ドロップは受け付けますが、そうでない場合には本イベントハンドラにより他のファイルやフォルダをFinder上でAppleScript書類にドラッグ&ドロップしても、ファイル/フォルダの受信は行われません。