Island Life

< Oakland | Berkeley >

2010/01/22

書き直し

夕食にBARTに乗ってサンフランシスコに出た。Mission st & 24th のあたり。うわぁ、都会だなあ。夜が明るい (Oaklandに比べて)。

Lisperと話しているとよく、「それ、結局全部書き直したんだよ」みたいな発言が飛び出す。 どうも印象として、他の言語のプロジェクトよりも書き直したって話が若干多いような気が するんだけれど、気のせいかなあ。誰かが最初のプロトタイプを書いて、それを引き継いだ誰かが 結局ほとんど書き直して、さらにその次のバージョンで別の誰かがまた大部分書き直して… みたいに5回も6回もリライトした話とか、あまりCやJavaでは聞かないような。

いくつか可能性

  • 単にサンプルが偏ってるだけ
  • Lisperは語りたがりである
  • Lisperは自分のスタイルにこだわるあまりついつい他人のコードでも直してしまう
  • 密度が高く機能に対して記述がコンパクトなので書き直しやすい
  • 独立性の高いコンポーネントに分割して、各コンポーネントは一人が担当することが多いので、好きなように実装をいじれる
  • 言語が{柔軟|いいかげん}で、旧バージョンのAPIと新バージョンのAPIをしばらく並行してサポートする、みたいなことがやりやすく、よって大胆にコンポーネントを入れ替えることができる
  • 発見的な開発スタイル、つまり書きながら、動かしながら問題を理解してゆく形をとるので、問題への理解が深まるにつれより的確に問題を記述できるようになる

むー、書いてるうちに単なる気のせいのような気もしてきた。 OSSのリポジトリを大規模に調査すれば何か言えるかもしれないけれどなー。

(追記2010/01/22 16:24:12 UTC) もしこの仮説が正しいとしたら、Lispが広まらない理由のひとつが 説明できるかもしれない。問題ごとにそれをもっともうまく記述できるように、 あるいは担当者が自然に記述できるようにリライトしてしまうということは、 問題や人に依存しないコーディングスタンダードを決めることとは相反する。

ソフトウェアを工業製品と考えるなら、属人性や個々の問題への依存性は極力 避けるべきで、Lispは良い言語ではないということになる。 ただし、ソフトウェアは工業製品であるべきかどうかという議論は別にある。

Tag: Lisp

Post a comment

Name: