バリウムおいしくない。来年は胃カメラだ(げんなり)。平林さんからメールをいただいた。近いうちに対応していただけそう。1.2.16が出てるじゃありませんか、今まで1.2.7なんてのを使ってました。メールオーガナイザーを作ろうと思った時に入手したのに、もうこんなに進歩してるとは。いつのまにか正規表現やワイルドカードでも検索できるようになってるし。ぐたぐたと脳内で考える日々になるのかもしれない。コーディングに入れないのは年取ったせいだろうか。結局、フロントエンドには手をつけず関連検索を実装しました。[OSS]風博士Debianのパッケージが更新されたので、0.1.7にアップグレードする。今までFirefoxと交代で使っていたが、これ一本に集約できそうな気がする。履歴内検索(Estrailerを使っている)Firefoxよりもきびきび動く。メモリ消費量も少ないテキストエリアからEditerを起動できる(私の場合はemacsclient)。Firefoxでもmozexでできたけど。気に入らない点IM(kinput2)使用中でも、キーアクセラレータが優先される。C-oを解除しないと使えなかった。C-jのExtractSelectedLinksで、明示的に選択しないと開けない。「保存」と同様最初からチェックが入っていてほしい。メニューなどのフォントがfirefox-locale-jaよりも汚い。これは風博士自身ではなく、Debianパッケージの問題だろう。気に入らない点も些細なことばかりなので、我慢できる。私の手に余るので、「オープンソースプロジェクトのフォークと互換性」という点に絞って考えたい。なんとなく「オープンソースではメンテナが望まないフォークが発生して、互換性を維持できなくなるケースがある」という暗黙の過程があるような気がする。オープンソース化されれば、差別化、重視になるでしょう。一部のコミュニティが互換性を無視することに対してコミットして、互換性は失われる方向になる。オープンソース化すると、誰にも互換性の維持はできない。[mimiさんのコメント]あるいは私は、仮にJAVAをオープンソースとした場合、SUNがリーダーシップを取れなくなってしまう「可能性がゼロでない」のを恐れているように感じます。些細な分岐がSUNに変わる本流となりえないとは言い切れないところに躊躇しているんじゃなかろうかと推測してます。「forkをおそれる」という企業のスタンスはよく理解できます。「旧バージョンで動いていたプログラムが新バージョンで動かない」というサポートはとても面倒。「新バージョンはウチじゃなくて別のコミュニティで勝手にコミットしてるんですがーーorz」なんて間抜けな対応したくないでしょうし。[Mr.orzさんのコメント]とか。「forkをおそれる」というのはどういうことを想定しているのだろうか。どのような事態が発生することをおそれているのだろうか。オープンソース化しても、勝手に「新バージョン」がリリースされるわけじゃない。そんな場合でも「そのフォークはうちは知りません」の一言で済むはずだ。オープンソースではフォークを禁止することはできない、これは事実だ。フォークなどの理由によって互換性の問題が発生するようなケースがあるのだろうか。厳密には、オープンソースだからという理由で互換性の問題が発生しやすくなることがあるだろうか。その理由を説明してきたはずだ。それはムリな相談だろう。危険なたとえを使うと、交通事故の可能性はゼロではないが人は車に乗るわけだし。逆に言うと「オープンソースでなくても互換性の問題は発生する」と読み替えてもかまわない。「メンテナが望まないフォークが発生して、互換性を維持できなくなったケース」あったのだろうか。これからありえるのだろうか。それともFUDにすぎないのか。それをはっきりさせたいと思っているのだ。具体的なイメージはなく、ただ単におそれているだけならばかばかしい。企業が自分のプロダクトをオープンソースにするもしないも、その企業の自由だ。オープンソースというやり方を信じられない。オープンソースにしない方がビジネス上有利だと思うから。苦労して開発したソースは秘密にしたい。事実でないことを理由にしてほしくない。結局ある方言(コンパイラ)用のプログラムは、別のコンパイラでは動かない(ので結局別の言語と同じ)というような。不完全な(あるいは曖昧な)言語仕様とそれに基づいた独自実装によるのではないか。オープンソースの処理系があれば独自実装の必要性は薄れ、むしろ方言問題は回避できるのではないか。Javaについては、おそらくはマイクロソフトの「J++ショック」が尾を引いているのかもしれない。気持ちは想像できるが、その問題はSunのJDKのライセンスをオープンソースにしないことでは回避できない。Java方言を作るのは簡単だ。私の知る範囲でプロジェクトのフォークが発生するのは次のような理由だ。進歩の方向に意見の対立が発生し、意見の調整ができなかった。この場合には「本家」はそのまま存続するので、本家についての互換性は問題ではない。分家と本家との間には互換性の問題はあるが、これはオープンソースに限らない(独自実装とか方言とかの問題)。メンテナがメンテナンスを放棄したが、後継者が複数登場し、一本化ができなかった。「本家」が放棄されているので、少なくとも互換性は問題にならない。あと、可能性としては「ただフォークしたかった」というものもあるのかもしれない。発生したとしても、すくなくとも「互換性」の問題は発生しない。ありがたいことに、フォークというのはめったに起きない事態だ。これはオープンソースプロジェクトではオーナーシップが尊重されていることを反映しているだろう。日曜日は用事があるので、役場で期日前投票を行う。国民の権利であり、義務だから。投票行動に対する動機づけが希薄なのは確かなのだが。Hokkaido本番。ホテルから歩いて北大、クラーク会館まで移動。いろんな人が来ているので御挨拶。高橋さんもいらしてた。日本Rubyの会はYARVのポスターとRailsによるブログツールTypoを展示していた。TypoはAjax風味の表示が結構すてき。日本Rubyの会の展示の隣はZopeが展示していた。以下のような会話が交わされた。Python使わないですねえ。スタッフの人が呼びにくる。「まつもとさん、こっちこっち」。七輪並べてジンギスカンを始めている。そんなのどかさはなかった。それをよろこんでばくばく食べるというのはいかがなものか。母親あたりにひどく怒られそうな気がする。