昨年、Officeの次期製品のスペックが発表された際も同様のコメントをしていたのですが、部品と製品は明確に区別すべきです。
CNETの記事のMySQL、データベース界の「ホンダシビック」となるかについて。
「自社技術の先進性を売りものにするソフトウェアメーカーが多いなか、MySQLはデータベース界の「ホンダシビック」であることに満足している。MySQLは、ウェブサイトへデータを渡すといった簡単なタスク処理のための考えられた「コモディティ」製品で、最先端の機能は備わっていない。」
このフレーズにそんな深い意味があるわけではないというのは理解していますが、DBエンジンを車に例えるのは抵抗があります(「ホンダシビック」ではなく「シビックのCVCC」なら納得しますが)。DBエンジンは、名前の通りエンジンであって、車ではありません。当たり前の話ですが、エンジンをいくら進化させたところで、絶対にエンジンが車になることもありません。
ところが、ソフトウェアの世界ではこのエンジンという「部品」と、車という「製品」が混同される場合がよくあります。
パーツ屋等で販売され市場に流通しているハードウェアの「部品」も、もちろん製品として扱われますが、あくまで「部品」としての製品です。これに対して例えばOracle等のマスメディアの扱い方を見れば、「製品」そのものです。
何が問題なのか、と反論されそうですが、非常に問題です。
主従が逆転していることが大きな問題なのです。この場合の主とはアプリケーションです。従がDBエンジンになります。
これが逆転しているとはどういうことでしょうか。
製品としての機能と部品としての機能は、同じ機能でも、機能の次元が違います。別の言い方をすると、主であるアプリケーションの機能を実現するために、従であるDBエンジンの機能があるのであって、DBエンジンの機能の延長線上にアプリケーションの機能があるのではありません。
OLAPなどのSQLという「言語」のインターフェイスの機能と、本来のDBエンジンとしてのデータベースの管理の機能は明確に区別するべきものです。言語のインターフェイスとしての機能を進化させていった先にアプリケーションがあると考えるのは、単にDBエンジンメーカーの戦略にはまっているだけです。
冒頭のOfficeの次期製品名が「Microsoft Office System」というのも、全く同じ構造です。OfficeがSystemを産み出すなどと言うのは幻想に過ぎません。
こうまで言い切ると、もう少し「製品発」(アプリケーションオリエンティッド)の技術とは何か説明しないと片手落ちですが、ここら辺はまた明日。 KAI