戻る コラム一覧 山写真紀行

★★ システム開発環境のオープン化 ★★ 2008年11月01日

 システム開発関係で「オープン化」という言葉がよく使われる。筆者も何となく感覚的にこの言葉を受け入れてきた。しかし、ふと、「オープン化って一体どうゆうことなんだろう?」と疑問を持った途端、何がなんだかさっぱり判らなくなってしまった。英語の意味から「一般公開している」ということになるが、何を公開しているのだろうかということになる。「オープン」が「フリー」と混同している節もある。これらはすべて「ビジネス」としてやっていることなので、「オープン」とか「フリー」にして果たして儲かるのかという疑問も沸いてくる。何で日本で英語のまま使うのかというところで「疑惑」まで生じる。大体英語のまま使う場合には判りにくくしてごまかそうとする魂胆があるからである。調べてみると「オープン」というのは「オープンソース」のことである。と言って「じゃあオープンソースって何のこと?」ということになってしまう。「ソース」というのはプログラム言語の人間が書く段階の成果物であり、これを書き換えることにより出来上がるプログラムを改良できるし、解析もできるので、このプログラムを利用し、さらに発展させたプログラムや追加機能を開発することもできるのである。「フリー」というのも紛らわしい言葉である。直訳すれば「自由」であるが、何が自由なのかということになる。「無償」という意味もある。しかし、「フリーソフト」だから本当に「自由」に扱って良いのかというと、そうでもなく、商用利用する場合には料金を払わなければならないという条件の付いたものもある。「オープンソースのソフト」と「フリーソフト」とは全く異なると理解すべきなのである。一般的に「オープンソース」のソフトは条件付ではあるが「無償」配布されているものが多いため、「フリーソフト」と混同されてしまっているのである。「フリーソフト」でソースをオープンにしていないものもたくさん存在する。

 では、何のために「オープン化」をするのだろうか。その前に、「オープン化」の前があるはずである。前が「クローズ」された状態であったので「オープン化」が発生したと考えるのが当然である。コンピュータが世に登場した元々の形態は「汎用機」と呼ばれるものであり、これはハードウエアを主体にしたものであった。これを動かすOSやソフトウエアはその機種専用のものであったのである。「汎用機」の次に登場した「オフコン」と呼ばれるコンピュータも同様のものであった。コンピュータ言語として、コボルとかフォートランと呼ばれる言語はあったが、完全に共通の言語ではなく、機種によりプログラムの書き方は異なったものである。従って機種変更する場合にはプログラムを新機種に合わせて書き換える必要もあったのである。勿論これらのプログラムは使用する機械でコンパイルしないことには全く使えないというものであった。正にこれが「クローズ」なシステムであったのだ。クローズにすることにより、コンピュータメーカーはユーザー企業の囲い込みを行い、他メーカーへの機種変更が極めて困難な状態を維持し、コンピュータを「高価な事務機」にして利益を享受していたのである。

 こんなクローズな状態では競争は成り立たない。世にパソコンが登場し、パソコンがコンピュータとしてのかなりの仕事をこなせるようになった時、UNIXというオープンソースのOSが登場した。オープンソースであるから、解析してそれに合わせたハードウエアも造れる。UNIXをハードウエアに合わせて改良することもできる、となるとどこのメーカーのコンピュータでも使えるようになったのである。囲い込みができなくなったので、ハードウエアの価格はどんどん安くなった。安くなれば台数を増やせる。ということで、「クライアント・サーバー」という方式が一気に広まったのである。このときにクライアントにあたるパソコン側もMS-DOSがデファクトスタンダードになり、価格低下を伴いながらどんどん普及していったのである。この段階はハードウエアの囲い込みからオープン化されただけであったのである。

 その後もオープン化はどんどん進み、どんなプラットフォーム(ハードウエア+OS)でも使えるというJAVAというプログラム言語が登場した。JAVAでプログラムを作れば、どんなコンピュータでも改めてコンパイルすることなく動くようになったのだ。そうなれば、ハードウエアは何を使ってもよいし、OSも何を使ってもよいということになった。そこに、Linuxというオープンで且つフリーなOSが登場したのである。そしてJAVAなどでは統合開発環境なるものまで無償で提供されるようになった。JAVAと同じように使えるSCRIPT言語も次々開発され、これらも皆フリーで無償提供されるようになった。かつてはプログラム開発環境を作るには数十から数百万円もかけたものであるが、これがハードウエアとしてのパソコン1台だけ買えば後は総て無償で揃えられるようになったのである。

 このような開発環境で開発されるプログラムは殆どがWEBシステムと呼ばれるタイプで、サーバーがプログラムやデータを提供し、端末パソコンがブラウザーを使って使用するものである。これは社内LANだけでも使えるし、インターネットへ接続すれば、広く世界中どこからでも使えるものになる。プログラム開発環境構築費はほぼゼロのため、開発技術さえ持っておれば、その人件費だけでシステム開発が可能である。このため、GOOGLEとかYAHOOといった代表的なポータルシステムを持つ企業ではどんどん無償のシステムを提供するようになったのである。地図情報とか、交通機関の乗り換え情報、天気予報、投資情報など役立つシステムが次々提供されるのである。彼らはシステム提供で稼ぐのではなく、システムのユーザーに広告を見せることで稼ぐのである。こうなれば、もはやパソコン用のプログラムを金を払って買う必要が無くなってくる。パソコンのOSにLINUXを導入すれば、ソフトはすべて無償で揃える(パソコンの中に持たなくてもインターネットで使える)ことができるのである。これがまさに究極のシステムと言える。どんなハードウエアでも使えるという意味でオープンであり無償という意味でフリーでもある。ただしプログラムソースは公開されていないので、オープンソースとはいえない。オープンソースであるのは開発環境までである。そんな堅苦しいことは不要で、一般ユーザーがプログラムソースを知る必要は全く無いのである。まあ願わくば、アプリケーションのソースまでオープン化されて、多くのプログラマーが知恵を出し合って、より使いやすいアプリケーションに仕上げていけるようになれば最高である。

 あまり知られていないが、デジタルテレビの多くはオープンソースのLINUXを使っている。知らない間に我々の身近にオープンソースが浸透してきているのだ。OSではLINUX、辞書ではWIKIPEDIA、オフィスツールではWIKIOFFICE(仮称)、写真編集ではWIKIPHTO(仮称)・・・・のような時代が間近のような気がする。

BACK