1 ポイント 投稿者 GN⁺ 2024-02-13 | 1件のコメント | WhatsAppで共有

Multicsオペレーティングシステム開発の物語

  • Multicsオペレーティングシステムを開発したアンドレ・ベンスーサンは、ファイルシステムの主要な変更作業を担当した。
  • VTOCマネージャは、ディスクとメモリ間のファイル情報の移動、共有メモリバッファプールの管理、ディスク上の情報空間の管理を行うサブシステムである。
  • アンドレはVTOCマネージャの設計、実装、テストを担当し、多くの図を描きながら設計作業を進めた。

開発過程と成功

  • プロジェクトコーディネーターのトム・ヴァン・ヴレックはスケジュールを懸念していたが、アンドレがコードの作成を始めると安心した。
  • アンドレはコンピュータ端末ではなく鉛筆でコードを書き、タイピングの手助けも断って、すべての作業を自ら行った。
  • 最終的に鉛筆で書いた整然としたコードを端末に入力してコンパイルを試み、いくつかのタイプミスを修正した後、無事にコンパイルされた。
  • システムに統合してテストしたところ、VTOCマネージャは最初から完璧に動作した。

アンドレ成功の秘訣

  • アンドレは道具として鉛筆だけを使い、完璧なプログラムを書き上げた。
  • VTOCマネージャで見つかった唯一のバグはトム・ヴァン・ヴレックのミスで、エラー処理手順の呼び出し順序を誤って伝えたことが原因だった。
  • アンドレの仕事の進め方は、ソフトウェアエンジニアリングに関する逸話としてIEEE Computer 1994年4月号で紹介され、2003年11月に更新された。

GN⁺の見解

  • アンドレ・ベンスーサンのMulticsオペレーティングシステム開発の物語は、徹底した設計と集中力がいかに完璧な成果物を生み出せるかを示している。
  • 鉛筆と紙だけを使った伝統的な方式は、現代の複雑なソフトウェア開発ツールと対比したとき、基本に忠実なアプローチの重要性を強調している。
  • この物語は、ソフトウェアエンジニアリング分野における綿密な事前作業とテストの重要性を思い起こさせる好例であり、エンジニアリング教育においても重要な教訓を提供している。

1件のコメント

 
GN⁺ 2024-02-13
Hacker Newsの意見
  • 1つ目のコメント要約:

    • 明確な要件: ソフトウェアのバグが少なく高速である理由は、明確に定義された要件があるため。現在のソフトウェアは何を作るべきかが曖昧で、"アジャイル"方式によって継続的に変更される。開発者に明確なAPIとよく定義された基準を提供すれば、たいていは効率的なコードを書ける。
  • 2つ目のコメント要約:

    • ソ連のプログラマーの能力: ソ連からの亡命者と一緒に働いた経験では、ソ連のプログラマーが優秀だった理由は、コンピューターへのアクセスが非常に限られていたため。紙と鉛筆でプログラミングしなければならなかったので、最初から正しく動作させようとする努力があった。
  • 3つ目のコメント要約:

    • 個人作業空間の重要性: 以前のHacker Newsスレッドでのjrd259アカウントのコメントを引用し、大きな机と通知のない個人作業空間の重要性を強調している。
  • 4つ目のコメント要約:

    • 紙の上でのプログラミング経験: 子どもの頃、祖父の家でコンピューターなしにタイプライターでTurbo Pascalプログラムを書き、後でPCで実行した。また、自分が作った風変わりなプログラミング言語Ziimの2進加算関数を紙に写してバグを見つけて修正した経験も共有している。"簡単な"方法を制限すると、よりよく考え抜かれたコードを書けることを強調している。
  • 5つ目のコメント要約:

    • 過去のプログラミング: "ビッグアイアン"の末期には、プログラマーはデータ入力担当者と大差なかった。プログラムは紙に書かれ、計算時間は高価で貴重だった。バグが発生すると、次のCPU実行を予約するまで修正できなかった。これは慎重なアプローチを促した。現在はIDEでデバッグしながら反復的にソフトウェア開発を進めている。
  • 6つ目のコメント要約:

    • アンドレ・ベンスーサンが書いたコード: アンドレ・ベンスーサンが書いたコードへのリンクを提供している。
  • 7つ目のコメント要約:

    • 過去のソフトウェアの規模: 当時のソフトウェアは現在よりはるかに小さく、ほとんどのプロジェクトはメガバイト単位で、単一ファイルに"記録"するには大きすぎた。
  • 8つ目のコメント要約:

    • 学校でのプログラミング課題: 友人の経験では、学校でプログラミング課題を紙で提出し、1週間後に結果を受け取った。1週間の"コンパイル時間"は、作業を二重に確認させる教育的な経験だった。
  • 9つ目のコメント要約:

    • アジャイル/スクラムの不在: アンドレがどうやってそのような作業ができたのかという問いへの答えは、アジャイル/スクラム開発手法がまだ考え出されていなかったからだというもの。
  • 10つ目のコメント要約:

    • 紙の上でのコーディング経験: 14歳のとき、高校のプログラミング授業でコードの大半を紙に書いていた。貧しい国の貧しい子どもだったため家にPCがなく、学校のコンピューター室にあったZX Spectrumクローンでは普段使っていたTurbo Pascalを実行できなかった。