Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

最初期に書かれた書籍「AppleScript道入門」の序文をいま振り返る

Posted on 12月 30 by Takaaki Naganoya

自分が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が交代して、現状が改善されることを期待したいところです。

(Visited 1 times, 1 visits today)
Posted in Books | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 26, Tahoe
  • Script Debuggerの開発と販売が2025年に終了
  • 【続報】macOS 15.5で特定ファイル名パターンのfileをaliasにcastすると100%クラッシュするバグ
  • NSObjectのクラス名を取得 v2.1
  • 2024年に書いた価値あるAppleScript
  • Xcode上のAppleScriptObjCのプログラムから、Xcodeのログ欄へのメッセージ出力を実行
  • AppleScript Dropletのバグっぽい動作が「復活」(macOS 15.5β)
  • macOS 26, 15.5でShortcuts.app「AppleScriptを実行」アクションのバグが修正される
  • Script Debuggerがフリーダウンロードで提供されることに
  • 指定フォルダ以下の画像のMD5チェックサムを求めて、重複しているものをピックアップ
  • Dock Menu
  • 執筆中:AppleScript最新リファレンスver2.8対応(macOS 15対応アップデート)
  • Claris FileMaker Pro 2025(v22)がリリースされた
  • macOS 15.5beta5(24F74)でaliasのキャスティングバグが修正された???
  • 複数の重複検出ルーチンを順次速度計測
  • Cocoa-AppleScript AppletがRosettaオンで動いた!
  • シンプルな文字置換
  • Excel 指定範囲のセルの上に画像を配置
  • Applicationのactivateを記録する v2
  • Numbersで選択範囲のdateの年を+1する

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (204) 14.0savvy (159) 15.0savvy (161) 26.0savvy (28) CotEditor (67) Finder (53) Keynote (120) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (56) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Newt On Project
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • process
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • Scripting Additions
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年12月
  • 2025年11月
  • 2025年10月
  • 2025年9月
  • 2025年8月
  • 2025年7月
  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC