


商品スタッフII
マイクロソフト社のAccessというソフトがあります。これは、データベースアプリケーションを非常に簡単に作れるというソフトとして有名です。
実際、非常に簡単です。画面もささっとできますし、データベーステーブルや外部キーの定義などもビジュアルに表示されるので楽に作ることができます。おそらく、これをかじったことのある方であれば、「世のプログラマはなんて仕事の遅い人達なんだろう。こんなに簡単にできることを長時間かけて」などと思うのではないでしょうか。たしかにその通りのこともあります。
しかし、そのほとんどは間違っています。

Accessで簡単にできることは、氷山の一角にすぎません。彼は、右のような氷山を見て、左のような氷山も簡単に作れると思いこんでるだけなのです。彼に見える部分はもちろん、海の上の部分だけです。少なくとも、右側全体だけです。左の氷山の下側にどれほど複雑で巨大なものが潜んでいるのかは知る由もありません。
これを説明するのに、とてもわかりやすい例としてGoogleの検索エンジンがあります。Google検索では、ただ一つの入力エリアに好きな語句を入力すれば、ただちに世界中のページからその語句あるいはその語句に関連しそうなページを探し出してきてくれます。
これは簡単でしょうか?まさか!いまや、Googleに世界が支配されてしまうのではないかと、マイクロソフトは当然ですが、ヨーロッパや日本でも国家レベルで同様の検索エンジンを開発しようと躍起になっているほどです。Googleはいまやいろんなサービスを提供してはいますが、基本はあの簡単なインターフェースにあります。
Googleは誰でも知っている有名企業ですし、その検索エンジンについては度々報道もされていますから、「かなり難しいのだろう」という感触をつかむことはできるでしょう。
しかし、そうでない場合に「いかに難しいか」を理解してもらうのは、これまたとても難しいことです。ソフトウェアというものが非常に特殊な性質を持っている点です。
もう一つAccess的なものの弊害としてあげられるのが、「シングルクライアントなら簡単にできる」という点です。一人で使うデータベースアプリと複数で同時に使えるそれとでは天と地ほどの差があるということは、強調しすぎることはありません。まったくの別物と言っても良いくらいです。
Accessを使って個人的なシングルクライアントのアプリケーションを作れたとしても、それをそのままマルチクライアントにはできません。まして個人の趣味的なシステムではなく、業務用のものであればなおさら難しいのです。
実際のところ、複数のクライアント(作業者)が気ままに一つのデータを操作することができ、それを矛盾の無いようにし(この点はデータベースシステムが勝手にやってくれる部分もありますが)、ある一人の作業者の画面表示内容に矛盾が生じないようにするのは並大抵のことではありません。業務用のソフトですから、突然止まったり金額が合わなくなったりしてはいけないことはもちろんです。
もう一つAccessで不満に感じることは、学習曲線がいきなり高くなるという点です。AccessではAccessの設計者が想定した範囲内のことであればかなり簡単にソフトウェアを構築できますが、それを一歩でもはみ出そうとすると、いきなり難しくなるのです。
そもそも「現代の実用的なデータベースアプリは簡単に作れるようなものではない」というのがその理由です。これは(Accessのような)ツール以前の問題、つまりデータベースアプリケーションというものが持つ本質的な問題であって、使うツールには関係ありません。Accessで「簡単に」扱えることはその一部のごく初歩的なものでしかないのです。
つまり、ちょっと勉強すれば簡単にデータベースアプリが作成できる便利なソフトである一方で、「簡単なはずじゃないのか」と誤解を生じさせるソフトがAccessというソフトなのです。
一つ、私の友人の話ですが、彼は以前学校関係のソフトを作っていました。ある学校から頼まれた仕事なのですが、そこの先生が「Accessでここまで作ったので、続きを作ってくれ」と言うものがあったそうです。喩えが悪くて申し訳無いのですが、素人が作った掘っ立て小屋を「ビルにしてくれ」と頼むようなものです。
小屋とビルならば、誰の目にも「いくらなんでもムチャだ」ということはわかるのですが、ソフトウェアではそれが極めてわかりにくい。この点を明確にできる発明があれば、ノーベル賞をあげるべきですね。