2006年10月09日

低レベル オープンソース ソフトウェア憲章

概要

 非常にレベルの低いソースコードを、非常にレベルの低いドキュメントだけで公開しよう。

緒言

  現在では、高水準のオープンソース ソフトウェア(OSS)はありふれたものになりました。しっかりと練り上げられた設計、大量の高品質なドキュメント、膨大なユーザ数。私たちが日ごろ目にするOSSの大半は、非常に高水準のOSSです。

  その水準の高さを目の当たりにするにつけ、私はこう思います――「自分には高水準のOSSなんて作れない」。そこで私は高水準のOSSをあきらめ、低レベルのOSSに固有の価値を追求することにしました。

  プログラマの身の回りには、低レベルのソースコードがちらかっているはずです。コメントは皆無で関数名はでたらめ、入力データを決め打ちしていて一般的な利用は不可能、使い方など書きようもない――そんな書き捨てのコードがあるはずです。

  そのコード自体は、第三者にとっては、ほとんど価値はありません。書き捨てのコードを読んで理解して活用するよりは、ゼロから書いたほうが早いし楽しいものです。

  しかし、そのコードが必要になった理由には、価値があります。書き捨てとはいえコードを書くからには、それなりの理由があるはずです。書かずにすませる方法を探した末に、書くしかないとの結論に至った、その過程に価値があります。

  設計にあたっては、それなりの検討を行ったはずです。その設計は実装によって検証されています。この情報にも価値があります。

  価値があります――が、どうせたいしたものではありません。非常にレベルの低いドキュメントで十分です。

  では具体的にどんな感じで低レベルのOSSを公開するとよさそうか? 低レベルなので適当にやるのがいいでしょう。コツのようなものを私なりに考えてみて、その結果がこの文書です。

  ところで、この文書がなぜ憲章なのかというと、丹羽信夫『低レ研』(アスキー)をもじっているからです。

目標

  低レベルのOSSは、だいたい以下のような数字を目標にします。

  • 100人の目に触れる。そのうち10人は知人で、90人はGoogleからやってくる。
  • 3人が概要を理解する。
  • 0.1人が試しに実行してみる。
  • 0.01人がそのコードを自分の仕事に活用する。

ソースコード

  とりあえず法的・商売的にヤバそうなものがないことを確認しましょう。

  やることは、それだけです。

  GPLヘッダをわざわざつけたりしてはいけません(最初からついているならOK)。定数の直書きを直したりしてもいけません。やれば低レ憲違反です。

  異なる環境でコンパイルが通るかどうかを確かめてはいけません。そのコードを実行する人はおそらくいません。

バイナリ

  なくてもいいでしょう。おそらく誰も実行しません。

ライセンス

  気分や趣味で選びましょう。

パッケージング

  圧縮ファイルに固めたりする必要はありません。そもそもリリースという行為自体が余計です。CVSリポジトリに突っ込むだけで十分です。ただしドキュメントだけは、Googleのクローラにかかるようにしておきましょう。

  試しに実行してみることができるように、テストデータを用意しておきましょう。

ドキュメント

  フォーマットはHTMLです。以下の点をいい加減に書きます。

  • このソフトウェアが低レ憲に則っていること
  • ソフトウェアの利用目的
  • 言語と環境
  • このコードを書かずにはすませられなかった理由
  • どうしてこんな設計になったのか
  • ソースのありか
  • 試しに実行してみる方法

 以下の点を書かないでおくと、低レベルのアピールとして有効です。

  • 作者の連絡先
  • ドキュメントの日付

  以下のことを書いてはいけません。書いたら低レ憲違反です。

  • 英語ドキュメント
  • ステップ バイ ステップな操作方法

機能追加とバグフィックス

 作者自身に必要があるときにだけやります。

 作者自身が使わない機能を追加してはいけません。作者の使い方とは関係のないバグを修正してはいけません。低レベルであることの価値を、あくまで追及するのです。

公開方法

 SourceForge.jpがいいでしょう。

 SourceForge.jpは、高水準なOSSのための機能を盛りだくさんにしていますが、惑わされてはいけません。あくまで低レ憲に則って行動しましょう。

 ドキュメントはGoogleのクローラにかかるようにしておきます。SourceForge.jpにはWebホスティングサービスがあります。

実例

 こんな感じです。

Posted by hajime at 2006年10月09日 12:54
Comments