コンウェイの法則(Conway's Law)

libtaskが提供するコルーチン。その歴史は古く、マルチプロセス/スレッドが登場する以前の並行システムの実装によく用いられていた。例えば、Simulaとかが有名だが、スラッシュドットに次のような書き込みを見つけた。

Simula開発者Kristen Nygaard氏死去

Anonymous Coward : 2002年08月14日 12時35分 (#145858)
手元の教科書によると,当初はクラスがデータ抽象化にたいへん有効だ,ということは Nygaard と Dahl も気づいてなくて,1972年になってから Hoare が初めて指摘した (Acta informatica, 1(4), 1972),とあります.SIMULA67 にクラスを導入した理由は,むしろコルーチンをサポートするためだったそうで.

へぇ、これは知らなかった。

このコルーチンの生みの親はMelvin Conway*1で、1963年に論文が発表されている。

Wikipediaによると、Conway氏は「コンウェイの法則」を残した、初期のハッカーとしても知られているとのこと。

Melvin Conway was an early hacker who coined what's now known as Conway's Law: "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

Conway氏のホームページには、1968年のDatamation誌に掲載されたオリジナルが引用されている。

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

要はソフトウェアの構造はそれを作った組織を反映しているという法則。3機関が協業した複雑なMulticsに対して少数精鋭の研究者がシンプルに作ったUNIX。巨大化する商用UNIXと、原点回帰したPlan9Microsoftの発展と、MS-DOSからWindowsへの流れ。オープンソース革命とLinux。なるほど、いろいろ思いあたるところがある。

この法則、最初にどこで読んだのか忘れてたけど、Fred Brooks Jr.の「人月の神話」だったのか。

蛇足だけど、上記の論文には(私は未読だが、Hoare曰く)UNIX pipeの原型ともいえるアイデアについて言及されていて、多重パスコンパイラの実装に使うべきと提案されているらしい。

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)

ライフゲイムの宇宙

ライフゲイムの宇宙

*1:ライフゲームのJohn Horton Conway氏とは別人物。