スクリプトエディタの理解不能な挙動について.

Mac mini 2018, macOS mojave 10.14.6, スクリプトエディタ バージョン2.11 (203.1) AppleScript 2.7


AppleScriptを使ったアプリケーション(*.app)開発にあたって、OSに標準でインストールされているスクリプトエディタを使っています.他に Script Debugger を使う方法もありますが、そちらはそちらで使い物にならないので候補から外しました.Xcodeを使っても基本的には問題ないのですが、使いづらいこともあり、そちらも候補から外しました.もちろんスクリプトエディタが最高に使いやすいから! というものでなく、単純に、他に良い開発アプリケーションがないからしかたなく、というかなり消極的な理由からですが.


それはさておき.

タイトルにあるような「理解不能な挙動」についてですが、以下に挙げるものがそうです.

  1. コードの記述方法によってはスクリプトエディタが落ち、その後、二度とスクリプトエディタで開けないファイルができてしまう.そのファイルを開こうとするとスクリプトエディタが落ちる.(Script Debuggerでは問題なく開ける).
  2. 意味の無いコメント文や空行をいくつか追加・削除するとエラーが発生する、または発生しなくなる.
  3. command + k でコンパイルすると、画面が数ピクセルずつくらい上にスクロールされる.
  4. コンパイルを実行するとビームカーソルの位置は移動しないが画面が極端に上または下に移動(スクロール)され、カーソル位置を見失う(control + L キーで表示位置を中央にすることでかろうじて回避している).
  5. 小規模なコード記述であってもコンパイルやファイルの保存に極端に時間がかかったり(例えば5秒とか)、場合によってはレインボーカーソルへと変化し、ハングする.
  6. アプリケーションを実行するとき、以下の異なる方法で起動すると「エラーが発生して終了する場合」や「問題なく実行される場合」といったふうに、結果が一致しない.もちろん一致することがほとんどですが.
    • Dockに登録したアイコンをクリック.
    • スクリプトエディタにて「アプリケーションを実行」を実行.
    • Finder上でアイコンをダブルクリック.
    • Finderウインドウのツールバーに登録したアイコンをシングルクリック.

他にもあったように思うのですが、とにかく数が多すぎて覚えていられません.基本的に「まともに動くものを作る気がないのか」と憤るなど、罵詈雑言しか思い浮かばないくらいです.


感情的なことはともかく、規則性や再現性があればそういった問題も回避できると思うのですが、いかんせんそれらがまったくわかりません.ひとつ思い当たる節があるとすれば、AppleScriptObjC での記述を多用していることですか.多用といいますか、ほぼそれです.とはいえ AppleScriptObjC が使えなくなると自分の中で AppleScript は存在意義ゼロなので、やめることはできません.


文法エラーが原因で止まったり落ちたり(特にAppleScriptObjC での記述部分)するのであれば問題ないのですが、理由のわからないエラーで手が止まるのは本当にストレスでしか無く、また、時間の無駄でしかありません.特に 2. の現象に至ってはエラーの箇所がまったく把握できないので本当の意味で最悪です.


問題の解消となるヒントなどがあればご教示いただきたく思います.




投稿日 2022/03/29 10:27

返信

類似の質問

返信: 4

2022/03/31 00:58 light289 への返信

> 規則性や再現性があればそういった問題も回避できると思うのですが

> ただし、こちらの対応次第でそれらが軽減されるというのなら、それは試すに値する、とも考えます.


実際問題、バグだとしても特定するのは面倒ですよね...

これは実測したわけではないので体感なのですが、スクリプトエディタで作成したアプリケーション(アプレット)より、Xcodeで作成したアプリケーションの方が高速に動作します。なので私はAppleScriptでもXcodeで書いています。


SwiftからAppleScriptを呼び出しその中でshを呼び出しているキメラ的な悪例:


2022/03/31 07:13 hohokihai への返信

スクリプトエディタがうまく機能しない以上、ご提示いただいた実例のように Xcode を「AppleScript を実行するためのプラットフォーム」として利用するのがこの件の現実的な解決方法かもしれません.あと、コンパイル済みAppleScript書類を呼び出して実行する方法は少し検索しただけでもいくつか見つけることができたので、しばらくはその方向で探っていこうと思います.

2022/03/30 05:30 hohokihai への返信

>素直にXcodeを用いObjective-Cで書いた方がいいと思います。

単体のアプリケーションならばそれで良いのですが、 InDesign や Photoshop をコントロールするのに AppleScript は有用なので、そのコードを記述するエディタ(今の話題の場合、スクリプトエディタ)が不安定で挙動不審というのはやはり都合が悪いのですね.macOS Mojave 自体が最新の OS でないので、このバージョンの OS を使い続けるかぎり不安定さや挙動不審な振る舞いなどが改善されないのは理解しています.ただし、こちらの対応次第でそれらが軽減されるというのなら、それは試すに値する、とも考えます.そのためにこの場所で質問をさせていただいたわけですが.


個人的に AppleScript は「おもしろい言語」だと思っているので、使わなくする、という選択はできれは採りたくないのですね.だからこそ不安定さや挙動不審な振る舞いなどと上手に付き合いながら使い続けたいとは思っています.正直、そういう思いがなければとっとと他の IDE へと乗り換えていたことでしょう.

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

スクリプトエディタの理解不能な挙動について.

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。