ハードからくる制約と組織からくる制約
ソフトを作るのに、ハードからくる制約と組織からくる制約がある。ハードの制約は、小さなマシンで問題になる。例えば、アドレス帳やらスケジュールなどのPDAのプログラムなんて実に単純なものだ。適当な簡易言語を使えば、初心者の練習用にちょうどいいくらいだ。しかし、これをあの小さなマシンにのせようとすると、OSやAPIが非標準の見慣れぬものになり、メモリサイズやらCPUのスピードやらを気にして作ることになるので、素人には手が出せなくなる。
一方、でかいシステムも単純なものだ。銀行のATMなんて本質的には「残高=残高−引出し額」という計算をしているだけだ。しかし、こちらは絶対的な品質保証をしなければならないので、どうしても組織として開発することになる。プログラマがコ−ドを書くのは年に1度か2度で、後の時間は仕様書を書いたりハンコおしたり会議ばかりしていることになる。
そういう意味で、最も扱いやすいのはパソコンから部門サ−バの領域で、linux*はこのレンジを中心に発展してきた。他のプロジェクトもタ−ゲットはこの範囲になるものが多い。しかし、最近OpenWebというプロジェクトが立ち上がったが、これは明らかにそのはるか上のクラスを相手にしている。 EJBという技術は、プログラマが当てにならないことを前提にしていて、多少のバグがあってもシステムがこけないことを第一の目標としているものだ。プログラマをたくさん集めると、必ずといってよいほど、やる気のないものや明らかに適性がないものが混じってしまう。多少はそういうプログラマがいても、なんとかシステムを開発するのがメインフレ−ムの発想で、EJBはこの延長線上にある。少数精鋭で勝負するUNIXやオブジェクト指向とは発想が違うのだ。
これと逆に小さいほうにはみだしたMorpy Oneという事例もある。ここへ来て、急速にオ−プンソ−スの裾野が広がっているような気がする。