プログラムを作っていて、作っている最中は内容が頭に入っているので、バージョンアップ時のメモも最低限のものでかまわないが、あとになってそれを見て理解できるかどうかは、限りなく怪しい。
個別の変更点については後からコメントを読んで理解できるが、全体としてだいたいこんな状況で、こんな構想で……といった話はコメントとして残りにくい。そもそも、文章として書き起こせる内容ではないかもしれない。状況は混沌としており、未整理であるために……逆に要約してキレイな文章に仕上げてしまうと、必要な情報が欠落する可能性がある。
仕事で作ったものや、私的な試作品など山のようにプログラムを作りまくるため、数日たつとその内容なんてほとんど忘れてしまっている。それって老化でしょ? と指摘されかねない昨今ではあるが、学生の頃からずっとそうだった。新しいものを生み出すということは、古いものをさっさと忘れたり、自分の中でいままですごいと思っていたものが陳腐化するスピードが速いともいえる。
それはともかくとして、バージョン履歴をなんらかの形で、現在のものよりも分りやすく残しておくことは急務といえた。途中経過そのものを記録することで思考の流れ「そのもの」を再現しようとしたアプリケーション「TypeTrace」は見事であったが、ただ記録するだけでは「意図」を記録するレベルには到達せず……プログラミングにおいては、その「意図」こそが大事だ。ただタイピングを記録するだけでは目的を達成できないだろう、と考えている。
では、タイピング履歴や編集履歴に代わるものとは何か?
ひとつは、画面の内容をそのままビデオに録画するというものである。録画といっても、ビデオカメラを使って録画しようというのではない。動画でスクリーンキャプチャを行うソフトウェアを常時走らせておき、その内容を後で再生しようというのである。動作させると、肝心の作業に支障が出るぐらいもたつく。せめて、Mac ProでCPUが8コアとかいう環境なら気にならないのかもしれないが……。
もうひとつ……こちらが「本命」ではないかと考えているものだが……音声メモである。
昨今、録音メモのできるアプリケーションが増えた。だから、開発ソフトにも録音機能をつけてしまうのだ。
実は、QuickTime Playerには録音/録画機能が備わっており、単体で録音できるようになっている。この録音したファイルをスクリプトエディタの「説明」欄にドラッグすると……
「テキストの中にドラッグした項目の内容をコピーしてよいですか?」
といったダイアログが表示されるので、「コピー」を選択(リターンキーのカラ打ちでも可)。
すると、「説明」欄にムービーが入る。
こうして、音声コメントを残すことで、バージョンアップ履歴や「なぜ作ったか?」という記録を残せる。こうして、音声コメントを付加したスクリプトについては、「スクリプトバンドル」で記録しておく必要がある。残念なことに、スクリプトエディタをコントロールして音声コメントを入れるところまでは自動化できない。
次いで、一番この機能を追加したいXcode環境への対応は……AppleScriptでXcodeのプラグインを作れるため、これで録音機能をメニューから呼び出せるようにして、録音が終了したらXcodeのプロジェクトの中に入れるようにしてはどうだろうか? Xcodeを操作してプロジェクトのファイルとして認識されなくてよいのだ。あくまで、プロジェクトのディレクトリの中に録音した音声ファイルが残るようにしておくだけでいい。
ただ……ひじょーーに残念なことに、Xcodeのプラグインを作ろうにも、Xcode 2.5やXcode 3.0にはとんでもないバグがあって、Xcodeプラグインを認識してくれないため、普通にAppleScriptを組んで機能を実現してみた。
んーーー、けっこういいではないか。しかし、録音時に周囲の音をけっこう拾ってしまうので、Bluetoothヘッドセットか何かほしいところだ。