Island Life

2005/01/10

言語のコアが単純であることの効用

「良いデザインは再デザインである」(Paul Graham)---これは言語そのものの デザインではなく、処理系のデザインにも言える。とりあえず動くバージョンを 作って、それを実際のアプリケーションで使ってみて、そこでの観察をもとに 処理系を改善してゆく。このサイクルを多く回せば回すほど、実装は良いものに なってゆくはずだ。また、色々なアイディアを思い付く端から実装してみて 試してみる。それが簡単であればあるほど、その中から実際に使えるアイディアを 拾いあげやすくなる。

だとすれば、処理系のリライトがやりやすい方が、良い実装へと収束しやすいだろう。 言語が、少数のコア要素と、その上に構築される要素からなっていれば、 言語のフルスペックを保ったまま、コア部分やその上の各コンポーネントを独立に 差し替えて行くことができる。これは処理系をごっそり書き直すのに比べて ずっと敷居が低い。

(コア要素の上に構築する要素は必ずしも実行時のレイヤリング、つまり ライブラリを言語のコアオペレータで書くこと、を意味しない。 構文糖衣をメタプログラミングで追加するような場合、レイヤリングは コンパイル時のもので、実行時性能には影響を及ぼさない)

もっとも最初から全てを考慮したインタフェースをモジュール間に作るのは 難しい。やってみないとわからないことがたくさんあるからだ。 時には、インタフェースを保つために変更する側のモジュールに醜いスタブを 噛ます必要も出てくる。ただ、対応するモジュールも十分に速く改善できて、 結果としてスタブがすぐに外せるのなら、大した問題ではないだろう。

最適化はモジュラリティとぶつかる場合がある。モジュラリティは一般化を指向するのに、 最適化は特殊化を指向するからだ。せっかくきれいにレイヤを切ってモジュール化 してあっても、最適化は複数のレイヤに変更を強いる場合が多い。 これについては、最適化をオプショナルにしておくこと (何かのフラグで切ることができるようにしとく)くらいしか思いつかんなあ。

Tag: Programming

2005/01/08

TPOSSCON 2005. へー、Bruce Perensがハワイに来るんだ。 ちょっとのぞいてみようかな。

Tag: Conference

2004/12/28

From CNN:

Egeland, the UN's undersecretary-general for humanitarian affairs and emergency relief, has called for a major international response -- and went so far as to call the U.S. government and others "stingy" on foreign aid in general.

"If, actually, the foreign assistance of many countries now is 0.1 or 0.2 percent of the gross national income, I think that is stingy, really," he said. "I don't think that is very generous.

"We need rich countries, rich individuals, even only those of us who are reasonably affluent to respond generously," Egeland said.

"Here we are facing people who have lost everything. Hundreds of thousands of people have lost everything. Millions of people are now living in the worst possible hazards of having polluted drinking water, no sanitation, no health services," he said, adding that the conditions are sure to lead to disease.

American Red Cross ( http://www.redcross.org/ ) は現時点で スマトラ沖震災にspecificなドネーションをするところが見当たらない (Disaster Relief Fund が使われるのだろうけど) が、 国際赤十字・赤新月社連盟 ( http://www.ifrc.org/ ) からだと直接使途を 指定できる。 UNICEF ( http://www.unicef.org/ ) だと寄付画面に各国語版がある。

戦争に金を突っ込んで災害支援にはしぶい連邦政府など当てにしてられっか。

Tag: 生活

2004/12/10

Rubyも独自バッファリングか。 Gaucheが独自バッファリングを導入した経緯はWiLiKi:Gauche:BufferedIOに。 あと、自前でバッファのfill/flushハンドラが書けるのは 予想以上に便利であることが判明した。

exit時にフラッシュする動作を他の処理系がどう実装してるのかは興味あるな。

Tag: Gauche

2004/12/05

人気の言語を作るには

成功する言語の秘密がついに解明された!

Tag: Programming

More entries ...