2005-06-15

_バージョン番号の衰亡

私自身の考えでは、三つの原因があると思います。

一つはマーケッティング上の理由。 メジャー・バージョンを上げないとニュースになりません。 昔Slackwareがいきなりがばっとバージョンを上げた時から、 商業的関心が薄いプロジェクトでもこの傾向が散見されるようになったと思います。 これは三つ目の理由と関連があります。

二つ目は、記事にも挙げられてますが、 バージョン管理システムの普及、および、テスティング・フレームワークの普及。 このおかげで、開発者サイドから見て、 安定版と開発版を明確に区別してしまうことの利点がかなり消失してしまいました。 コードを相当書き直しても、新しい機能を追加しても、 不安定化する危険度をかなり抑え込むことが出来るようになりました。 今や区別する根拠はせいぜい非互換な変更を加えなければならないとか、 テストが十分ではないと考えられるとか、 そのぐらいです。 開発者にとっては、ブランチは少なければ少ない程扱いやすい(労力が減る)わけですから、それでいいわけです。

三つ目はディストリビューションの弊害。 開発中のコードをテストしてくれる人が著しく減少してしまったからです。 GCCなんかはこれの良い例です。 ディストリビューション側が良かれと思って選択したバージョンしか使ってもらえなくて、 通常のユーザは与えられたものしか使ってくれません。 試すとしたら、せいぜい標準のものが動いてくれないときぐらいです。 今では自分がどのバージョンを使っているのか全く認識してないことが多いですし、 どれぐらいパッチが当たっているかなんて、さっぱり把握していない人ばかりです。 それに少々不満があっても、ほどほどに動いてくれれば、 大抵のユーザは切実な欲求がなくて、ほどほどに満足してしまいます。

開発者側が出来ることといえば、 とりあえずリリースしてしまって、 ディストリビューションに採用させるなり、 ニュース性を利用して人を惹き付けるぐらい。 ディストリビューションは結局パッチをご丁寧に当ててくれますから、 これでも問題の把握は楽にはなりません。

これぞまさに私が常日頃考えるディストリビューションの功罪ですよ。 いくらユニット・テストなどで頑張ったところで、 盲点になってて抜け落ちているケースがあったり、 単純に時間がなくてテストを充実させられなかったり、 自動化させるのが技術的に無理があったりで、 完全な自動テストというものはあり得ません。 だから人の手を使うテストは今でも非常に効果的です。 にもかかわらず、テスタになってくれる人は昔より減ってしまっているようにしか見えません。 残念なことです。

_Zope Foundation to be created

一つは税金対策かな。 もう一つは...大体分かるんだけれど、黙っていよう。

_OpenSolaris Code Released

やっぱりGRUBなんね... で、一体いつになったら送るって言ってたパッチは送ってくれるの?

[]