2006 年 06 月 21 日 : Connectivity
オープンソースという言葉がITの世界で流行っている。
けれども、この先、ソフトウェア産業の発展を望むならば、オープンソース以上に大切になってくるコンセプトというものがありそうな気がする。
それは「コネクティビティ」というごく有り触れた考え方である。
オープンソースは、ネット上にソースコードを公開し、さまざまなプログラマがソースコードをシェアながらソフトを開発してゆくアプローチである。
ひとつ疑問に思うのは、ソースコードをシェアすることが果たして本当に生産的かどうかなのだ。
プログラムというソフトは日本語や英語と比べると、プログラマーによって記述される内容は厳密そのものであるが、その意図を理解しようとするならば少なからず苦痛や努力が伴うものである。
ソースコードを読んでワクワク&ドキドキな体験をする方が稀と言えるかもしれない。
オープンソースのアプローチでは、少なくともソースコードを理解するための時間と労力が非生産的なのではないだろうか。
勿論、自分より才能や能力のある人のソースコードを読むことで自分のプログラミングスキルを伸ばすという有意義な一面もあるけれど、それはオープンソースの主たる目的ではない。
オブジェクト指向のカプセル化、日本語では「情報隠蔽」なる言葉で翻訳される概念こそが重要ではないかと思う。
それはソースコードをオープンにするのではなくて、寧ろクローズなものとし、必要なアプリケーションプログラミングインターフェース(API)のみを公開するというアプローチである。
今現在、"Web 2.0" というキーワードで説明されるインターネット業界は、この方向に動いているような気がする。
インターネット上のデータベースをアクセスするための API を公開し、ネットの人々が自由に使える世界である。
データは何も商品やニュース、個人情報に限らなくとも良いと思う。
プログラムも一種のデータであり、それらの API がひろくネット上に公開され、かつあらゆるプログラム間で自由自在に接続可能となり、そのバリエーションによってアプリケーションがインプリメントされるとすればどうだろうか?
同じ種類のプログラムモジュールを複数の人間でシェアして開発するよりも、その人が世界一才能を発揮できる分野のモジュールを一人で開発し、同じようにして創られた他のモジュールを接続しながら動作する世界の方が躍動感がありそうだと感じるのは僕だけであろうか。
オープンソースの先にあるもの。
それは、プログラムを構成するモジュールが自由自在にネット上にあるモジュールと柔軟に、そして簡単にコネクトできる世界である、と感じる。