ビル・アトキンソン氏が6月5日にすい臓がんで亡くなられたそうです。
まだ74歳。死ぬには早すぎます。
Apple 社のプログラマで、初期の Mac の環境に寄与した人です。
Mac の描画ライブラリである Quick Draw を一人で書いています。
Mac の元となる Lisa というマシンが、Alto というマシンを参考に作ったのは有名な話です。
ただ、Alto にはややこしい描画を支援するハードウェアがあった。
これを「全部ソフトでやっている」と勘違いしたビル・アトキンソンは、必要な機能がすべて揃った QuickDraw を作り出すのです。
ウィンドウを描画しようとしたときに、そのウィンドウが別のウィンドウに一部分隠されていたら、隠されている部分は描かないでそれ以外の部分を描きます。
これ、今では当たり前ですが、物凄く面倒な処理です。ウィンドウによる操作、というものを始めて市販マシンで実現しようとした Lisa では、この面倒な処理をどうにかする必要がありました。
それを解決するプログラムを作ったのが QuickDraw です。
他にも、ジョブズのこだわりで「長方形を描画するときに、角を丸くしたい」という要望に応えています。
元となった Alto は、ボタンなどはすべて長方形でした。でも、現実のボタンなどは角張ったものなどあまりない。角が優しい丸みを帯びているのが普通です。
そこで、「角丸矩形」(Round Rectangle)を描画する機能を作ったのです。
また、Quick Draw が非常に優れている点として、「数学的に正しい描画が行われる」点があります。
通常のグラフィックライブラリでは、画面のドットを指定して「どこからどこへ」線を引く、などと命令を出します。
しかし、Quick Draw では、仮想の空間に描画を行い、それをどのように画面に反映するかを別途指定します。
このため、拡大縮小なども自由ですし、画面とは違う解像度を持つ、プリンタなどへの出力も綺麗に行えます。
現在の iPhone にもこの概念は受け継がれており、気軽に画面を拡大・縮小できます。
ただ、現在の iPhone は Quick Draw ではなく、その後同じ概念で開発された PostScript になっています。
ビルは Quick Draw を作っただけでなく、それを使用した「Mac Paint」も作っています。
まだ Mac 以外にマウスオペレーションのコンピューターがなかった時代に、「マウスの使い方」を伝えるためのソフトでもありました。
もちろん、グラフィックソフトですから、QuickDraw の機能を存分に引き出しています。
さらに、伝説のソフトウェアともいえる、HyperCard を作成し、すべての Mac で使えるように無償提供しています。
これは、ひと悶着合ったらしいです。ビルは自分が作ったソフトを多くのユーザーに使ってほしくて無償を主張し、ジョブズは会社の製品なのだから、有償を主張する。
最終的に「無償提供しないなら会社を辞める」とビルが言ったため、ジョブズが折れています。
さて、この HyperCard の何が伝説かというと、体験していない人にはちょっと説明しずらいのです。
まず、HyperCard はカード型データベースです。
画面サイズの「カード」を作り、そこにありとあらゆるものを格納できます。文字に限らず、グラフィックでも貼り付けられます。
Mac の Copy & Paste 機能を駆使して、自由にデータを張り付けておけますし、他のソフトにコピペできます。
データベースというよりはスクラップブックですかね。
しかし、これだけであれば、難しい全体知識なしに誰でも使えました。
そして、貼り付けてある「部品」にプログラムを書き込むことができました。
プログラムがあると、部品がクリックされたときにプログラムが実行されます。
これにより、クリックされると「次のページを表示する」とか、「隠されていた部品を表示する」とか、「音を再生する」とか…とにかくいろいろできたのです。
いろいろできると当然遊びたくなります。
実は、ここで書く「プログラム」は非常に単純なもので、誰でもすぐ覚えられるレベルなのですが、簡単なゲームを作るには十分でした。
実際、 HyperCard で書かれたゲーム、というのは Mac では非常に人気があったのです。
ちなみに、「HyperCard以前」のプログラム環境では、ボタンを押したら特定のプログラム実行、ということをするのに、何十行ものプログラムを書く必要がありました。
まず画面にボタンを描いて、そのボタンをクリックするための仕組みを作って、クリックされたら動くプログラムを作って、としないといけない。
データベースとして画像を扱い、その画像を「ボタン」と見立ててプログラムを与え、ボタンを押したら実行される、という考え方が大発明で、この考え方は現在他のプログラム言語にも取り入れられています。
また、ボタンを押したことがそのボタンが置かれているカードにも伝わり、カードの束(スタック)にも伝わり…
プログラムはボタン部品だけでなく、スタックなどにも書けました。
こうした「上位の部品に出来事が伝わる」という仕組みも、今のプログラム言語に取り入れられています。
現在、一番 HyperCard の概念を引き継いでいるのは、ブラウザ上で動く Javascript ではないかと思います。
当ページでも Javascript は使用していますし、Web 上の Javascript は多くの人がお世話になっているはずです。
HyperCard がなければ、こうした環境は作られなかったでしょう。
ただ、Javascript が同じような環境か、というとそれは違います。
Javascript は結構プログラム上級者向け。誰でも気軽に楽しめる、というものではありません。
HyperCard では、もっと簡単・気軽にプログラムを作れました。
そうした環境を作り出した、というのが、ビル・アトキンソンの突出した才能でした。
話が前後しますが、Mac 以前の Apple// のころに、Apple 版 Pascal を作ったのもビル・アトキンソンです。
当時は BASIC がプログラム言語として普及していましたが、次は Pascal 、と誰もが思っていました。
実際に普及したのは C 言語でしたが、Pascal とは兄弟のような関係にあります。
(どちらも Algol を手本に作られた言語)
ただ、Pascal の方が初心者でも扱いやすい仕組みがありました。
だから、BASIC の次は Pascal 、と考えられていたのです。
でも、コンピューターがホビーストだけのものではなくなり、広く普及すると、プログラムする人は激減します。
コンピューターが普及しておらず、市場が小さなときには、市販ソフトも多くはありませんでした。
欲しいものがあったら、プログラム言語を覚えて自分で作るしかなかった。
でも、普及したら市販ソフトが沢山作られるようになりました。
多くのユーザーは、ただその市販ソフトを使うだけでいいのです。プログラムを作る必要はありません。
そして、そうした「市販ソフト」を作る人の間では、Pascal よりも C の方が支持されます。
Pascal は、初心者の為に速度効率よりも扱いやすさを優先しているところがありますが、C は高速に動作します。
代償として「初心者向けではない」のですが、市販ソフトを作るような人には問題ありませんでした。
それはさておき、ビル・アトキンソンは、Apple // の Pascal の為にグラフィックライブラリも作りました。
Apple // は画素も荒く、色の扱いにも制限がありました。グラフィックライブラリでは、そうした制限を気にせずに絵を描き、内部で Apple// の制限にあった形に変換して描画する、というような仕組みがあったそうです。
これがのちの QuickDraw の原型になっています。
Mac の初期の内部 ROM が、Pascal を前提とした形で作られているのも有名な話です。
HyperCard の後、ビル・アトキンソンは Apple 社内で「Knowledge Navigator」の実現化プロジェクトに携わります。
1980年代末、Apple はウォズもジョブズも退社した後で、どちらに向かえばよいのか示せる人がいませんでした。
そこで、社長のスカリーがぶち上げたのが Knowledge Navigator という大構想。
自然言語で会話することでコンピューターに指示を与え、コンピューターは個人の専属秘書のようにふるまいます。
その当時の技術ではとてもできない、と分かっているのだけど、コンピューターがみんなの暮らしを豊かにするためには、こうした方向に向かわなくてはならない、という「意識の共有」を、社内のみならずコンピューター業界に対して行ったのです。
実際、その後長い時間をかけ、コンピューターはその方向に進んできました。
でも、Apple 社としてはそんな長期計画は儲からない。実現化プロジェクト1990年には中止になります。
そこでビル・アトキンソンが興したのが「General Magic」という会社。
Apple での研究の続きを行い、個人のための「秘書」となるコンピューターを作ろうとしました。
まだインターネットが普及する前の事ですが、必要ならネットワーク上で最新の情報を集め、ユーザーが「知りたいこと」に応えてくれる。
端末の OS は MagicCap と呼ばれ、ビルがほぼ一人で書き上げたそうです。
そして、この MagicCap は、先に書いたようにネットワークを前提としていました。端末内でもプログラムは動かせるが、必要に応じてネットワークにもプログラムの実行を依頼する。
UNIX 等の実験的なネットワークではそうした実行例はありましたが、市販する商品としては非常に先進的。
しかし、当時の多くの人は、こうした概念を知りません。製品としてわかりにくいのです。
そこでビル・アトキンソンが作った造語が「Cloud」。
雲、という意味ですが、ネットワークの向こうの、なんだかもやもやした部分に、見えないけどいろいろな情報がある。
そことやり取りすることで、必要なことを実現する、というのです。
今では当たり前に Cloud って使われてますね。ビル・アトキンソンによる造語です。
この OS は、協力各社から次々商品化されます。
日本でも Sony から MagicLink の名前で発売されています。
でも、時代が早すぎました。
通信はまだ電話回線に頼る時代。手元の端末と遠隔サーバの協調動作、というのは、通信速度がネックになります。
結局、発売はしたものの非常に遅くて使いづらく、しかも通信料金がかさむ、というなんとも使いにくいものだったのです。
しかも、商品的に失敗だったため、対応サーバは短期間の後に次々と閉鎖。
端末を購入した人も、サーバーがなくては使い続けることができません。
今では各社が同様のことを実現していますが、「技術的に実現可能」な時代になってからも、GeneralMagic 社の特許に抵触するため提供できない、ということもあったとか。
各種特許が切れたのが 2010年ごろ。その頃から Cloud 技術が急に普及してきたのも、そういう側面があったようです。
構想が早すぎて、時代が追いつくのに 20年かかってしまったのです。
ビル・アトキンソン。
当ページを書き始めたころの、僕の「ヒーロー」の一人でした。
ご冥福をお祈りします。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |