著者: Kevin Bedell
日本語訳: yomoyomo
以下の文章は、Kevin Bedell による The Case for Open Source/Closed Standards の日本語訳である。
本文書の元となったメーリングリストのスレッドと Slashdot 本家のストーリーが参考になる。
最近、OSI が主催するライセンスについての議論を行うメーリングリストで、コードの一部として配布が必須のテストスイートと互換性を保つことを義務付けた上で、コードをオープンソースとして公開するやり方についてちょっとした論争があった。
議論の口火を切ったのは、Sun Microsystems の Bob Scheifler だった。Bob の最初の投稿は以下の通り:
個人的に教えていただきたいというのがあり、またこれはメーリングリストに投げてもよい質問だと思うのですが、以下の非公式なライセンス案が、OSD(訳注:日本語訳)に矛盾するかどうか、特にどの点で矛盾するかを知りたいです。どんなコメントも歓迎します。
- ライセンスされる著作物は、ソースコード、実行形式のテストスイート、そしてテストスイートのドキュメントからなる。
- 未修正のテストスイートを通った実行形式の派生物であれば、自分で選択したライセンスの元で配布可能。
- それ以外のいかなる派生物も、本ライセンスの元でのみ配布が可能。その場合配布物には、未修正のテストスイートとテストスイートのドキュメントを含まねばならない。
このアイデアは、コードの派生版に、コードとともに配布されるテストスイートを通ることを何らかの形で義務付けることを意図している。派生物がテストスイートを通る限り、そのコードをどんなライセンスで配布することも可能になる――が、派生物がテストスイートを通らないなら、それをテストスイートとともに、上記ライセンス案の元で配布することが求められる。
この種のライセンスを採用すれば、API そのものは変更できないながらも、何かしらの API を実装するコードを、オープンソースライセンスの元で公開できることになる。例えば、もし Sun が Java をオープンソースライセンスの元で公開したいと考えるなら、Sun が選択するライセンスはこの種のものになるかもしれない。
派生物にテストスイートを通ることを義務付けることで、Sun は確実に Sun 版の Java と非互換な派生版 Java の公開を誰もできないようにすることが可能になる。オープンソースコミュニティは(またそうでない企業も)、テストスイートを通るコードからなる実装を自由に公開できるが、Sun は(少なくとも JCP は)規格としての Java を支配し続けることになる。
よって、オープンソースとクローズドな規格、というフレーズが来る。
では、これは良いアイデアだろうか? 何らかの組織が、ソフトウェアが実装する規格を支配し続ける場合、それを「オープンソース」と見なすことは可能だろうか?
個人的には、これで良いはずだと思う。API の分裂を防ぎながら、標準 API のオープンソース実装を可能にすれば、みんなの利益になる。
良い例として、数年前にマイクロソフトが Java の非互換バージョンを公開したことで引き起こされた混乱を思い出してみよう。マイクロソフトは Java のライセンスを悪用し、彼らが Java の「改良」と呼ぶものを実装する JVM(MSJVM)を作った(「取り込んで拡張する」は分かるよね?)。
これが Sun とマイクロソフトの間で大規模な訴訟を引き起こした。Sun は、マイクロソフトのやったことは反競争的行為であり、Java の規格を分裂させるものだと主張した(そして両方の訴因とも Sun が正しかった)。あらゆる Windows に入手できる他のどの JVM とも互換性のないバージョンの Java を収録しても、(マイクロソフト以外の)誰の得にもならなかったではないか。
(本文書は元々、ここにクリエイティブコモンズライセンスの元で公開されたものである)