iriya_ufo’s blog

Curiosity was simply the first derivative of knowledge.

History of T 第6,7,8,9パラグラフ

History of T の翻訳の続き

第6パラグラフ
バークレー大学は Vax を主に作っている場所だった。
Vax 用のバークレーUNIXを作るためにARPAと契約を結んだんだ。
(Bill Joy の努力によって後に SUN として分離新設した。)
そしてその努力の一部はFatemanの指導のもと、Vax用のfranz lispとして注がれた。
FranzはInterlispよりもMaclispの特色を持ってデザインされており、
またFatemanの好みもあって、Macsymaの移植を十分に考慮されたものであった。
Franzはまた、ハーバード内ですこしばかり知られていたlispの影響をうけていた。


第7パラグラフ
MITはNILプロジェクトを去る、ということをVaxに返答した。
NILとは"New Implementation of Lisp."の略語のことである。
JonathanはYaleから離れて以来このプロジェクトの一員であった。
それには本当に大変な努力があったんだ。でも結局、早すぎる最適化のせいで
欠陥があるものになってしまった。それはとてつもなく大きく、ときに攻撃的で
そしてとても複雑なものだった。
例を示してみよう。それらは一般的なコンパイラーを書く前に
bignum パッケージ用の注意深く手作業でチューニングされたアセンブリコードを書くことを
みんなに要求したんだ。
だからNILプロジェクトは一部のトップの人間達によって遂行されていた。
(たしか、そうJonl White と George Carretteが中心だった)
でもそれが世に出ることはなかった。
プロジェクトの計画よりも何年か後に終わりを迎え、その時すでに遅かった。
(これは私自身に起こった苦い経験だ。私は当時の流行を追って早すぎる最適化をだめなものだと
思っていた。でも実はそれの本当に意味するところを理解せずに行動していたんだ。
今でも心の傷として残っているから、今はその意味するところがよく分かるよ)
失敗を予期させるような、このような類のプロジェクトは初期段階のディスカッションの中で
いつも目に見えて分かっている。(といってももう後の祭なんだけどね)
キーとなる警告サインは常にこんな感じで形式ばったものだよね。
"お粗末なものは捨ててしまって、新しくいこう、正しいことをしよう"ってね。
(でもこれは不幸にも役に立たない見地だよ。だってそんな戦略ってのは高い確率でなぜか
進んでしまうんだからさ。ただリスクがあるってことさ)


第8パラグラフ
JonathanはNILで1年間ほど働いて4年生になったころには雇われていたCSのYaleに戻ってきた。
新しいLispを実装するために…。
彼は過激な意見を言った。Schemeのネイティブコードの最適化をする予定だ、と。
彼はそれを T と名付けた。この名前は実にすばらしいものだ。
もちろん短く簡潔なものであるし、そしてそれはYaleのCS文化的なものにも共通する。
Yaleではプログラムの変遷ってのは単純な文字、例えばe, c, z, uとか、
から発展していった、っていう歴史があるからね。
(それらは局所的に成長した洗練されたスクリーンエディターのことだよ。emacsじゃないけどね)
最後に、もし君がlispハッカーだったらNILlispの失敗ってことは分かるよね?
そして T は正統派であり確かな不変性をもっている。そう"T is not NIL"


第9パラグラフ
ここでもう一度言わせてほしい。いったいどんな劇的な決定によってSchemeを作ったのだろうか。
この時点で作られていたSchemeのただ1つの実装は Steele が修士コースで書いた研究用の
プロトタイプだけだった。
そのころプロダクションのためのすべてのLispは動的スコープを持っていた。
Rabbitの論文を注意を払わずに読まなかった人なんていなくて、それを読んだやつらは
静的スコープがいつか羽ばたくと信じたんだ。そしてほんの数人なんだけど信念を持たずにそれを
読んだ人達でさえ、これはいつかプロダクションでも動くと信じたんだよ。
理論と実践の違いっていうのは、実践するということの方が理論よりも大切だってことだ。


ミニあとがき
そろそろ内容が面白くなってきたころですね。Tのお話もすこしでてきたことですし。
しかし、僕にとっての問題は英語ではなくて専門知識に関することです。
翻訳を行っていく過程でいろんなことがわかって嬉しい限りです。
正しさは保証できてないですけどね。:-P