MacOS X 10.1.3上で開発が進んでいるNewt On。日本語の文章でNewtonっぽい、それらしい検索ができるようになりました。
MacOS Xでとまどうソフト間の切り換えはいっさい必要なし。いろいろなソフトを切り換えずともフロントにいるWordに入力するだけで検索OKです。
たしかに、MacOS X 10.1.3上であれば問題なくサクサク動きます。しかし、まだ大多数のユーザーが使っていると思われるMacOS 9.x環境に移した場合にどうなるのか……。
ViaVoiceのMacOS 9版とのコンビネーション技でどの程度のパフォーマンスを発揮できるのか……。いろいろ試してみるしかなさそうです。
変更なしで動いた……が
特別な命令も何も使っていないし、MacOS X版とはいえWordもファイルメーカーProも、AppleScriptから見ればMacOS 9版と何も変わりません。しいていえば、「ファイルメーカー Pro」(MacOS 9版)、「ファイルメーカーPro」(MacOS X版)と微妙に名前が半角スペース1つぶん違うぐらいです。
スクリプトも、MacOS Xのものを別パーティーション上にあるMacOS 9の環境に持ってきたら、何の問題もなく認識されました。下位互換性もたいしたものです。
試しに実行してみると……初回だけ、名前が合わないためか「ファイルメーカーProはどこにありますか?」と聞かれてきたものの、2度目以降は聞かれません。AppleScriptがアプリ名の違いを勝手に吸収してくれる仕組みだからです。このあたりがMacっぽい機構ですね。
おもむろにスクリプトを実行……とくにエラーは起きないようです。1行も書き換えないでそのまま動いてしまいました。Wordを前面に出して、検索文字列を入力。しかし、
検索してくれません(汗)
あわててスクリプト編集プログラムを前面に出すと……その瞬間に検索が実行されました。同時に幾つものアプリケーションを動かして、その間をスクリプトで制御するような処理は、やはりMacOS Xの方が圧倒的にうまく動くようです。
さらにこの上に、超弩級的重アプリケーションであるViaVoiceのSpeakPadを持ってくると、とてもではありませんが、後ろで立ち上がっているアプリケーションに処理が回るとは思えません。
少々めまいがしてしまいました。たしかに、MacOS 9上でAppleScriptの処理を行う場合には、処理対象のアプリケーションを最前面に出したり、スクリプト自身を最前面に出したり、割とこまかく実行速度のチューニングしています。
おまけに、この実験を行ったのはPowerMac G4/733、デモに使えるのはいいところiBook 500。このパワーの差を勘案すると、さらに過酷な環境になりそうです。
早くも、たちこめる暗雲
とりあえず、delayコマンドで時間かせぎを行っている(waitしている)部分を削ってみました。
そのとたんに、あちこちで「変数が定義されていないよ」というエラーが頻発、どうもMacOS 9.2.2上のAppleScript 1.7の痛いところばかりつついてしまっているようです。前例にならって、AppleScript 1.8.2β3に差し替えて試してみることに。
……しかし、1.8.2β3に切り換えても状況は好転しません。とりあえず、この現象についてはUSのAppleに直接問題をフィードバックしてみるしかないようです。
最悪の場合には、MacOS 9側(音声受け付け専用)から、プログラムリンクでネットワークごしにMacOS X上のNewt Onを操作することも、まぁ考えないではないのですが……逆にこのあたりはMacOS X側のAppleScriptの実装が不完全で、連繋しづらい(現時点では事実上できない)部分です。
では、MacOS 9のマシンを2台使って連繋させてみてはどうでしょう? 音声入力用のマシンA上でViaVoiceとWordを稼働。このA上のWordの情報を、DB検索用のマシンBが監視。MacOS 9同士なら、ネットワークごしのプログラムリンク(MacOSのリモートプロシージャ・コール)も大丈夫です。
とはいえ、実験してみないと分からない部分なので……追試で実験してみるのみです。