約3年ぶり位にカーネル読書会に参加してきました。
http://d.hatena.ne.jp/hyoshiok/20060825
ここのところ、ずっとオープンソースから離れてプロプライエタリなソフトウェアの開発だったため Linux の方は全然ウォッチできていなかったのでちょっとした浦島太郎の気分。昔とトレンドがまた変っていて dog year を再実感。
で、読書会の中で議論になって個人的に一つひっかかっているところがあります。それはカーネルに experimental としてコードを入れるときの基準についてですが、まったく動かないコードもいれてしまうというスタンスの人がそれなりにいるということです。個人的な感覚だと(オープンソースか否かにかかわらず) experimental なコードとしていれるものは、ある程度は動作するものであるべきだと考えます。ある程度とは限定された状態でもいいので動くことを意図しています。開発中だから、安定しないというのは許容されてもよいと思いますが、全く動かないのに入れてしまうのは、機能の開発という観点では無意味だと思います。人柱の人に試してもらえる以前の状態なので、フィードバック自体が意味をなさないからです。
それでも入れる人の意図としては、先に入れておかないとマージ自体が大変だということらしいですが、こういう状態でリリースされているとビジネスで使う側の立場の人から信頼されるのは難しいかなと思います。 自分は at your own risk で使うので動かないこと自体には問題を感じないのですが、開発者の立場という観点からだと、かなりの違和感を感じます。OS 開発の対価として報酬を得ている立場なのでスタンスが違いますが、動かないコードを入れるということ自体がユーザに与える影響を考えるとあり得ないです。
でも一番の問題は、Linux カーネルのコードを実装する人々が考える品質の基準とかがまちまちだからなのかも。多様性のメリット・デメリット両方あって、品質についてはデメリットのほうで影響でている気がします。 メリットもいろんな実装や設計がでてより良いものを選択できるなど、たくさんあるので、Linux の開発モデルが悪いというつもりはないです。 IBM などはこの辺りを補完、付加価値として Linux を使って SI ビジネスを展開しようとしているし、それでニーズが満たせてビジネスになるなら、それもありだと思いますが綱渡りのような危うさを感じてしまいます。