著作一覧 |
さてやっと1998年春を迎えて『ノウアスフィアの開墾』だ。おそらく、伽藍とバザールにくらべてがくんと知名度は落ちる(つまり、みんな2項対立は大好きだけど、協調の話や未知の用語には興味がないんだろうなぁと勝手に推測しているおれだった)。
ノウアスフィアとは、『ヌースフィア』(でぐぐれ)のことで、ぐぐればわかるが、すさまじく怪しい用語だ。もっともこの論文の中ではソースコードが存在する思考空間を意味している。
この論文のテーマは、なぜハッカーはソースをオープンにするのか、なのだが、内容はむしろ、「なぜオープンソースは、ソースの自由な改変を許すライセンスなのに、改変したソースが元に戻るのか?」の解明に軸足がある。
推測だが、ネットスケープをはじめとする企業が自社のコードベースをオープンにした場合に、そこから知らないうちにフォークされてもっとうまいことされるのはすごく嫌がるだろうと考えて、そうではなくハックされて戻って来るよ、ということを説明しようとしたのだと思う。
この論文で説明されていることは、結構、皮膚感覚で理解できることが多い。
・名前重要
この場合の名前は変数名とかではない。たとえば、ソースコードの先頭のコメントにby Matzと書かれていたり、ChangeLogにusaとか書かれているとする。それを消しゴムでごしごししてはならない、ということ。当たり前だ(と、おれは感じる)。ではなぜオープンソースに関係する人間なら、それは当たり前だというコモンセンスがあるのか?
・はじめたやつがえらい
これも当然だ。RubyはMatzだし、jcode.plはdankogai(追記:良く知らない領域を有名でわかりやすいだろうという理由から調べもせずに書くのはくずだという見本のようなことをしてしまった。jcode.plは歌代さんですな。dankogaiはJcode.pm経由Encode.pm(さらに追記:Encode.pmの原作者はNick Ing-Simmonsです)。お詫びして訂正します。ごめんなさい)だ、というようなことだ。ファウンダーの名前とプログラムは密結合している。では、なぜこれも当然だ、と感じるコモンセンスがあるのか?
・オリジナルがえらい
それから、フォークがめったに起きないこと。実際、Perl、Ruby、Python、Gaucheといった言語系は特にそうだが、RubyにとってのJRubyのような別プラットフォームに対する別実装や、Rubiniusのようなどちらかというと実験的な別実装(PerlでいくとPugsなんかがそれにあたると思う)はあっても、同一ソースコードからのブランチが独立して出ていくようなことは(1回あったけど)あまりないし、それが主流となることもない。なんかBSDのフォークがすごい(といってもNetBSD、FreeBSD、OpenBSDしかないけど(実際はもっとある))のでフォークするような印象があるが、人が犬を噛むと事件になるの原理で、ほとんどないことだからニュースになるのだ。というわけで、BSD、X.orgのようなものはあるけれど、それほどフォークはしない。でも、それってライセンスは自由な改変を許すのに不思議じゃない?
で、ソフトウェアプロジェクトを開始することを、荒野の開墾にたとえて説明している。これは本文でも書かれているが、世界中どこにでも見られる慣習または法で、考えてみれば日本でも墾田永年私財法にしろ、江戸時代の新田開発にしろ、お金か労力を出して開墾したやつがそれを手に入れるという決まりがあった。似ているね。(だからどうしたという気もするけど)
そこから、贈与文化へ進む。物が有り余っていて生存のための競争(食うための殺し合い)が不要なら、お互いに物を譲りあうほうが生きるのが楽だ。そのような文化では、気前が良くてみんなに物をばらまく奴が偉い。尊敬を集める。これが、ハッカー(の生成物であるソースコード)が生存する空間=ノウアスフィアの文化だ。で、この空間において最も重要なものは、評判(=集めた尊敬)だ。つまり、ノウアスフィアにおいて貨幣経済での貨幣に相当するものは、評判で、貨幣経済で他人の貨幣を奪うことが犯罪なのと同じく、ノウアスフィアにおいては他人の評判を奪う(プロジェクトを横からさらったり、名前を消したりするような行為)は犯罪として扱われる。
ハッカー倫理がコモンセンスなのは必然だったのだ!
さてその空間でも、特にすごいやつがいて、極端に他の連中と比較して広大な土地を開拓してしまう。当然のようにその人間は巨大な評判を持つことになり、周りの普通の人はそこに集まってくる。しかし、巨大な評判を持つ人間が評判を得ているのは、評判を持っているからだ(なんというトートロジー。もちろんそれだけの評判を得たのは、巨大なコードベースを創出したからだけど、それ自体はノウアスフィアの贈与経済の仕組みからみんなの共有財となっているわけだから、最終的に残っているのは評判だ)から、インセンティブは評判の維持にある。評判を維持するためには、ハッカー倫理にしたがう必要がある。
かくして、圧倒的な能力(開墾した土地の広大さで、広大なゆえにニッチもたくさんあるし、目を離すと荒れてしまう土地もある=他の移住者のための場所がたくさんある)によって独裁的な権力を他のメンバーから与えられたが、その基盤は評判である以上、彼は評判を失うような行動は取れない(まあ、取る必然性もない)。したがって、この独裁者はいやがおうでも、「優しい独裁者」とならざるを得ない。
そこで、ラリーもリナスもマッツもナイス! なのは当たり前のことなのだ。そして優しい独裁者のもとでの開発は、緩やかなハッカー連合によるユーザーをも取り込んだバザール型にならざるを得ない(強権を振うことにより評判を失うことが忌避されるためだ)。独裁者はその地位を守るためにはコードベースをより豊かにする(=領民の生活の場を維持、拡張する)必要があり、そのためには名前重要をはじめとしたハッカー倫理に従う必要がある。ソースコードのエコシステムの維持が彼の職務だからだ。
と、細部をはしょって説明すると、なんじゃこりゃのようなところはあるが、でも、確かにこれでオープンソースのあり方(というか人間関係)は説明がつく。
この論文が後知恵で見て嫌らしく感じるのは、だから企業さん、安心してハッカーが作りだしたプログラムを使いまくっても平気だよ。だってやつらは評判重要だからね! それからソースをオープンにしても問題ないよ。だって大きな実り(=パッチ、拡張)は元の持ち主に戻ってくるからね! という意図が透けてみえる点だ。
でも、それをおいておくと、ここに説明されているハッカー倫理の分析は、明文化されたオープンソース開発への参加ガイドとして優れている。
それにしても、伽藍とバザールの結論が、プロジェクトリーダーはコミュニケーションスキルがあるナイスなやつじゃなきゃだめだよ、で、ノウアスフィアの結論は、他人の評判を大事にすることで自分の評判が傷つかないように振る舞いなさい、というのは、一般的に考えられるハッカー像とはずいぶんと違うように見える。それは当然で、評判を大事にするという言葉ひとつとっても、(ノウアスフィアに対比させて)現実空間とはちょっと違う。早い話が、間違った物言いにはフレームを辞さず、バグっているコードは容赦なくリバート、腐ったアイディアは腐っていると指摘する、そういったソースコードレベルの生なプロトコルが下にはあるからだ。それはそれ、これはこれ。
後、おもしろい指摘で、でも確かにそうだなというのが、賞賛は個人に、非難はプログラムに、というのがある。
たとえばAさんがリビジョン5390のコミットをしたとして、それが素晴らしい効果を与えたとする。その場合は、「Aさん、GJ!」と、そのコミットをした個人の名前が賞賛される。
一方、Bさんがコミットしたリビジョン5391がとんでもないデグレを巻き起こしたとする。この時は、「r5391のせいでとんでもないことになった」「r5391はひどかった」と、Bさんではなくコードが非難される(少なくとも公式文書では)。
まともな開発者ならバグは常にあるということを知っているから、エンバグしたという理由で個人を非難してもしょうがないとわかっているからだ。一方、どういうコードが問題を起こしたかの知見は重要だ。
一方、良いアイディアは人間に根差しているのは当然だ。したがって賞賛が人に向かうのも当たり前だ。
でも、確かに見た目の対称性はないね。
というわけで、次回はハロウィン文書へ進む。これはあらゆる意味でおもしろい文書だ。
ナイスガイ角谷とオーム社の御好意で、アジャイルサムライをいただきました! ありがとうございます。
アジャイルサムライ−達人開発者への道−(Jonathan Rasmusson)
で、ざっくりと読み始めると忍者の写真やらマスター・センセイのお言葉やらがたくさん入っていて、これはナイス(という言葉から受けられる妙な人なつこさと親近感があるポジティブなイメージ)な本だ。
そして書かれている内容は、お客様の立場になって考えて、みんなで合意して計画して計画に無理があったら方向を調整して……とナイスな人間として振る舞うことが書いてある。
ちゃんと読んだら、また書きます。
ハッカー倫理ではオリジナルがえらいのは、ファウンダーがえらい、つまりは評判重要なのだが、これが企業論理になると俺様に都合が良い改変をして保守は連中、というコスト戦略になるところがおもしろい。
ジェズイットを見習え |
> dankogaiはJcode.pm経由Encode.pm。<br>Encode.pm の原作者は Nick Ing-Simmons ですよ。 http://blog.livedoor.jp/dankogai/archives/50986563.html<br><br>> なんかBSDのフォークがすごい(といってもNetBSD、FreeBSD、OpenBSDしかないけど)<br>NetBSD と FreeBSD はわりと別系統で、OpenBSD は NetBSD の fork ですな。<br>あと、マルチスレッド絡みの対立で別れた DragonFly BSD とかあります。<br>(HAMMER FS や、最近 AMD CPU のバグを見つけたことで話題になった)<br>http://hardware.slashdot.jp/story/12/03/08/0237225/<br>他にそこまで有名じゃないのや微妙なのだと、BSD/OS, Darwin, JUNOS, MirOS BSD, NEXTSTEP/OPENSTEP, 初期の SunOS, NEWS-OS など。
どうもありがとうございます。Encode.pmは現オウナー(この認識が間違ってたら話にもならないけど)ってことでいいかなあと思ったんだけどダメ? だめか。っていうか書いている内容になぜ反することをするんだろうね。BSDについては主なってことで勘弁して。本文は夜、直します。