- オペレーティングシステムは、かつては売るのが難しそうに見えた非物質的なコードだったが、MicrosoftとApple以降、大衆が対価を払って選ぶ商品であり、文化的アイデンティティにもなった
- GUIはバイトやファイルをデスクトップ・文書・ごみ箱といったメタファーで包み込み、コンピュータへのアクセス性を高めたが、メタファーが実際の動作を覆い隠すと、エラーやデータ消失はより不透明になる
- WindowsとMacOSは巨大な市場を作ったが、閉鎖的なオペレーティングシステムとハードウェア独占は、オープンソースのUnix系と低価格PCエコシステムの成長と対照をなす
- Linuxはコマンドライン、公開ソース、公開バグデータベース、ASCII設定ファイルによってシステム内部を見せるが、その強力さは日常ユーザーに**ギーク疲れ(Geek fatigue)**を残す
- BeOSは新しいGUIとPOSIXベースのターミナルを併せて提供し、折衷案を示したが、オペレーティングシステム市場では技術と同じくらいマインドシェアとドライバーエコシステムが生存を左右する
オペレーティングシステムが大衆商品になった過程
- JobsとWozniakは家庭用情報処理機械を売るというアイデアでAppleを作り、GatesとAllenはさらに奇妙に見えたオペレーティングシステム販売を事業化した
- オペレーティングシステムは物理的実体がほとんどない1と0の長い文字列だが、MicrosoftはそれをGilletteが替え刃を売るように大量販売する会社になった
- オペレーティングシステムの新製品は映画のブロックバスターのように発売され、一般ユーザーもMacintosh向けソフトウェアがWindowsでは動かないという違いを知るようになった
- Microsoftのオペレーティングシステム独占問題は米国司法省の反トラスト措置の対象となり、PC対Mac論争は個人的な関係にも表れるほど文化的な問題になった
- 自動車の比喩では、MicrosoftはMS-DOSという自転車からWindows 95という巨大なステーションワゴン、Windows NTというオフロード車を売り、Appleは内部が封印された高価なセダンを売る会社として描かれる
- BeOSは技術的に進歩したBatmobile、Linuxはボランティアが無料で配る戦車に近い
- 顧客の90%はMicrosoftの店へ行き、残りの大半はAppleを選ぶ
- 無料のLinuxは強力だが、ユーザーは「戦車の保守方法が分からない」という理由でためらう
コマンドラインとGUIが生んだメタファーのコスト
- 初期のコンピュータ利用はteletype、紙テープ、モデム、メインフレームを経る形式的な手順であり、人間は意味を解釈し、コンピュータはビットに算術処理を行うという役割分担が明確だった
- コマンドラインインターフェース(Command Line Interface)は、teletypeで1行入力して応答を受け取る方式に由来し、GUIが登場して初めて別の名前が付いた
- Macintoshは1984年にGUIを大衆化し、コマンドラインなしにマウスだけで操作する設計によって、従来のCLIを歴史の中へ押しやろうとする姿勢を示した
- GUIはファイル、文書、ウィンドウ、デスクトップ、ごみ箱といったメタファーを使って抽象的なデータ構造を説明する
- HTMLファイルはWebページの視覚的な結果とは異なり、ブラウザが解釈するテキスト電報に近い
- ブラウザは、電報の内容をもとに野球中継を想像して語ったRonald Reaganの役割にたとえられる
- GUIのメタファーは便利だが不完全である
- “document”は現実の固定された記録を意味するが、コンピュータ上の文書は保存前後で状態が変わり得る
- “save”は以前のバージョンを消し、現在のウィンドウ内容で新しいバージョンに置き換える動作に近い
- クラッシュや電源問題で文書が消えるとき、ユーザーはメタファーと実際の動作が食い違うmetaphor shearを経験する
Microsoft、Apple、オープンソースの経済論理
- Microsoftは美的完成度や完全性よりも、株主利益の最大化に合わせて製品を出す会社と読める
- Windowsの見た目がよくなかったり欠陥があったりしても、より大きな利益を生むなら経営判断としては成立する
- Microsoftへの敵意は「強すぎる」ことへの反感と「野暮ったい」ことへの軽蔑が混じった形で現れる
- Appleはハードウェア独占戦略を維持し、MacOSが動くハードウェアを統制していたため、高価格で封印された構造を持つようになった
- この方針はハードウェア・OS・ソフトウェアの統合品質を高め得る
- 同時に、Appleがハードウェア売上に依存しているという財務上の理由も働く
- Macintoshはハッカーが内部を開けて手を加えにくい機械だった
- オペレーティングシステムの本質は、よく使われるコードを集めたライブラリに近く、閉鎖的なオペレーティングシステムはオペレーティングシステムの目的と衝突する
- OSのインターフェースと動作はプログラマーが活用できるよう公開されるべきなので、実装方法が秘密でも、同じ動作をするコードは書き直され得る
- MS-DOSと同じ機能をProDOSが再実装した
- LinuxではWINEがWindowsプログラムの実行環境を再現する
- UnixはSun、Hewlett-Packard、AT&T、Silicon Graphics、IBMなど複数の会社がそれぞれ実装した
- オペレーティングシステム技術は時間が経つにつれて無料化する傾向があり、MicrosoftのOS事業はアプリケーション事業と研究組織を育てる基盤になったが、長期的には切り離すべき対象として扱われる
- MicrosoftがOSシェアを守るためにブラウザのような新技術をオペレーティングシステムへ結合すると、OSシェアが揺らいだときに他の事業も一緒に引きずり下ろされる可能性がある
LinuxとBeOSが示したシステム文化
- LinuxはUnixの複数の実装の一つであり、Linus Torvaldsが1991年にGNUツールを使ってPC互換ハードウェアで動くUnixカーネルを書き始めたことから出発した
- Linuxが可能になった条件は3つの軸に整理される
- Richard StallmanとGNUが無料の開発ツールを提供した
- Microsoftがハードウェア事業を行わず、Windowsを複数メーカーのPCで動くようにして低価格PC市場を育てた
- Linus Torvaldsがそのハードウェアとツールの上でカーネルを始めた
- Unixは「Hole Hawg」ドリルのように強力である
- 指示したとおり正確に実行するが、ユーザーが結果を十分に予測できなければ危険である
- 小さな工具は試して失敗するだけだが、Hole Hawgは命令を文字どおり実行する力があるため、より危険である
- Linuxは起動時に白い文字の長いログとエラーメッセージを表示し、エラーがあってもそのプロセスを諦めて進行を続けられる
- 初期のMacOSとMicrosoft OSは同時に複数のことを行うのが難しく、エラー復旧が限られていた
- Linuxと他のUnix系は並列プロセスとエラー監視に強い
- Debianは公開バグデータベースによって、問題と解決の過程をユーザーに見せる
- 同じ機械にWindows NT 4.0をインストールしようとした経験は、インストール中断、機能しないMicrosoft Support検索、送信されないPay Per Incident手続き、つながらない電話番号へと続いた
- その後、Microsoft Support検索は実際のバグ報告に近い文書を見つけられるほど改善された
- 公開バグ情報は、Microsoftにバグの存在を認めさせる効果を持つ
- BeOSはMacOSやWindowsに蓄積したcruftを避けるため、新たに設計されたオペレーティングシステムである
- Jean-Louis Gasseeが設立したBe, Inc.は、1990年代初めから既存OSと互換性のない新しいOSを作った
- BeBoxはデュアルプロセッサと前面LEDインジケーターを備えたBeOS専用機だった
- BeOSはその後Macintosh、Macクローン、Intel PCへ移植された
- BeOSはオブジェクト指向構造、メッセージパッシング、マルチスレッディング、マルチプロセッシングを備え、Terminalアプリケーションでコマンドラインを提供する
- POSIXに従っているため、GNUコンパイラ、リンカー、ユーティリティを実行できる
- GUIテキストエディタPeを使っていても、
wcのようなUnixコマンドで文字数を数えられる
オペレーティングシステム市場を動かすマインドシェア
- オペレーティングシステム市場におけるMicrosoftの力は、伝統的な意味での独占というよりマインドシェア支配に近い
- Linuxは無料で、技術的に優れていると評価されている
- BeOSは名目的な価格で提供される
- 生産手段や流通手段を物理的に支配する過去の独占とは異なる
- Microsoftが高い地位を占める理由は、ハードウェア・ソフトウェア企業がWindows互換製品を作らなければ、市場で真剣に受け止められないためである
- ハードウェア企業がWindowsドライバーを書くので、Microsoftはすべてのドライバーを自ら作る必要がない
- Linuxは無料ドライバーを書く有能なコーダー集団でこれに対抗する
- BeOSは自社ドライバーと一部のサードパーティドライバーに依存する
- GUIは単なるPCインターフェースを超え、VCR、携帯電話、衛星テレビ、レジ、銀行端末、Lego Mindstormsのような消費者向け技術のメタインターフェースになった
- すべての機能にGUIを付けると、小さなユーティリティを独立したプログラムにしにくくなり、機能はMicrosoft Officeのような巨大なパッケージの中へ吸収される
- Unixの
wcは小さなコマンドラインプログラムで十分だが、GUIにするには多くのコードとメモリオーバーヘッドが必要になる
- Microsoft OfficeのBasic機能は、多くのユーザーにハッキングの可能性を提供し得る
- Linuxの強力さは、設定ファイル、コマンドライン、オプション、スクリプト、文書の読解を要求し、ユーザーを疲れさせる
findのmanページは11ページあり、PPP接続にはダイヤルスクリプト・オプションファイル・シークレットファイルが必要である
- 手で設定変更を記録しておかないと、元に戻すのが難しい
- 理想的なOSは、よく設計されたGUIと、必要なときに戻れるコマンドラインを併せて提供する形に近い
- 最後の比喩では、コマンドラインは宇宙を生成するほどの自由と危険を持つインターフェースであり、完全自動化されたGUIは人生の選択をボタン一つで置き換えるインターフェースである
- 人生と技術は難しく複雑であり、どんなインターフェースもその事実自体を変えることはできない
- 選択を任せたくないなら、ユーザーが自分で選択しなければならない
2件のコメント
Hacker News のコメント
Neal Stephenson のこのエッセイは、1999年に初めて公開されたもの
https://en.m.wikipedia.org/wiki/In_the_Beginning...Was_the...
OSを自動車にたとえた部分、たとえば Windows はステーションワゴンで Linux は戦車、というような比喩は、最近の Acquired の Microsoft 回でも再び取り上げられ、そこでは Vista を Dodge Viper、Windows 7 をユーザーが実際に望んでいた Toyota Camry にたとえていた
https://slashdot.org/story/04/10/20/1518217/neal-stephenson-...
それでも人々は25年前の文章を持ち出し続け、Linux ユーザーであることを理由に自分を持ち上げる。「俺は Hole Hawg を使っている! 戦車を運転している! 俺は本物のハッカーだから、あいつらとは違う!」という感じだ
一方 Windows は、ダッシュボードに27インチ画面を2枚取り付け、ユーザー体験は悪く、広告だらけの車になった
この比喩がかなり的を射ている理由は、Comet が実質的に Edsel の次期モデルで、ブランドを変えただけだったからだ。Vista から 7 への移行も似たようなものだった
誰もがピックアップの重い運搬能力を必要としているわけではないが、サイズと燃費の負担を避けようとすると、危険な故障の仕方をする Pinto しかなかった。後に Pinto は消えて Ford Taurus に置き換わったが、そこそこ使えるものの面白さも性能も特別ではない車で、トランスアクスル設計のため故障すると前部全体を分解しなければ修理できなかった
そのうえ Ford の市場圧力のせいで、インフラ設計者たちがそのように作ってしまったため、3台のうちどれか1台がなければ走れない道路や行けない場所ができ、別のものを望むと嘲笑までされる状況だった、という話だ
コマンドラインインターフェイスの大きな利点は、指示や修正方法を非常に簡潔に伝えられる点にある
Linux システムで既知の修正方法が必要なら、ターミナルにコピー&ペーストするコマンドを送ればそれで済む。しかしグラフィカルなプログラムの既知の修正方法は、途端に伝えるのがずっと難しくなる。「ハンバーガーメニューをクリックしてから『preferences』を選ぶ」といったテキスト指示にするのか、複数のスクリーンショットと説明を付けるのか悩まなければならない
残念ながら、ダブルクリック操作をグラフィックでどう伝えればよいかは分からない。時間がかかり、ミスも起きやすいプロセスなので、バグのあるGUIアプリが事実上放棄されたソフトウェアである場合にしか使いどころがない
そうでなければ、新しいバージョンにも同じバグや直感的でない手順が残っているのに、GUI は見分けがつかないほど変わっている可能性が高い。どこかの管理者が HN の記事を読みすぎて、ユーザー向けのリファクタリングこそが最重要だと判断したせいかもしれない
https://support.microsoft.com/en-us/windows/record-steps-to-...
ただし、1990年代後半的な意味で、GUI がテキストUIやコマンドラインに対して持っていた核心的な利点を最もよく表すなら、ユーザーに要求するものが少ないという点だ。「見てクリックする」対「覚えて入力する」という違いは、非常に根本的に見える
音声UIや LLM UI のトレードオフを、これほど簡潔に表現した文句はまだ見たことがない
{ select[i]@dropdown:states > click@button:submit }のような形だ。まだこのような体系がないからといって、不可能というわけではない。今のテック業界が好む LLM がトークン、つまりテキストベースで「視覚的な計算」を行えるという事実を見るだけでも、どんな表現でも最終的にはテキストにエンコードできるそうすれば、GUI
aの記録機能が操作のエンコードを生成し、それを GUIbを見ている同僚にメールで送り、貼り付けてもらうことができるGUI中心でやろうとすると、実際に持っている道具はGUI操作を指示するテキストコマンドだけになる。結局、中間段階が1つ増えることになる。たとえば AppleScript をすでに使っているなら、AppleScript がGUIシステムを経由して迂回しようとしている実際のコマンドを、そのまま直接実行したほうがよい、という話だ
Unix Haters Handbook https://web.mit.edu/~simsong/www/ugh.pdf とあわせて再読すべき
私たちに必要なのは、作り直された LispM、Smalltalk ワークステーション、あるいはオペレーティングシステムを1つのアプリケーションのように作った形だと思う。フレームワークが最下層までユーザーに開かれていて、完全にエンドユーザープログラミングが可能で、探索可能で、完全に統合されたシステムであるべきだ
UI としては 2D、さらには 3D/4D のコマンドラインが必要で、これは 3D や動画・マルチメディア要素を含められる DocUI に近い。概念的な枠組みとしては http://augmentingcognition.com/assets/Kay1977.pdf がある
「このディーラーには整備士がいるでしょう。ステーションワゴンに問題が起きたら、1日休みを取ってここへ持ってきて、待合室でエレベーターミュージックを何時間も聞きながら、料金を払って直してもらえます」という原文のくだりに対して、「無料の戦車を受け取れば、あなたが寝ている間にボランティアが家に来て無料で直してくれます!」という拡声器越しの反論が思い浮かぶ
実際、Linux ディストリビューションがどこかの時点でそういうサポートを提供したことはあったのか? おそらくプロジェクトのコントリビューターが私のコンピューターに ssh で接続するような形だったのだろうが
私の印象では、その議論は「私たちには戦車のあらゆるボルトとネジを説明した技術マニュアルが建物いっぱいにあり、それを無料でコピーしてあげられる。適当に努力して全部読んで覚えれば、戦車を自分で修理し改造できる。もう不誠実な自動車ディーラーに依存しなくてよい。助けが必要なら月例のコミュニティミーティングに来て、あなたと同じくらい戦車に夢中な人たちと話せばいい。ただし十分に戦車に夢中である場合に限り、そしてマニュアルを読んだ後に限る」に近かった
もちろん何十年も前の話で、今は状況がずっと良くなっている
SuSE がまだ残っていることも見えるし、Canonical がどうやって運営費をまかなっているのかも想像できる。有償サポートだ。Linux サポートは大きなビジネスであり、人気ディストリビューションを存続させる原動力だ
昔は商用ソフトウェアが自分のコンピューターで動かなければ新バージョンを買う必要があり、無料パッチ は珍しかった
普通は「うちの近くに来るな、この変な人!」というのが正常な反応だろう。かなりの信頼が築かれていない限り、自分が寝ている間に誰かを家に入れたりはしない
実際の一般的な反応は「オープンソースだから、君の戦車は何でも自分で直せる」に近かったはずだ。ほかの装置と接続する新しいモジュールが必要なら自分で作ればよく、大したことではない、という感じだ
ブラウザが長い行をうまく扱えないなら、こう見ればいい
wget -O - [https://web.stanford.edu/class/cs81n/command.txt](<https://web.stanford.edu/class/cs81n/command.txt>) | nroff | lessWindows に対する Unix/Linux ユーザーの感情を説明する箇所で、私が一番好きなのは オペレーティングシステムの Hole Hawg という表現だ
このエッセイは、すべてのコンピューターサイエンスの学生と、自分をハッカーと呼びたい人にとって必読であるべきだ
大学の卒業式の最中にこの文章を読んだ。ガウンのひだの中に隠して読んでいたのだが、そのときできる最もふさわしい行動だった
すぐに人生の方向を変え、この文章で提示された考えに集中するようになった。目標は コマンドラインで世界を動かすこと で、ほぼ成し遂げた
Command Table に移らなければならない
ほぼ純粋な Bash で LLM コマンドラインインターフェース を書き上げたところだ[1]
この文章の論点ゆえに、LLM の未来を支持している。人々はコマンドラインシェルと対話するように LLM と対話し、すべてがプレーンテキストベースだ。Unix 哲学でもある。CLI クライアントを書く前にこの文章を読んでいたら、もっと多くのアイデアを得られたと思う
[1]: https://github.com/simonmysun/ell
この文章は HN で 最も頻繁に再投稿された記事 賞を取れるだろうか? 17年間、平均して年に2回ずつ上がっている
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
タイトルや URL のバリエーションのせいで集計がぶれることもある
この本を ソフトカバー で持っている。たぶんミレニアムの変わり目の前に読んだのだと思う
BeOS 愛好家として、バットモービルへの言及が特に良かった
The hole hawg.. それは何ですか?