(OpenOfficeに続き)OracleがMySQLを潰しにかかっている?という話
気になるニュースがあったので、急いで執筆して投稿しました。内容が粗いですがお許しください。
OpenOfficeが残念なことになったのに続いて、Oracleが今度はMySQLを潰しにかかっているんじゃないの?というニュースについての解説です。
元のニュース
まずは元のニュースです。ちょっと煽りが入ってる記事ですのでその点はご注意ください。
Oracle、オープンソースのMySQL潰しに次の一手
http://jp.techcrunch.com/archives/20120818oracle-makes-more-moves-to-kill-open-source-mysql/
OracleはMySQLの最新リリースでテストケースを隠した。これは、このオープンソース・ソフトウェアをさらに封じ込め、MySQLのデベロッパー・コミュニティーを無視しようとする、同社の継続した動きを象徴するものだ。
詳しいことは後で書きますが、この記事は、OracleがMySQLに嫌がらせをしたと言っています。具体的には以下の二点です。
問題は、最近MySQLの最新リリースにバグ修正があるにもかかわらず、関連するテストケースが一つとしてなかったことが発見されたことに端を発する。このことは、問題が実際に修正されたことの確認ができないデベロッパーに、さまざまな問題を生じさせた。
まず一つ目は、バグ修正がされたのにそれに対応するテストケース(テストコード)が公開されなかったという事件でした(これが何を意味するかについては後で説明します)。
さらにOracleはMySQLの改訂履歴を削除したようだ。改訂履歴グループは、変更セット(change sets)として知られる数百万行のソースコードに置き換えられた。
二つ目はMySQLがどのように書き換えられたのかが解る情報を削除(非公開に)してしまったという事件でした。
なお、Oracleとはデータベースで有名なあの会社の事です。
先の記事で書いた通り、OracleがJavaを作った会社として有名なSunを買収したあと、Sunが抱えていたオープンソースプロジェクトに残念なことが起こります。以前の記事ではOpenOfficeが残念なことになり、LibreOfficeとして社外で出直しを図ることになった経緯を紹介しました。
その後:LibreOfficeは快進撃中、OpenOfficeはもうすぐ新版が出る?
http://firstlight.cocolog-nifty.com/firstlight/2012/01/libreofficeopen.html
全体の状況の詳しいところは上記の記事を見てください。この事件も上記の記事で書いた一連の騒動の一部です。
ただまあ、Sunが買収されたのは業績が良くなかったからでした。業績が良くないので買収後に色々な立て直しがあるのも仕方のないところで、Oracleが悪いと言っていいのかどうかは難しいところはあります。
MySQLとは
「MySQL」とはオープンソースのデータベースソフトウェアで、非常に有名です。どれくらい有名かというと、世界で一番多く使われているデータベースです。MySQLの特徴はオープンソースであることで、つまり無料で利用できて、ソースコードが自由に使える点です。
データベースはかつては商用製品が当たり前でした。高いお金を出して買ってこないと使えないのが当たり前でした。なおOracleは、(有償の)データベースソフトウェアを自社開発して売る会社として世界一の会社です。
有料が当たり前だったデータベースですが、時代が20世紀から21世紀に変わり、インターネットが普及し始める時代に、オープンソースのデータベースソフトウェアが使われ始めます。最初は、おもちゃみたいなもので実務には使えない微妙なものに過ぎませんでしたが、その後、改良が続けられるうちに十分に商業利用が可能になり、現在はオープンソースのデータベースの利用は珍しくもなんともなくなりました。
MySQLはスウェーデンの企業が開発して提供しており、オープンソース提供(GPL)とお金を払ってサポートがある版の提供がされていました。その後、MySQLはJavaでおなじみのSunに買収されます。
MySQLは(初期においては)機能が限られ色々な事はできないものの、比較的軽快に動作して取扱いしやすいデータベースとして広く使われるようになります。結果、世界で一番使われているデータベースになります。例えば、ウェブサイトの多くではMySQLが使われているというくらい、普及しています。
ところが、MySQLを持っているSunがOracleに買収されてしまい、MySQLはあろうことか有償のデータベースで世界一のOracleの傘下に入ることになってしまいます。余りにわかりやすい状況に、当然の疑念が生じました。Oracleは自分の商売を邪魔しているMySQLをつぶすつもりじゃないのかと。
しかしOracleは、MySQLはちゃんと続けますと表明し、買収後もちゃんと開発は続いていますしリリースも続きますよとアピールをします。そしてともかくも、実際に活動は続いていました。このあたりは、活動自体が止まってしまったOpenOfficeとは違う点でした。
今回の事件
引用したのは、OracleがMySQLへの嫌がらせをとうとう始めたぞ、という記事です。
Oracleは最新リリースのバグ修正に対応するテストケースを公開せず、変更履歴を削除してしまって非公開にしました。それぞれ、具体的にどういうことなのか説明します。
バグ修正とはつまり、MySQLにあったバグを修正したということです。
ソフトウェア開発ではプログラムの本体以外に、プログラムの動作が正しいかをチェックするプログラム(コード)を書きます。つまり、プログラム本体と、そのプログラムが正しく動作しているか確認するためのプログラム(テストコード)がセットで開発されます。
回りくどく思えるかもしれませんが、そういう仕組みにすることで、テストコードを実行することにより、プログラムに間違いがないかチェックすることが出来るようになっています。そのようにしておけば、プログラムの書き直しを安心してできるようになるからです。記事にはこうあります。
長年にわたり新機能および回帰テスト向けにテストケースが作られ、バグ修正が完全であることを保証していた。
今回問題になっているのは、Oracleは書き換え後のプログラム(ソースコード)は公開しましたが、その書き換え作業に対応して存在するはずのテストコードを公開しなかったという事件です。結果、以下のような問題が生じました。
このことは、問題が実際に修正されたことの確認ができないデベロッパーに、さまざまな問題を生じさせた。
つまり、最新のリリースでは一般公開されているチェック機能が不十分になってしまったのです。結果、なんでそんなことをするんだという文句が出ているというのがまず一つ目の怒りの声です。
テストコードがなければソースコードを自分で書き換える(たとえば派生製品を作ろうと思ったときに)際にチェック機能無しで書き換えることになり安全に書き換えができなくなります。オープンソースとは本来、ソースコードの所有権を「みんなのもの」にするということですが、これではOracle以外では利用に支障が生じることになります。つまり、Oracleの持ち物のようになってしまうわけです。
テストコードが存在しないまま開発がされていることなど考えられないので、Oracleは自分自身専用のテストコードを持っているが、しかし公開しなかったと理解される状況です。
二つ目は、「改定履歴を削除した」というもので、これは読んでそのままのとおり、プログラム(ソースコード)のどの部分を、誰がいつ、どのような目的で修正したかを説明する情報でした。
記事によると、Oracleは改定履歴を削除(非公開)にしてしまったようです。削除されると、今回の新しいリリースでどの部分がどのように書き換わったか解らなくなってしまいます。よって、以下のような問題が生じました。
デベロッパーは何が修正され何が修正されていないかを想像し続けなければいけなくなった。
むろん、文字列レベルで前回のリリースからのデータ的な差分を取ることはできます。ですから、どこが文字レベルで書き換わったかは解ります。しかし、何を目的としてなぜ書き換えられたが解らなくなってしまったというのが二つ目の問題です。
このような事がされてしまうと、ソースコードは公開されていても、実質的にブラックボックス化してしまいます。
他のオープンソースデータベース
記事では、
MariaDBへの投稿によると、
とあります。MariaDBは、MySQLのオリジナルの作者がMySQLの公開されているソースコードを元に社外で新たに始めたプロジェクトです。ソースコードは「みんなのもの」ですが、「MySQL」の名前はみんなのものではありませんから、ソースコードを持ってきて新しい名前を付けて再スタートしたのが上記プロジェクトです。
そういう経緯もあって、MariaDB側からMySQLへの指摘がなされているわけです。記事では(内容的にちょっと煽りの入ってる記事ですが)
「Oracleなんて忘れよう。今まさに次へ進むべき時だ」
とあります。
なお、オープンソースのデータベースソフトウェアは他にもあります。以下、有名なものを二つ紹介しましょう。
MySQL以外でもっとも有名なものは「PostgreSQL」があります。これは企業に所有されない純粋なオープンソースソフトウェアです。
PostgreSQLはMySQLに比べて高機能だったものの、以前はいろいろ取り扱いが難しかったこともあり二番手に甘んじています。しかし、MySQLに疑念が生じてからは、PostgreSQLがライセンス上MySQLのようなことにはならないデータベースとして再認識されています。
またオープンソースではなく、所有権放棄されたソフトウェア(パブリックドメイン)ですが、無料で使える(簡易な)データベースとしてSQLiteというものがあります。
パワーのいる用途では使えないソフトウェアなのですが、簡易用途では十分な性能が出るようになったため、ちょっとした用途(かつてのMySQLのポジション)ではSQLiteが使われるようになっています。
補足
なお、念のために書いておくと、ソフトウェア開発は人間が時間をかけて行う必要があります。趣味で行える開発作業は限られていますし、趣味では大事な業務を預けるような安定的な開発も難しいことがあります。ですから、私は有償のソフトウェアを売っているOracleを無償ではないという理由で非難する意図はありません。
この辺りはとても難しいところです。
オープンソースと聞くと、美しいボランティアの世界と聞こえるかもしれませんが、実際には企業による支援(色々な思惑があっての)によって成立していることが良くあります。
例えばLinux。純粋なボランティア活動によってLinuxが開発されていると思っていませんか?実際は違うのです。Linuxは例えばIBMによる支援によって大きく進化することによって、趣味のOSから業務でも使える信頼できるOSへと進化してゆきました。なお、IBMが支援した目的も、Linuxを業務で使いたかったからでしょう。
だから、無料=美しいみたいなことは、私は言いたくはありません。また、いかなることがあるにせよ、Oracleは合法的にMySQLをお金を出して買ったのも事実で、何かが禁止されているわけではありませんし、Oracleは慈善事業ではないのも事実です。
ただMySQLの利用者からすると、記事の内容が本当なら悲しいことが起こり始めたかもしれないのも事実です。
また、ちょっとこの事件は解せないところもあります。MySQLをたとえ潰してもOracleがどんどん売れるわけではないことはOracleも解っているはずだからです。本当の意図はもっと複雑なのではないかと思ったりもする次第です(MySQL潰しではなくて、MySQLに関連する他の何かを困らせるために行われている、とか)。
MariaDBのような脱出組の再建活動もありますし、先に書いた通りPostgreSQLが盤石な代替として存在します。簡易用途ならSqLiteもあります。
例えば、ウェブ開発でこの上なく有名なRubyOnRailsは、デフォルトのデータベースがMySQLからSQLiteに(かなり以前に)変更されていますし、他では、PostgreSQL一押しになっていたりします。つまり、MySQLがダメになったからといって、Oracleを買わなきゃという感じではないのですね。
つまり、以前から「これは不安だ」と思ってるところが多かったので、驚いたというよりもとうとう来たかという感想が多いでしょうね。
また、今回の件はそもそも意図的なことではないかもしれません(解ってない人が解ってない判断をして意味不明な結果になってるとか)。
以上、慌てて書いた記事なので読みにくいと思いますがお許しください。
| 固定リンク
この記事へのコメントは終了しました。
コメント
エクセル、ワードしかつかっていない情報弱者の感想をかかせていただきます。
オープンソースのプログラムが強くなる条件は、どれだけ多くの人につかってもらえるかにかかっているのではないでしょうか?
意識せずにプラットフォームとなっている状態が最高なのだと思います。
利益を得るためにオープンであることを囲い込んでしまうと、対象のプログラム自体の価値を損ねてしまいます。
宣伝とするか、店舗とするか、駅とするか方法はいろいろあると思いますが、プラットフォームであることを弱めないやり方をしたほうがよかった(まだそうはなっていない?)のではないでしょうか。
投稿: モコム | 2012/08/29 12:59