それぞれの平衡点

「Matzにっき」より.

しかし、「やめなさい」という人が以下のようなことを言うのは「ズルい」と思う。

言語設計のおもしろさは、「言語の設計は、芸術と科学の組み合せである」というところにある。一方では主観的・直感的な判断が必要になる。例えば、言語を使用する開発者にとって、その言語が易しいものなのか、コーディングしやすいのかといったこと。またもう一方では客観的・厳密な判断も必要だ。例えば、その仕様が言語として妥当か、そのコンパイラを実装するうえで妥当かといったことである。

これじゃ、「こんな面白いことはあなたたちにはもったいない」と言ってるようにしか聞こえない(笑)。

ところで、上記の彼に意見については私も同意する。 C#とRubyとどっちのバランスがどうか、という話はしないことにしよう。

多分 Anders 氏の周りには,世界中からここでいうところの「芸術」「科学」両面の色々な意見が集まってきていて,そのバランスをとっているのが氏の仕事なんだろうなぁと.ほんと楽しそう.
逆に言えば中の人が何か変えようと思ったときに「Anders を説得できるか」が鍵なわけで……「おがわみつぎの SQL Server な BLOG」より.

re: アンダース、DLINQ の動的化忘れないでね! 2006/02/04 13:42 daigoh

お久しぶりです。
Mapping Fileのサポートはすでにリストの中に入っています。あとは、アンダースを説得するだけです。その意味でも今回のMVPさんのPushは私たちDLINQ Teamにとっても助かります。これからも、どんどんPushをお願いいたします

という感じになると.波村さん最近 DLINQ やってるのかぁ.
去年の TechEd Yokohama で波村さんに「C# 2.0 の Iterator で,状態変数が ISerializable のときはコンパイラが生成する IEnumerator 実装クラスをシリアライズ可能という言語仕様にすれば (シリアライズを通して) continuation が使えて便利なんじゃないですかね?」と聞いてみたことがあるんですが,そのときの返答が「検討はされたけどパフォーマンス上の理由で却下された」というものでした.これなんかは個人的には残念に思いつつ,今思えばそれが C# のカラーなのかなという気もしてきます.
とかなんとか考えているところに最近この辺りの議論を見つけて中々面白く拝見してみたり.以下は Visual J++ 時代の Anders の仕事である delegate について,JavaHouse-MLでの議論の高木浩光氏がまとめたもの.
https://web.archive.org/web/20110127133327/http://java-house.jp/ml/archive/j-h-b/020252.html
で,その中のひとつ.

以下、もしこの予想が当りなら、ですが、


なんとまあセンスの悪い言語設計でしょう。こういうのが本当に有効なのなら、
言語とは別のレベルでフレームワークとして用意すべきではないでしょうか。
プリプロセッサにしてもいいし、開発環境が自動生成するのでもいいし、rmic
のようにスタブジェネレータを併用してもいいでしょう。

そんなんでは世の unsophisticated people が便利じゃないと感じるだろうか
ら、レベルが違うものを言語の中にごちゃ混ぜに入れ混んでしまったのでしょ
うか。やはり「unsophisticated peopleに媚びた設計」か?

そもそもまともな言語設計者ならポリシーが許さないとおもうんですが、もし
かして、Hejlsberg 氏自身が unsophisticated なのかな。

高木 浩光@電子技術総合研究所

Re: "delegate" in J++ language"

さらに今から遡ること 10 年前に JovaHouse-ML でまつもとゆきひろ氏が書かれている言葉から今の Java と Ruby の構図を予想できるか否か.この間に変わったものを考えると,10 年以上言語を作り続けられるというのは本当に楽しそうですね.

まつもと ゆきひろ@トヨタケーラムです.

ああ,いつもJavaと関係ない話しかできない….

In message "[JavaHouse-Brewers:1860] Re: selector mechanism"
    on 96/03/22, Aoyagi Tatsuya  writes:

|Javaで「クラスの爆発」なしに

オブジェクト指向的に美しく
コールバック的なものを実現する方法はないのでしょうか?

Javaでは無理なんじゃないでしょうか?

こういうのを「オブジェクト指向的に美しく」実現するには(私の 思い付く方法は),

  * 特異メソッド(特定のオブジェクトにメソッドを定義する)
  * クロージャ(手続きをオブジェクト化する)

がありますが,どちらもJavaにはありません(よね).

JVMのコードを吐くschemeの計画などあるようですから,それがで きれば後者は実現できるかも知れませんね.

                                まつもと ゆきひろ /:|)

LINQ Project を通して C# 3.0 と Visual Basic 9 に monad comprehensions を導入した立役者の一人である Erik Meijer 氏は,既に LINQ 導入後の世界図を描き始めています.

Beyond LINQ: A Manifesto For Distributed Data-Intensive Programming
http://lambda-the-ultimate.org/node/1253

10年後の世界はどんなプログラミング言語が世界を動かしているでしょうか?
(訂正)波村さんのお名前を間違っていたのを訂正