Soft Typingに対するMatzの誤解とDuck TypingとStructural Subtyping

まつもとゆきひろさん(Matzさん)がRubyKaigi2016の基調講演で説明した、Ruby 3のSoft Typingにまつわる誤解や構造的部分型に関する話です。
18
前へ 1 2 ・・ 5 次へ
Kota Mizushima (on a diet) @kmizu

@esumii なるほど。いやまあ、そこはSML#のページにも書いてあることなので一応は理解しているつもりだったです。

2016-09-08 14:17:18
Kota Mizushima (on a diet) @kmizu

Ruby + レコード多相の話、以前@soutaro さんがやってた気がするが、その辺どう思うか聞いてみたい…とメンション飛ばしてみる

2016-09-08 14:06:53
Soutaro Matsumoto @soutaro

@kmizu ルビーの辛さはそこではないので……ということもないけど。突然メソッドが生えるのを別にすれば、基底型がないのと、相互再帰なでかいクラス定義が辛い。

2016-09-08 14:10:12
Soutaro Matsumoto @soutaro

ルビー流の型システムがあるとして、それをソフトタイピングと呼ぶのは論外として、まーそのままダックタイピングとかで良いのではなどと思ったが、それ以上はコメントありません。

2016-09-08 14:13:38
Soutaro Matsumoto @soutaro

相互再帰で辛いのはPolymorphismに関してですが、なんとなく動くやつはできるはず。

2016-09-08 14:17:21
Soutaro Matsumoto @soutaro

基底型がないのは、たぶん本当にしんどくて、String受け取りますとか言っても、ではStringとはなにか?となる。to_strがあればそれでいい?その返り値がStringであるというのは、どう表現するか?などとなります。

2016-09-08 14:18:55
Soutaro Matsumoto @soutaro

基底型的なものとして、いくつかの組み込みクラスはノミナルに取り扱えばいいのかな。

2016-09-08 14:19:42
Kota Mizushima (on a diet) @kmizu

soutaroさんの多相レコードin Rubyの話は、 ci.nii.ac.jp/naid/110006684… にあった。

2016-09-08 14:19:53
Kota Mizushima (on a diet) @kmizu

@soutaro ふむふむ。相互再帰はなんかつらそうなにおいはしますが、基底型(がない)のはどう効いてくるのでしょうか?

2016-09-08 14:23:19
Kota Mizushima (on a diet) @kmizu

@soutaro メソッドが突然生えてくる件は hackerslab.aktsk.jp/event/rubykaig… の方針なら、推論できるサブセットには入らないで解決しちゃっていい気がしますが。

2016-09-08 14:24:39
Yukihiro Matzmotto @yukihiro_matz

link: "型は絶対書きたくない" "Ruby3は東京オリンピックまでに" Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」 #rubykaigi 2016 Keynote - Togetterまとめ: togetter.com/li/1021897

2016-09-08 22:11:45
Yukihiro Matzmotto @yukihiro_matz

良いレポート。link: RubyKaigi 2016 基調講演レポート Ruby3 Typing | MEMOPATCH: memo.goodpatch.co/2016/09/rubyka…

2016-09-08 23:12:16
S (ツイートはスレッド全体をご確認ください) @esumii

インターフェースすら全く書かなくてもstructural subtyping/polymorphismにより型推論されるOCamlという言語が20年ぐらい前からあるわけですが

2016-09-08 22:46:10
Yukihiro Matzmotto @yukihiro_matz

Scalaで型推論付きでダックタイピングができるという認識がありませんでした。私が無知なだけかもしれませんが。 twitter.com/applideveloper…

2016-09-08 23:14:09
Yukihiro Matzmotto @yukihiro_matz

うーん、structural subtypingとダックタイピングは同じものなんだろうか。

2016-09-08 23:25:48
Tanaka Akira @tanaka_akr

@yukihiro_matz OCaml入門のチャンスです。うん。

2016-09-08 23:53:41
S (ツイートはスレッド全体をご確認ください) @esumii

@yukihiro_matz どちらも完全に厳密に定義された用語ではないので「正確には定義による」としか言いようがないですが、「ガーと鳴くメソッドがあるオブジェクトは何でもアヒル型になる」という意味ではOCamlでも20年前から可能です

2016-09-08 23:29:30
おく @OKU_K

Matz氏が structural subtyping の話ししてる!?と思って眠気が吹き飛んだけど、相変わらず絶対に型書くたくないマンっぽいから寝る

2016-09-08 23:45:15
Jun Furuse 🐫🌴 @camloeba

OCaml は「ダックタイピングの静的パージョン」をずっと前から持ってるんだけど、アップキャストは明示、ダウンキャストは不可って所は Rubyist には多分受けねぇだろうなぁ

2016-09-08 23:51:24
Jun Furuse 🐫🌴 @camloeba

@camloeba ダウンキャスト不可とか意味不明な制限があってもそれなりにプログラムが書けるという恐ろしい成果なわけだが

2016-09-08 23:55:29
田中ひさてる @tanakahisateru

構造的部分型を知れば理解しあえるであろうRubyとScalaのたたかい

2016-09-08 23:53:53
ドッグ @Linda_pp

あれ,structural subtyping によって静的ダックタイピングができるようになるんじゃないの?(混乱)

2016-09-09 00:06:52
SHIMADA @_shimada

"RubyKaigi 2016 基調講演レポート" memo.goodpatch.co/2016/09/rubyka… 前半のダックタイピング云々は構造的部分型を知らないだけだし、「静的な振る舞い推論」と言われてもすでにCrystal言語がかなりいいところまで行ってる感じだし、なんだかなあ。

2016-09-09 00:27:23
前へ 1 2 ・・ 5 次へ