プログラミング
Kid Pixの誕生秘話
The Origin Story of Kid Pix (red-green-blue.com)
要約
この記事は、グラフィックソフトウェア「Kid Pix」の開発者であるCraig Hickman氏が、その誕生に至るまでの経緯を語るものです。Hickman氏は、写真家としてのキャリアからコンピュータープログラミングへと転向し、特にMacintoshの登場がその後の開発に大きな影響を与えたと述べています。当初は自身の息子がコンピューターを使いやすいようにシンプルなペイントプログラムを作成するつもりでしたが、それがKid Pixへと発展していきました。
全文翻訳
Ben: お父さん、二階で何をしてたの?
Dad: Kid Pixの短い歴史を書いていたんだ。
Ben: 本当に誰かがそれを読みたいと思うかな?
MaynardとJoe
人間は分析的で合理的で思慮深いか、あるいは自発的で創造的で直感的かのどちらかだと信じている人もいます。50年代にテレビを見すぎた私は、人々は「ドラッグネット」のSergeant Joe Fridayか、あるいは「Dobie Gillis」のMaynard G. Krebsのようなものだと思っていました。私の問題は、常にこの両方の人物の間で揺れ動いているような感覚を抱いていたことです。
Sargent Joe Friday
Maynard G. Krebs
大学で、私はファインアート写真家になることを決めました。しかし1972年、The Evergreen State Collegeで写真の仕事をしているときに、「ターミナルルーム」と表示された場所からガタガタという音が聞こえてきました。中に入ると、友人が大きなタイプライターのようなものに座っていました。彼はプログラミングをしていると言い、やり方を見たいかと尋ねました。「はい」と私は答え、それ以来、私は二度と同じではありませんでした。
プログラミングを紹介された直後の私(1972年)
私は各コマンドとその使い方を説明した本を買いました。私は各コマンドを使った小さなプログラムを書き始めました。私のプログラムはどれも役に立つことをしようとはしませんでしたが、楽しくて驚くようなものになりがちでした。
1974年、私はEvergreenを離れ、コンピューターへのアクセスも失いました。ポートランドに移り、そこで親しい友人たちと非営利の写真ギャラリーであるBlue Sky Galleryを設立しました。その後、University of Washingtonで写真の大学院に通いました。そこで私の教授の一人であるPaul Berger氏が、ちょうどApple IIコンピューターを手に入れていました。当時はマイクロコンピューターは新しく、彼はそれが何ができるかを説明してくれました。突然、私のプログラミングへの渇望が再燃しました。自分用のコンピューターが必要だと感じました。
暗室での私のAtari
数ヶ月後、私は自分のコンピューター、Atari 400で自宅で忙しくプログラミングをしていました。それは喜びに満ちた経験でした。(妻は、それが届いた日が私が今まで見た中で最も幸せな日だったと言っています。)メンブレンキーボードとテレビモニターにもかかわらず、それはグラフィック、サウンド機能、そしてプログラミングの課題に満ちていました。私は無限のプロジェクトを思いつきました。ジョイスティックポートからの信号を入力・出力する方法を発見したときのスリルを今でも覚えています。ある時、私はRadio Shackの小さな磁気スイッチを使った自宅の監視システムをシアトルのアパートのために設計しました。それは画面上に私たちの部屋の表現を表示し、ドアや窓が開いているかどうかを示しました。それは非常にうまく機能したので、私は窓の外の茂みに置かれた小さな傾斜スイッチを含めるようにシステムを拡張しました。これも風の強い夜、私が家を留守にしている間に、数分ごとにアラームが鳴るまでうまく機能しました。翌日、妻は私にそれを解体するように言いました。
私はユーザーインターフェースとプログラムデザインに非常に興味を持つようになりました。当時私に最も影響を与えた記事は、Byte MagazineのChris Crawford氏の記事と、Scientific AmericanのAlan Kay氏の記事でした。私はコンピューター上でどんなタスクでも実行するための最もシンプルで効果的な方法を発見したいと思っていました。これが、私がソフトウェアデザインの美を追求し始めたきっかけです。
この頃、私の写真への興味は薄れ始めていました。コンピューターの方がずっと面白かったのです。私は「Electronics Made Simple」という本を手に取り、コンピューターを使って引き伸ばし機を制御する方法を理解し、暗室のタイマーと記録管理のほとんどのタスクを制御するためのかなり良いプログラムを作成しました。私はこのプロジェクトのために、HyperCardよりも数年早いものでしたが、HyperCardに似た「カード」のメタファーを使用しました。
1984年、AppleはMacintoshをリリースしました。それまで私はAtariを使い続ける理由はないと思っていました(ほとんど誰もそれを使わず、私が書いていたソフトウェアのオーディエンスがほとんどいなかったという事実を除けば)。その時代としては、素晴らしいグラフィックとサウンドを持っており、それをプログラミングする方法をよく知っていました。他のコンピューターはより真剣な評判を持っていましたが、プログラミングはそれほど楽しくないように思えました。
Macintoshは違いました。それは完全にグラフィカルだったので、視覚的な可能性ははるかに大きかったです。何よりも、Macには一貫した啓発的なビジョンを持った人々が背後にいるように思えました。ユーザーインターフェースは知的で美しかったです。私はMacを手に入れ、それでプログラミングを独学し始めました。当初は、Reed Collegeで開発されたRascalという言語でプログラミングしていました。これはCとPascalの中間のような言語でした。後にPascalに切り替えました。
Camera、1988年の画面スナップショット
私の最初のMacプログラムは、無料で配布されました。これらはMacのQuickDrawルーチンを学ぶのに役立つように設計されていました。それらは何も役に立つことはしませんでしたが、かすかに面白いものでした。「Company」はアニメーションの顔を表示するデスクアクセサリーで、「Fidowas」はグラフィックで話すアニメーション犬でした。私はまた、私のソフトウェアが持つグラフィックや美学の一部を共有する2つのアーティストブック、「Signal to Noise」と「Dry Reading」(このサイトで入手可能)を作成しました。この時期の私の最も成功したプログラムは、絞り f-stop とシャッタースピードの関係をインタラクティブに実証する教育タイトル「Camera」でした。私はCameraをパブリックドメインに入れ、コンピューターの掲示板で広く配布しました。
1988年のある日、Macintoshに付属していた素晴らしいペイントプログラムであるMacPaintを使っていたとき、3歳の息子Benがプログラムを使いたいと尋ねてきました。私は彼がマウスの使い方をどれだけ早く習得し、ツールをどれだけ簡単に選択できるかに驚きました。問題は、彼がマウスを完全にコントロールできず、時々(約5分に一度くらい)メニューをプルダウンして、読めないために閉じることができないダイアログボックスを呼び出してしまうことでした。私が部屋にいればすべてうまくいきましたが、数分間部屋を出ると、Benが床でフラストレーションに蹴っているのを見つけることになります。これは、彼がコンピューターに触れる最初の体験として私が考えていたものではありませんでした。結局、私は良いプログラミングプロジェクトを探していました。Benが使えるシンプルなペイントプログラムを書くことにしました。また、それを無料で配布することになるだろうと決めました。数年前にAtariコンピューター用のかなり良い暗室タイマープログラムを書いたのですが、ある会社と販売契約を結びました。しかし、Atariコンピューターを使う人はほとんどおらず、ほとんどコピーは売れませんでした。プログラムを無料で配布していれば、人々がそれを使えて、私が費やした多大な時間に対して何らかの満足感を得られたのにと、いつも思っていました。
プログラムを無料で配布することにしたので、好きなようにデザインできると決めました。これらがその指針となる原則でした。
Kid Pix 1のオリジナルの画面スナップショット
1. (最優先事項)プログラムは非常に使いやすいべきです。マニュアルは必要なく、プログラムの機能は使用を通じて「自己説明的」であるべきです。すべてのタスクは、最もシンプルで最も直接的な方法で実行できるべきです。プログラムはユーザーに寄り添うためにあらゆる努力をすべきです。
2. 最優先事項が侵害されない限り、プログラムを驚きに満ち、満足のいくものにするためにあらゆる機会が捉えられるべきです。機会を逃してはなりません。絵を描くプロセスは、生成される絵と同じくらい重要であるべきです。
3. プログラムは、コンピューターペイントプログラムの概念、およびマークメイキングができることの概念を、何らかの形で拡張するべきです。
4. プログラムはオープンエンドであるべきです。事前に作成されたグラフィックは、ユーザーによって変更可能であるべきです。
5. 各ツールには多数のオプションを持たせたいと思いましたが、ユーザーがオプションに圧倒されることは望みませんでした。その理由のいくつかは、Benがそれらに苦労していたため、プルダウンメニューを使いたくありませんでした。私が開発したシステムは、画面下部のウィンドウに各ツールの14個のオプションの選択を表示することを含んでいました。ツール選択が変わると、オプションも変わりました。
6. 最初のKid Pixは、9インチの白黒画面(512 x 342ピクセル)のオリジナルのMacintoshで動作するように設計されていました。当時Mac用に作られたすべてのペイントプログラムは、一度に描画領域の一部しか表示しない仮想ページを表示していました。私は、私のプログラムにとってはこれは悪い考えだと考えました、なぜなら