Rhino on Railsの感想文

http://www.aoky.net/articles/steve_yegge/rhino-on-rails.htm

Googleの話ということで興味深い。

実のところ、Googleが製品に使用する言語の数を限定しているのはとても賢明なことだ。ここで働き始めて(率直に言って、どうしてみんな私に履歴書を送ってこないのかと思う)何週間かは苦痛に思うかもしれないし、私みたいなどじな間抜けには、それを理解するのにもう少し時間がかかる。しかしプログラミング言語には誰でも知っているコアの標準的な機能があり、わかりにくいセマンティックスの長いしっぽがそれに続いていて理解を難しくしている。PerlやPythonやRubyのような実際の仕様がない動的言語では特にそうだ。Googleは実際的である限りにおいて慎重に言語の数を抑えており、選択された言語についてはセマンティックスのエキスパートの大きな集団を作れるようにしている。

これはまた言語間のインターオペラビリティのために必要となるコンポーネントが指数的爆発を起こすのを抑えることにもなる。私が以前にいた会社ではこれが巨大な税としてのしかかっていたが、Googleは概ねそれを最小化している。

言語の数を制限するというアプローチではなく、
どういった言語が来ても対応できるようにする、というアプローチをなぜとらないのか?
(開発者の言語理解はのぞく)
バイナリレベルであれ、コードレベルであれ、アプローチは存在する。
Googleの人に詳しい話を聞いてみたい。


ちなみに私が不慣れな言語を使うきっかけで一番大きかったものは、
何かを実装するために必要となる機能がライブラリとして用意されている/簡単に利用可能であるかどうかだった。
実際、HTTP/HTTPS、XMLを処理するためのコードはどうしても書く気になれなかったし、
書いてもものすごく中途半端な実装にする自信があった。
これらの仕様は途轍もなく大きいと感じていたからだ。
中途半端なコードはよくない。

他にも、コード補完をしてくれてすばらしいヴィジュアルデザイナを搭載したIDEの存在や、
コンパイル速度などがあるがこれらは比較的なんとかなった。