2009年2月18日水曜日

良いことblog (18/28)

Web API

趣味でコンピュータプログラミングを始めてから20数年が経つのですが、その大半は個人の世界でしかモノをつくれない時代でした。世の中には無数の趣味のプログラマがいて、無数の職業プログラマもいるのに、お互いに助け合うことが非常にやりにくい状況でした。

これは、孤島に住んでいる人がガーデニングをしようとするのに似ている気がします。イメージはイングリッシュガーデンなのに、自分の住んでいる所には英国風な植物もなければ鉄もないので、まずは交配しながら英国風植物をつくりつつ、土を掘って鉄を探り当てる・・みたいな。。とにかく、全て自分で作り上げる必要がありました。

Internetが世に広まると、孤島が諸島となり、例えば私がWebの掲示板システムをつくりたいと思った場合、既に誰かが作った掲示板プログラムの一部を拝借することも容易になりました。
これは、当時Webで使われていた言語がPerlという言語ばかりだったということも大きな要因です。
もし、私がLISPという言語でプログラムをしている時に、別のプログラマがC言語でプログラムをつくっていたとしても、部品の貸し借りは非常に難しいからです。

そのうち、Webサービスという仕組みが発明されました。
Webサービスは、人間世界でいうエスペラント語のようなもので、どんな言語でつくられているシステムであっても、共通の言語でインタフェースを用意することができるようになり、それにより、システムや部品の貸し借りが可能になりました。

ただ、人間世界でエスペラント語が流行らなかったように、Webサービスというシステム間の共通言語(インタフェース)も、プロの世界や一部のアマチュアプログラマの間でしか広まりませんでした。

そこに出てきたのが、人間世界でいうところの「英語」ともいえるようなWeb APIです。
Webサービスよりも更に簡単に他者が作った成果物を利用することができるようになりました。
ただ、共通言語として世界中で通用している英語のように、Web APIには方言が許されるという弊害があります。つまり、プログラマはつかいたい部品が持つ方言やカルチャーを理解しないといけない・・・というあまり美しくない側面も持つのですが。
でも、プログラマは人間なので、それくらい緩いルールにしておく方が結果的に使いやすいのかもしれません。