
自分が1994年当時に書店で手にとった書籍「AppleScript道入門」(原題:The Tao of AppleScript)Derrick Shneider著/大塚浩昭 監訳/小舘光正 訳 を本棚から引っ張り出してきました。
当時、AppleScriptがどういうものかを知りたかったので、書店で購入。オマケについてきたFDDには日本語AppleScript v1.1のインストーラが入っていました。日本語Diarectではほとんど使ったことはありませんけれども。
書籍のサンプルは付録FDDに入っていたので、それを展開して実行。Finderのウィンドウを画面の外周部に沿って1回回転させるScriptを実行したことを覚えています。しかも、たいへんに遅かったので(当時、IIsiに68030/50MHzのアクセラレータを搭載)「これでどうしろと?」という内容でした。
いま、本の内容を見直してみると「最初のリリースでけっこうな内容がそろっている」ことに逆に驚かされます。でも、Script対応アプリケーションは(当時は)少なかったですし、「Scriptを書いてグラフィックの作成とかできるのだろうか?」などと考えてみたものの、「やりたいこと」を実現するためのパーツが絶望的に少なかった感じでした。
序文の内容から当時の傾向とその後の発展を推測
序文(引用ここから)
「Macintoshのどこが気に入ってるか?」と聞かれたら、みなさんは何と答えるだろう。マウスか、アイコンか、それともメニューだろうか。これらはすべてMacintoshの「よいもの」なのだが、ときには「融通がきかないな」と思うこともある。
たとえば、フォルダを自動的に移動できたら、と思ったことはないだろうか。
もしくは、大きな容量のファイルをすべて見つけられたら、と。50章もある文書にスペルチェックをかけ、書式を整え、そしてPageMakerにかけなければならないケースはないだろうか。
たしかにこれらの仕事は、すべてマウスやメニューコマンドを使ってできる。
だが、必要な操作を考えると頭が痛くなる。必要なフォルダを1つのコマンドだけで移動できたらどんなに便利だろう。また、50章もの文書を自動的に処理してくれるようなプログラムがあったら。
そこでAppleScriptの登場となる。AppleScriptとは、このような決まりきった仕事を自動化するための言語だ。心をクリエイティブにしてAppleScriptに取り組めば、マウスも長持ちするかもしれない。
AppleScriptのコマンドは、「tell」、「make」、「create」、「quit」というように、とてもシンプルだ。AppleScriptを使えば、日常の作業を自動化できるし、時間も節約できる。つまり、コンピュータを本当の意味で「制御」できるのだ。
BMUGは、世界中のMacintoshユーザーの時間を節約することとトラブルを解決することを専門としているグループだ。だから、BMUGの有志たちがMacintoshのスクリプティングの本を書いても不思議はない。
このAppleScriptのガイドブックは、リンゴの芯とおしゃれなネズミたちであふれたバークレーの裏通りから生まれた。本書は、Macintoshの「よい部分」の代わりになるものではない。「よい部分」をさらによくするためのガイドだ。
Cliff Stoll
(引用ここまで)
当時、Macinsoth OS(Systemとか漢字Talkと言われていた)の比較対象はMS-DOS。DOSのバッチ処理に対してのMacの操作の「かったるさ」が(DOSユーザーから)問題視されていた時代。
ファイル処理は、たしかに当時はおおごとでした。でも、Mac OS X移行後では、シェルのコマンドを呼び出してもいいし、ファイル処理自体はそれほど問題ではないでしょう。ファイル処理はAppleScriptで実現できる用途のひとつではあるものの、ほんのごく一部です。
一定容量を超えるファイルであるとか、特定の条件を満たすファイルを抽出するのは、たしかに面倒ではあるものの、Spotlightで高速に検索できてしまいます。各種書類の、アプリごとの事情を抱える情報にもとづいて区分けや抽出を行うというのは、たしかにScriptでなければできません。
この序文には歴史的に興味深い内容がいくつもありますが、昔は本文テキストのスペルチェックがリアルタイムで行えなかったということが大きな驚きとともにあげられます。コンピュータの処理能力向上によって、人間が気合いを入れて実行する「コマンド」ではなく、勝手に行わせておくような「サービス」に変化したということです。
書式を整え……というあたりは、Adobe InDesignあたりではまだ有効な内容ですが、PagesやKeynoteでは文字書式を細かくいじくることはできても、GUI上で管理している書式にアクセスすることはできません。技術的には、後退した部分もあると見えます。
> AppleScriptのコマンドは、「tell」、「make」、「create」、「quit」というように、とてもシンプルだ。
このあたりは、「できること」「やりたいこと」が増えた結果、コマンドや用語は増えてきたわけで、Cocoa Scriptingを常用するにいたっては、ほぼ別の言語といっても過言ではない状態でしょう。
2000年代初頭から、Cocoa Dev-MLなどAppleのMailing ListをAppleScriptによる自動仕分けシステムによってこまかく用語ごとに仕分けて、データベースをメンテナンスしてきたことで、筆者の手元には膨大なQ&A情報がたまっています。
2014年に「AppleScriptからCocoaを自由に使えるようになりました」という出来事が起こったものの、10年以上前からCocoaの情報を調査するシステム(MLの超精密自動仕分けAppleScript)を開発し、日々それを動かして分析してきたからこそ、かなり早期からCocoa Scriptingに対応できたわけです(もちろん、Shane Stanleyから直接教えてもらえたことの意義は大きいです)。
そうはいっても、誰もが報われるかどうかがわからない努力をするのはどうかと思うので、AppleScript的な英単語による高度な機能の呼び出しモジュール「AppleScriptライブラリ」でよく使う機能をまとめて提供する試みを行なっています。
さらに、AppleScriptライブラリにSDEFをつけて「display youtube」みたいなわかりやすくて使いやすいコマンドを追加することができるようになってきています。
2025年現在、自分が希望するような高度なアプリケーション操作を実現するためには、より高度な知識が必要になる……という当たり前の結論になってきています。「最小限の努力で最大限の成果を」というロマンは存在しているものの「最大限の成果には、最大限の努力と知識が必要」という、宇宙不偏の常識をなぞることになっているのが2025年の現状でもあります。
また、プラットフォーム全体の健全性や問題の発生が頻繁に発生しており、そのために多大なる努力を強いられています。少なくとも、筆者個人が情報をまとめてメーカーに提示し、修正を要求することが欠かせません。
体感的には、ハードウェアの性能は過去最高の状態ですし、Intel CPUの時代よりもさらにパワーアップしました。AppleScriptから使える機能も、Cocoaの機能を直接利用できることで、格段に便利になっています。安定性も向上しているため、一昔前だと一晩かかっていたような作業が、数分で終わってしまいます。
本書で紹介されたウィンドウの回転みたいな処理も、複数のウィンドウを楕円移動させるような処理が簡単にできるようになりました。
あとは、OSに細かい不具合がRelase版に残ってしまうという残念な状況が解消されるとよいのですが。年明けにAppleのCEOが交代して、現状が改善されることを期待したいところです。
