« 2008年03月21日 | メイン | 2008年03月23日 »

2008年03月22日

普通のやつらの上を行け (Paul Graham)

先日、Paul Graham氏の「もうひとつの未来への道」をご紹介しましたが、続いて、「普通のやつらの上を行け」をご紹介します。

原文:Beating the Averages
http://practical-scheme.net/trans/beating-the-averages-j.html

これは要するにプログラム言語Lispが如何に優れているかという話ですが、概略を紹介します。

1.ソフトウェア・ビジネスは競争がとりわけ激しい。ある会社が他の会社よりも良いソフトウェアを早く書いたら、他の会社がいずれ潰れる。(他の条件が同じとして)。だから間違った技術を選択したら致命傷になる。
2.C++やPerlを大勢の人が知っていることは、その言語を選択する理由にならない。
3.デスクトップのソフトウエアを書くときは、OSがサポートする言語を選択するのが良い。しかし、Webベースのアプリケーションならどんな言語でも選択できる。
4.ViawebはLisp言語を選択したが、Lispはソフトウェアを素早く書くのに向いている。競争相手は20~30社に及んだが、CGIスクリプトを使っていた。Viawebは機能的には競争相手の遥か先へ行っていたし、競争相手が新しい機能を付けても1日2日で追いつくことができた。これはLispで誰よりも早くソフトウェアを開発できたからだ。

5.Lispは今ある言語の中で、最もパワフルだ。では、Lispがそんなに良いなら、なぜ、誰も使わないのか?
6.プログラム言語はその力において差がある。全ての言語は、機械語から最も力のある言語までの連続したスペクトル線の上にある。一般的にはアプリケーションを書くなら手に入る最も力の強い言語を使うべきだ。
7.ある年齢に達すると、プログラマは自分から言語を変えることはほとんどなくなる。何を使っていてもこれで十分だと思ってしまう。スペクトル線で自分が使っている言語位置の下を見下すことができても、上を理解できないからだ。
8.Lispがもっとも上位に来る理由は、マクロ機能である。Lispのコードはパーサで読むとデータ構造になる。他の言語ではコンパイラが生成する構文木をLispでは直接プログラムとして書く。この構文木を操作するプログラム、いわばプログラムを生成するプログラムがマクロだ。Viawebエディタの20-25%はマクロであり、ライバルのソフトウェアではできないものすごく難しいことをやっていた。これで、ライバルのソフトウェアにはできないことができたのだ。
9.プログラミング言語の変化は遅い。その理由はプログラマがそれを道具として思考するものだから。半分技術だけれども半分は宗教だ。
10.1960年代にLispによって導入されたガベージコレクションは、近年ようやく良い技術として認められるようになった。しかし、1960年代にLispが導入したマクロはまだ未知の世界だ。
---ここまで---

著者がLispのハッカーであることを割り引くにしても、一考を要する文章ではありますね。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック