オブジェクト指向言語のジェネリックスの起源
@yukihiro_matz @chiba_sh @ProfMatsuoka @HironobuSUZUKI C++とかJavaとかのgenericsやらラムダ式やら型推論やら、メインストリームが関数型言語に近づいてきた、とも:-)
2013-11-02 00:48:35@esumii @chiba_sh @ProfMatsuoka @HironobuSUZUKI うーん、そこは認めますけど、関数型言語でも現代のアカデミックに近い部分にはまだまだまだ到達していないような。
2013-11-02 00:50:17.@yukihiro_matz @chiba_sh @ProfMatsuoka @HironobuSUZUKI プログラミング言語は人間相手なので社会的慣性が大きく時間がかかるのだと思っています。Lispですでに実現していたGCが、Javaで普及するまでほぼ半世紀、みたいな。
2013-11-02 00:54:02.@yukihiro_matz @chiba_sh @ProfMatsuoka @HironobuSUZUKI (だからこそ、アカデミシャンとエンジニアの交流が途絶えるのは非常にまずいのですが)
2013-11-02 00:59:00.@ProfMatsuoka @yukihiro_matz @chiba_sh GCは単なる一例だったので、普及に時間がかかった他の例としてはML多相→OO言語の genericsとか型推論とか。(C++のtemplateはやりすぎとして)速度がネックだったわけではないと思います
2013-11-02 01:14:36OO言語のgenerics起源はCLUとかADAでMLではない。“@esumii: @yukihiro_matz @chiba_sh 普及に時間がかかった他の例としてはML多相→OO言語の genericsとか型推論とか。速度がネックだったわけではないと思います”
2013-11-02 01:37:30@ProfMatsuoka @yukihiro_matz @chiba_sh ML多相(≠ML)は60年代から知られていたので、70年代のCLUやAdaがそれと関係がないということはないと思います
2013-11-02 02:01:48@esumii Barbara Liskov, A History of CLU, 1992 読んでたんですが、3.6 でのMilnerへの言及、 3.7 読むと結果的に似た機能になったが起源は別だったのではないかとも思えます。 http://t.co/aau40PhOoa
2013-11-02 03:59:17@esumii もちろん、1992から振り返っての話であって、1974-1975当時、何をどこまで参考にしたかについて明確な記述がないので断言はできませんが。
2013-11-02 04:09:56@ProfMatsuoka @lef @esumii @chiba_sh @yukihiro_matz @HironobuSUZUKI Scalaを忘れないでください。うちはむしろRubyからScalaに乗り換えたぐらいなんで。
2013-11-02 08:10:37@kmizu それは有名ですがパラメタ多相性ではなく型推論の話ですよね。Stratcheyの有名論文 http://t.co/t7peSjsw30 の「parametric polymorphism」(名前もそのまま)は遅くとも1967年なので。
2013-11-02 08:20:54@esumii はい。3.6 でのMilnerに関する言及そのものは型推論の話です。ただ、3.7 Parametric Polymorphismで述べられている動機は組み込み型とユーザ定義型の相違および、ユーザ定義型を組み込み型と同じように振る舞わせたいというものであり、
2013-11-02 08:41:06@esumii 発想の方法としては自然なので、似た概念を知らずに再発明していたという事の一例なのではないかと考えました。一方で3.7 Parametric Polymorphismは、仰る通り名前そのままであり、どう解釈すべきか悩ましいですが。
2013-11-02 08:53:09@esumii 私自身としては、先行する多相型の研究に影響を受けてCLUのパラメタ多相が設計されたのか、それともCLUが独自に再発明したのかについてはどちらももありえるのでは、くらいの認識です。
2013-11-02 09:12:29@kmizu 私が見聞きした限りStracheyの論文は70年代の研究者にも常識だったようなのでLiscovがまったく知らなかったとは思えませんが、本人が覚えていない可能性も0もではないですね。いずれにせよパラメタ多相の研究から普及まで何十年もかかった、と。
2013-11-02 09:17:19@esumii "私が見聞きした限りStracheyの論文は70年代の研究者にも常識だったようなので" この「常識感」がどの程度だったかあまり良く知りませんでした。ともあれ、"いずれにせよパラメタ多相の研究から普及まで何十年もかかった"事には異論はありません。
2013-11-02 09:26:12@kmizu 一応、博士論文のテーマがパラメタ多相と抽象データ型で、歴史を聞いて回ったり、Liscovとも話をしたことぐらいはある程度の研究距離ですので(Stracheyの論文は当然に知っていると思ったので陽に確認までしていませんが)、そこはよろしくお願いします:-)
2013-11-02 09:26:49そういえば、元になった、OO言語のgenericsが何起源かについては、言語によって異なる部分があるものの、少なくともJavaに関しては、Java -> Pizza -> GJの流れがあって、しかもPizza(cont) http://t.co/WAZiDcgREn
2013-11-02 09:59:40.@kmizu うわ、そりゃそうですね>JavaのgenericsはGJ, Pizza経由でHindley-Milner (ML)起源 指摘&文献確認どうもです
2013-11-02 10:14:33と、エアリプライ(?)。もう話の流れ終わってるのに、その序盤辺りに今更リプライ飛ばすのもなんだかなーということを思い、とまどうことがときどきある。とまどってもリプライ飛ばすこともあるけど。
2013-11-02 10:14:58@esumii (しかし本当に目の前で研究を見ていたはずなのに、これを自分ではなく人に指摘されるのは弱すぎる…(笑)>JavaのgenericsはGJ経由でML起源)
2013-11-02 10:21:50