top / index / prev / next / target / source

2005-04-26 diary: 「低機能」・「自由度の低さ」に価値があるというパラダイムシフト

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

「低機能」・「自由度の低さ」に価値があるというパラダイムシフト

blancoDb EE概要の説明文を書きました。関連して R/Oマッピングツール定義を記載しました。

「低機能」・「自由度の低さ」に価値があるというパラダイムシフト

blancoDb Enterprise Edition概要の説明文を更新しました。併せて R/Oマッピングツール定義について改めて記載しました。これをスナップショットとして日記の方に転載しておきます。基本的に、更新はblancoDbホームページ側に対してのみ行っていきます。

比較して特徴を書いてみると、「低機能」・「自由度の低さ」などという刺激的な用語が並びました。未来からこの日記を振り返ったら刺激は感じないかも知れませんね。でも、この日記を書いている時点での一般通念としては、ソフトウェアは高機能で自由度が高いもののほうが良いとされているのです。「低機能」・「自由度の低さ」には価値があるというパラダイムシフトをここで考えています。このパラダイムシフトについては、ある程度解説を加えないと 一般の方々には理解いただけないかも知れませんね。

私は 次世代オープンソース・ミドルウェアは 「低機能」・「自由度の低さ」・「カスタマイズ性」という特徴が重要な仕様のひとつとなっていくものと考えています。ミドルウェアは高水準なものと低水準なものに二極化が進んでいくことでしょう。これは EclipseのGUI基盤である SWTとJFaceから 改めて概念の着想を得ました。(blancoDbそのものは、前身のソフトも含めると前世紀から一貫して同じ指向を持っています) SWTは極めて低機能で自由度が低く、クラスとしてラッピングも薄っぺらいものです。反して JFaceは高機能で自由度が高く、クラスとして一般的なGUI部品としてのラッピングを行っています。Eclipseは SWTとJFaceという二極化されたオープンソース・ミドルウェアによって初めて実現されています。ここで大事なことは、低水準APIというものに非常に価値があるということです。(高水準APIの価値は敢えて説明しなくてもわかってもらえることが現時点では多いです) 低水準APIを薄っぺらくラッピングして低機能であり続け、自由度を低く設定し (例えば、SWTは継承が許されません)、とても高性能に動作することが出来ます。これがJFaceだけでモノリシックに実装されていたら、Eclipseはあのように高速には動作しなかったことでしょう。

リレーショナルデータベースについても、SWTのような低水準APIが必要なのです。かといって 単純にJDBC APIだけでは不足する面もあるものと考えます。一方で SQL文は Java言語のようなノイマン型プログラミング言語とはかなり異質な、集合代数を扱う言語です。SQL文とJDBC APIとJavaソースコードとを適切に結びつけるための低水準APIが、今のリレーショナルデータベースプログラミングに不足しているものの一つであると考えているのです。blancoDbはそういう低水準APIという仕様を満たしているように考えています。

関連する日記

blancoDb Enterprise Edition (EE) 概要

blancoDb Enterprise Edition (以降 blancoDb)は Java言語/JDBC用の R/Oマッピングツール実装の一つです。

理念・思想

blancoDbは下記のような理念および思想を特徴としています。

特徴

R/Oマッピングツール定義

下記の仕様を満たしているものが R/Oマッピングツールの仕様を満たしているものと定義します。

意外なことですが、世の O/Rマッピングツールの多くは 上記とは逆の指向性を持っています。ツールとしては高機能である反面、リレーショナルデータベースの機能や性能を大きく損なっているというものが多く存在します。R/OマッピングはリレーショナルデータベースおよびSQLを中心としたアプローチをとります。

blancoDbはオープンソース/フリーソフトウェアです


この日記について