アウトライナーとプログラミング(Dave Winer/Tak.訳)

Tak.コメント:

この文章は、最初のアウトライナーの開発者であるDave Winer(デイブ・ワイナー)によるエッセイ「Outliners and Programming」の日本語訳です。2008年に本館で公開したものを大幅に手直ししたバージョンです(今後も手直しすると思います)。

文中にある通り、原文が書かれたのは1988年、今から30年以上前も前のことです。Winerが所属していたSymantec社を離れ(自ら興したLiving Videotext社はSymantecに買収された)、新たにUserland Software社を起ち上げようとしていた頃です。

最初のアウトライナーとなったThinkTankを生み出し、やがてMOREというヒット作の開発、Symantecによる買収、そしてUserlandでの再出発にいたるまでの経緯が、Winer自身の立場から時系列に記されています。

(Dave Winer氏から翻訳許可をいただいています)

High Files

私がアウトライン・プロセッシングとスクリプティング環境に関わるようになったのは、ウィスコンシン大学の学生だった1970年代の半ばのことだ。着想を得たのは、プログラムの階層構造を扱えるエディタを備えたLISPシステムからだった。同じことがPascalでもできないか試してみたかったのだ。

出来上がったのは、ソースコードをツリーとして表示・編集できるPDP11上の開発環境だった。このきわめて原始的なアウトライナーは、階層レベルを一段階ずつ切り替えて表示することで、プログラムの全体を見渡すことも詳細レベルに降りていくことも可能だった。たとえば2つのループ処理の順番を入れ替えたいなら、後の方のループの宣言部分にカーソルを合わせて上に動かせばいい。テキストを選択する必要もないし、ループの内容を見る必要もない。

最初期のこの作品の段階で、すでに「アウトラインプロセッサ」と呼ばれるための2つの条件は満たされていた。第一に表示する情報のレベル(階層)をコントロールできること、第二に構造を意識しながらその情報を再構成できることだ。

次のステップは、プログラミング言語抜きで動作するアウトライナーをつくることだった。あらゆるタイプの情報を構造的に整理・編集できるようなものだ。1979年の初めにウィスコンシン大学を辞めると、さっそくマディソンにある自宅のリビングルームにCP/Mで動作するUCSD Pascalが入ったCromemco Z2Dを据えつけて、私は仕事に取りかかった。

それはアウトライナーとデータベースを組み合わせたようなプログラムだった。データベースのフィールドには、他の一般的な形式に加えてアウトライン形式を定義することができる。アウトラインはデータベースのインデックスとして機能する。この作品を「High Files」と名づけたのは、ハイレベルなファイルシステムとして構想したからだ。

VisiText

その年のうちに、私はカリフォルニアに拠点を移した。目標はこのプログラムをApple社に売りこむこと。私はマジソンでApple IIを見たことがあった。プログラムを動かして遊んでみた後、こう思った。クパチーノ*1に行って、ソフトウェアの作り方を教えてやろう。連中は何もわかってない! 初期のApple IIから私が受けた印象はそんなものだった。

Appleは私のプログラムに興味を持ったが、それはアウトライナーではなくデータベースの方だった。そのとき私は24才で、自信満々だった。彼らが本当に必要としているのはアウトライナーの方なのだと説得を試みたが、相手にされなかった。

そこで当時シリコンバレーでいちばんホットな会社だったPersonal Software社の門を叩くことにした。そこではVisiCalcがまさに発表されようとしているところだった。さまざまな意味で、後のパーソナルコンピュータ産業を生み出すきっかけとなった製品だ。

彼らはアウトライナーの話を気に入ってくれた。私は開発者としてPersonal Software社に加わることに決め、VisiTextと呼ばれることになる製品の開発契約を結んだ。マディソンで開発したアウトラインエディタに「Visi」シリーズのインターフェイスを付け加えることが目標だった。

VisiTextは、今でこそ当たり前になっているアウトラインの折りたたみ・展開機能を備えた最初のアウトライナーだった。ヘッドラインからヘッドラインへと移動するバー型のカーソルがあり、アウトラインを確認しながら再構成するコマンドと、アウトライン構造に沿って検索する機能がある。コマンドインターフェイスはApple II版VisiCalcを模したものだった。つまり、当時としては洒落た感じではあったが、ひどくそっけなく、お世辞にも使いやすいとは言えないということだ。

私が加わった頃のPersonal Softwareの社員は10名だったが、1981年を迎えるころには100名を超えていた。Mitch Kapor、Dan Bricklin、Bob Frankston、Dan Fylstra、Ed Esberといったクールな人々と、何人かのあまりクールでない人々がいた。

Personal Softwareはパーソナルコンピュータのソフトを開発する企業としては最初期の会社であり、数々の過ちに関しても業界の先頭をきることになった。1981年、VisiTextをまさに出荷しようというところで、新しい経営陣はこの製品を市場に投入しないことを決定したのだ。

その年の末には、私は再びひとりになっていた。懐にはPersonal Softwareとの和解交渉で得た資金がたっぷり入っていた。

LBBS

すぐにVisiTextの販売を始めるかわりに、私はしばらくの間遊んで暮らすことにした。

1982年にはアウトライナーをオンライン・システムとして機能させるブログラムを書いた。Living Bulletin Board System、略してLBBSと名づけられたこのプログラムは、複数のユーザーがツリー状にメッセージをリンクできるというものだった。

LBBSはCorvus社の10MBハードディスクと300bpsのHayesモデムをつないだApple IIで動作した。LBBSのツリー構造はメッセージスレッドの構造を表している。たとえばあなたの書き込みに対して私が返信したとする。返信はあなたの書き込みの下の最初の「子メッセージ」として、1段字下げされた状態でぶら下がる。私の返信に対するそのまた返信は、私の書き込みの下に字下げされて表示される。これがLBBSが扱える階層レベルの上限——32767レベル——まで繰り返される。メッセージスレッドの実装としてこれ以上にセクシーなものを、私はいまだに目にしたことがない。

とは言え、この仕組みには問題があった。メッセージの入れ子が深くなっていくほど、新しい書き込みを見つけることが困難になっていくのだ。人々がログオンし、メッセージを書き込むにつれて——その多くは核戦争、ダグラス・アダムスの著作、それにシステムそれ自体に関する内容だった——データベースはぐちゃぐちゃになり、まっさらにして再スタートするまでまともに使えなくなってしまうのだった。

解決策としてユーザーが時系列でもメッセージを読める仕組みを追加し、並行して動作するようにした。ユーザーごとにブックマークを保存しておき、システムを利用するたびに、前回のログオン以降に届いた新規メッセージに自動的にジャンプするのだ。この仕組みをメッセージスキャナと名づけた。

こうしてメッセージを読み進めながら、好きなときにツリー表示画面にスイッチして返信を読んだり、ツリーをたどって元メッセージを参照したりできる。もちろんメッセージスキャナに戻ることもできる。この二重構造のアウトライナーは最高だった。

LBBSの作業はとても興味深いものだった。私の机には二台のモニターが置かれていた。一台は開発用マシン(Apple III)に、もうひとつはLBBS用マシン(Apple II)につながっていた。気分が乗るとLBBSマシンを立ち上げて、ユーザーがメッセージを読んだり書き込んだりブラウジングしたりする様子を観察した。あるいは迷子になっている様子も。

3分間カーソルが止まったまま動かないユーザーに、その理由を確かめたいと思うこともあった。迷子になっているのだろうか。それとも知り合いが訪ねてきたのだろうか。あるいはおやつを食べているのだろうか。しかしやがて問題点は明らかになり、私はデータベースをまっさらに再構築するか、ソフトウエアを修正するかして、解決を試みるのだ。

新しい社名「Living Videotext」はLBBSからとったものだ。ビデオテキストというのは、当時の業界でのコンピューター通信分野における最先端の流行語だった。私は当時から、コンピューターの最大の意義は、人と人とののコミュニケーションを助け、より良いものにしてくれることだと考えていた。今でもそう考えている。

1982年が終わる頃には手持ち資金も底をついてきたので、新しいインターフェイスやデータ構造で遊ぶかわりに、ソフトウェアの販売について真剣に考え始めた。

1983年のはじめに事業をスタートしたとき、Living Videotext社にはソフトウェア業界でのビジネスを理解している人間などひとりもいなかった。あったものといえば額面5,000ドルに満たない銀行口座、Apple IIのマニュアル、Apple IIのマスターディスク2枚だ。

まずアウトライナーのThinkTankを発売する。Personal Softwareから取り戻したアウトライナーのことだ。それで成功を収めた後、続いてオンライン・システムTank Central——名前を変えたLBBS——を投入する。それが計画だった。

ThinkTank

Living Videotextに成功を期待する方が無理な話だった。選んだプラットフォームは間違っていた(Apple IIだ)。製品は一風変わっていた。投資家からの資金調達もかなわなかった(今なら理由はわかる。投資家という人種は、彼らの助けなしでも成功間違いない話にしか乗らないのだ)。だから、医者とか弁護士とか起業家とか不動産業者といった人々から資金を集めることができたのは、初期の好意的な紹介記事やレビューのおかげだった。

1984年にはIBM PC互換機向け製品と10人ばかりのスタッフを抱えていた。繁盛しているとまでは言えなかったが、資金繰りはなんとかなっていたし、トレードショーに出品もしていた。看板を下ろさずに済む程度の販売実績もあった。

1983年の7月に私はGuy Kawasakiという南カリフォルニアの小さなソフト開発会社でマーケティング担当をしていた男に出会った。Living Videotextで働かないかと誘ったのだが、GuyはMacintosh開発チームの一員としてApple に入社してしまった。2週間後Guyは電話をかけてきて、デモを見にこないかと言った。

初めてMacintoshを目にしたときのことは決して忘れないだろう——これこそ自分たちのためのマシンだと私はち直感した。私のアウトライナーは、アーティストのための道具として評価を高めつつあった。このマシンに魅かれるであろう人々と、私のアウトライナーに魅かれる人々が同類だということはわかった。Macintoshは創造的な人々を刺激する。私たちのソフトはその創造性を形にするのだ。

Macintosh版ThinkTankを開発するか否かはもはや問題ではなかった。問題はどのように開発するかだ。私はPC互換機向け製品の開発と複雑化する一方の会社運営とマスコミや顧客への対応で忙殺されていた。そこで9月に、ボストンでコンサルタント兼開発者として働いていた弟のPeter Winerを、Macintosh版ThinkTank開発のために雇うことにした。

Peterと私はブレーンストーミングを重ねた。この新種のコンピュータのためのアウトライナーはどのようなユーザーインターフェイスを備えているべきか。アイデアを形にするために、Peterは昼夜ぶっ通しで作業に取り組んだ。その成果がThinkTank 128──最初のMacintosh用のビジネスアプリケーションのひとつ──として発売されたのは1984年6月のことだった。

当初、ThinkTank 128の売れ行きは驚くべきものだった。しかしMacintosh自体の発売当初の売り上げが落ち込み、それにつれて尻すぼみになってしまった。運のいいことに、IBM互換機向け製品の売り上げは順調に伸び続けていた。おかげでMacintosh向け製品だけを販売していた同業者たちが次々と廃業に追い込まれる間、私たちは持ちこたえることができた。

1984年末にはThinkTank 512が発売された。またしてもPeterの英雄的奮闘のおかげだった。すでにMacintosh版製品開発を助けるためにDoug Baronを迎え入れていた。ThinkTank 512を発売するとすぐに新たな製品に取り組みはじめた。これが後のMOREとなる。

Macintoshの世界にとって1985年は厳しい年だった。Appleはすでに死んでいるということで業界の見方は一致していた。MacintoshはAppleを支えきれず、Apple IIは時代遅れだった。レイオフが行われ、次いでSteve Jobsが去った。良き時代の到来を約束するJohn Scullyが後に残ったが、彼を信じていた開発者は多くなかった。

Living Videotextは必ずしもScullyを信じていたわけではなかったが、自分たちのMacintosh用製品のことは信じていた。開発者のほとんどがMac用製品を縮小する中で、私たちはMacへの投資を続けた。そして1986年のはじめ、Appleは初期のMacの深刻な問題点のほとんどを解消したMacintosh Plusを発売し、それが爆発的ヒットとなったのだ!

この波を逃すまいと、私たちは次世代のグラフィック機能付きアウトライナーの出荷計画を練った。

MORE

私たちはあらゆるプラットフォーム向けの手持ち製品の中から、アウトライン・プロセッシングを強化するための機能をかき集めた。

PC向け製品からは、アウトライン上で計算を行なう機能のコードを引っ張り出した。Peterが取り組んでいた組織図作成プログラムは、MOREのツリーチャート機能へと進化した。PeterはThinkTank 512についていたスライドショー機能の強化版も取り込んだ。カレンダー生成機能と自動ダイヤル機能も付け加えた。

私はDoug Baronに「ホイスト(巻き上げ)」機能*2と「クローン」機能*3について説明した。いつものことではあるが、Dougは私の要求を確実に一段上回る仕事をしてくれた。クローン機能の実装は見事としか言いようのないものだった。

Appleに出向いてGuy KawasakiとAlain RossmanにMOREの初期バージョンのデモをしたとき、面白いことが起こった。Guyが「Bullet Chart(箇条書きチャート)」機能のアイデアを思いついたのだ。

それはスライドショー機能について説明しているときだった。「そのスライドは印刷はできるのか」と彼が訊ねたので、私たちは印刷してみせた。Guyは廊下の先にあるLasor Writerのところからプリントアウトを持って帰ってくるなり、テキスト全体を四角い枠で囲み、ひとつひとつのヘッドラインの頭に黒丸を描いてみせた。「これができたら、全Apple社員がこいつを使うだろうな」と彼は言った。

私たちはそのアイデアをそのままいただくことにした。次の2週間、Peterと私はMORE1.0のBullet Chart(箇条書きチャート)となる機能の設計に没頭した。

Bullet Chart機能は私たちにとってもユーザーにとっても素晴らしい成果だった。多くの人がThinkTankをプレゼンテーションの準備に使っていることは、ユーザー登録カードのアンケートからわかっていた。これをもう一歩進めて、アウトラインをプレゼンテーション資料の形式でそのままプリントアウトできるようにすればいいというのは、考えてみれば当然のことだった。

いわゆるグラフィック系のプログラムに対して私が常々感じていたことがあった。それは、思考を言葉にすることを仕事にしている人間にとっては原始的すぎるということだった。ページレイアウトソフトにしてもドローソフトにしてもペイントソフトにしてもそうだ。

MOREではグラフィック作成のプロセスは自動化されている。プレゼンテーション資料をピクセル単位で微調整することはできないけれども、それはよくあるトレードオフといえるだろう。そのかわりMOREでは、アウトラインさえ打ち込めば、あとはクリックひとつで整然としたチャートができあがる。MOREが強力な製品となったのは、このインスタントなグラフィック作成機能が極めて有用だったからだ。

1986年6月のMORE1.0の発売は、Living Videotextにとって唯一のホームランと呼べるものだった。MOREは完璧な製品だったと私は今でも思っている。1986年当時、まだ海のものとも山のものともつかなかったアウトライン・プロセッシングという分野を、ビジネスアプリケーションへと変身させたのだ。UserLand Software社が運に恵まれるならば、その最初のエンドユーザー向け製品はMOREと同じくらいタイムリーに登場し、市場で比較するもののない存在になるはずだ*4

MOREの成功を受けて、1986年が終わる頃には私たちは他社製品の買収を目指していた。私が特に興味を持っていたのは通信ソフト、特にTHINK Technologies社のInBox、Internet社のInterMail、DaVinci EMAILなどの製品だった。こうした企業の技術者たちが一堂に会し、開発中のMOREの最新バージョンを統合データ構造として使いながら仕事に取り組めるようにすることが私の夢だった。目標は80年代初期のLBBSの開発を通じて得た経験を全て注ぎ込んだ、MOREのLANバージョンを生みだすことだった。

そのための準備として、私はMOREを核にしたメール整理プログラムの試作品をいくつか作った。Doug BaronにはMOREをディスクベースのプログラムに書き換えてもらった(MORE1.1cに至るまで、私たちのMacintosh製品は全てメモリーベースで動作していた)。

通信分野のビジネスに参入する準備を進めていた1987年の春、MacintoshはPCソフト業界における社会現象のようになっていた。買収するに値する製品は少なく、Living Videotextのような売れる状況にある企業は引っ張りだこの状況だった。私は葛藤していた。Living Videotextでのジェットコースターのような生活に心底疲れ切っていたのだ。私生活は崩壊し、身体には贅肉がつき、不健康そのものだった。それでも私はMOREをベースにした技術の可能性に魅せられていた。

買収

取締役会の面々がどれほど疲れ切っていたのかを私は理解していなかった。買収のオファーが入り始めると取締役会は大喜びし、それが成り行きを決めた。会社をコントロールするのに充分なだけの株を保有してはいたものの、私は彼らの提案を受け入れることに決めた。1987年の夏にはSymantec社との交渉に入り、9月には合併した。

私はSymantec社のミッションを本当に信じていた。今でもそうだ。ソフト開発企業というものは、その運営に関わる組織 ― セールス、サポート、管理、製造、そしてマーケティングの一部 ― を製品サイドから分離することにより、多くのものを得ることができる。

しかしBreakthrough Software社、Living Videotext社、THINK Technologies社、そして元々のSymantec社のような多様な企業を統合することは、はるかに困難なことだった。互いの相違点を乗り越え、問題点を解決していくには個性とエゴが、そして燃えつき症候群に冒された人々があまりにも多かった。

無力感とともにを半年を過ごした後、私は一息ついて身体を引き締め直し、新しいソフトウエアについて考えるためにSymantecを辞めることにした。それでもSymantec社を今日のような強力なソフトウエア企業にする過程でのGordon Eubanksの努力を私は高く評価している。今も彼らの製品を使い続けているし、株主でもあり続けている。

UserLand

1988年末までに再出発の準備は整った。ひと月スキーをして過ごし、体重は80ポンド落ち、体型も大学を出て以来最高の状態に戻した。私は新たな商品、そして新たな会社のアイデアを温めはじめていた。私自身を代表・単独株主、私の顧問弁護士であるJack Russoを秘書として、1988年11月にUserland Software社が設立された。

*1:クパチーノ:カリフォルニアのApple本社所在地

*2:ホイスト(巻き上げ):今のWorkFlowyやDynalistでいうズーム機能。

*3:クローン:あるトピックの複製を作り、一方を更新するともう一方も自動的に更新される機能。今日のアウトライナーではNeOが同じ機能を持っている。

*4:このエッセイは、Winerが1988年にUserLand社を興した直後に書かれた。