概要
非常にレベルの低いソースコードを、非常にレベルの低いドキュメントだけで公開しよう。
緒言
現在では、高水準のオープンソース ソフトウェア(OSS)はありふれたものになりました。しっかりと練り上げられた設計、大量の高品質なドキュメント、膨大なユーザ数。私たちが日ごろ目にするOSSの大半は、非常に高水準のOSSです。
その水準の高さを目の当たりにするにつけ、私はこう思います――「自分には高水準のOSSなんて作れない」。そこで私は高水準のOSSをあきらめ、低レベルのOSSに固有の価値を追求することにしました。
プログラマの身の回りには、低レベルのソースコードがちらかっているはずです。コメントは皆無で関数名はでたらめ、入力データを決め打ちしていて一般的な利用は不可能、使い方など書きようもない――そんな書き捨てのコードがあるはずです。
そのコード自体は、第三者にとっては、ほとんど価値はありません。書き捨てのコードを読んで理解して活用するよりは、ゼロから書いたほうが早いし楽しいものです。
しかし、そのコードが必要になった理由には、価値があります。書き捨てとはいえコードを書くからには、それなりの理由があるはずです。書かずにすませる方法を探した末に、書くしかないとの結論に至った、その過程に価値があります。
設計にあたっては、それなりの検討を行ったはずです。その設計は実装によって検証されています。この情報にも価値があります。
価値があります――が、どうせたいしたものではありません。非常にレベルの低いドキュメントで十分です。
では具体的にどんな感じで低レベルのOSSを公開するとよさそうか? 低レベルなので適当にやるのがいいでしょう。コツのようなものを私なりに考えてみて、その結果がこの文書です。
ところで、この文書がなぜ憲章なのかというと、丹羽信夫『低レ研』(アスキー)をもじっているからです。
目標
低レベルのOSSは、だいたい以下のような数字を目標にします。
ソースコード
とりあえず法的・商売的にヤバそうなものがないことを確認しましょう。
やることは、それだけです。
GPLヘッダをわざわざつけたりしてはいけません(最初からついているならOK)。定数の直書きを直したりしてもいけません。やれば低レ憲違反です。
異なる環境でコンパイルが通るかどうかを確かめてはいけません。そのコードを実行する人はおそらくいません。
バイナリ
なくてもいいでしょう。おそらく誰も実行しません。
ライセンス
気分や趣味で選びましょう。
パッケージング
圧縮ファイルに固めたりする必要はありません。そもそもリリースという行為自体が余計です。CVSリポジトリに突っ込むだけで十分です。ただしドキュメントだけは、Googleのクローラにかかるようにしておきましょう。
試しに実行してみることができるように、テストデータを用意しておきましょう。
ドキュメント
フォーマットはHTMLです。以下の点をいい加減に書きます。
以下の点を書かないでおくと、低レベルのアピールとして有効です。
以下のことを書いてはいけません。書いたら低レ憲違反です。
機能追加とバグフィックス
作者自身に必要があるときにだけやります。
作者自身が使わない機能を追加してはいけません。作者の使い方とは関係のないバグを修正してはいけません。低レベルであることの価値を、あくまで追及するのです。
公開方法
SourceForge.jpがいいでしょう。
SourceForge.jpは、高水準なOSSのための機能を盛りだくさんにしていますが、惑わされてはいけません。あくまで低レ憲に則って行動しましょう。
ドキュメントはGoogleのクローラにかかるようにしておきます。SourceForge.jpにはWebホスティングサービスがあります。
実例
こんな感じです。
Posted by hajime at 2006年10月09日 12:54