コンウェイの法則(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年に論文が発表されている。
- Melvin E. Conway, "Design of a separable transition-diagram compiler," Communications of the ACM, Vol.6, No.7, pp.396-408 (July 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と、原点回帰したPlan9。Microsoftの発展と、MS-DOSからWindowsへの流れ。オープンソース革命とLinux。なるほど、いろいろ思いあたるところがある。
この法則、最初にどこで読んだのか忘れてたけど、Fred Brooks Jr.の「人月の神話」だったのか。
蛇足だけど、上記の論文には(私は未読だが、Hoare曰く)UNIX pipeの原型ともいえるアイデアについて言及されていて、多重パスコンパイラの実装に使うべきと提案されているらしい。
人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)
- 作者: フレデリック・P,Jr.ブルックス,Frederick Phillips,Jr. Brooks,滝沢徹,富沢昇,牧野祐子
- 出版社/メーカー: アジソンウェスレイパブリッシャーズジャパン
- 発売日: 1996/02/01
- メディア: 単行本
- 購入: 4人 クリック: 126回
- この商品を含むブログ (49件) を見る
- 作者: ウィリアム・パウンドストーン,William Poundstone,有澤誠
- 出版社/メーカー: 日本評論社
- 発売日: 2003/06/12
- メディア: 単行本
- 購入: 5人 クリック: 280回
- この商品を含むブログ (41件) を見る