編集可能
2016年9月9日

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

まつもとゆきひろさん(Matzさん)がRubyKaigi2016の基調講演で説明した、Ruby 3のSoft Typingにまつわる誤解や構造的部分型に関する話です。
18
紅月さん@がんばらない @koduki

goのStructural Subtypingの話。Scalaっぽくてアレは好き #rubykaigi

2016-09-08 10:34:00
ヽ(´・肉・`)ノ @niku_name

静的なダックタイピングのような,構造的部分型のこともインターフェースとして話されているのだろうか #rubykaigi

2016-09-08 10:47:06
⇔ Satoshi Kojima ⇔ @skoji

「Ruby3はいつ来るのか」「わかりません」「オープンソースプロジェクトには締め切りはない」「でもゴールがないと働かない」「月に行く、という宣言」 (スライド上はSoft typing, Ruby 3x3, Concurrency) #rubykaigi

2016-09-08 10:55:59
Tsuyoshi MAEHANA @sandinist

未来に向けてハードルのある目標を設定する。ケネディは1960年代に月に行くと宣言、1969年に実現された。燃料投下はMatzの役割。 ・Soft typing ・Ruby 3x3 ・Concurrency 宣言ではないが、次のオリンピックの頃に。 #rubykaigi

2016-09-08 10:59:34
gihyoreport @gihyoreport

松本さんは、Rubyで現在考えている、ダックタイピングを維持したまま型推論できるようなSoft typingの構想を話しました。こういった構想は「開発者の皆さんに、より良いプログラミング経験を提供すること」「前に進み続けることで幸せを届けるため」と話しました #rubykaigi

2016-09-08 11:01:39
Tanaka Akira @tanaka_akr

ここでいう soft typing は昔読んだものと違うな。名前の乗っ取りを感じる。#rubykaigi

2016-09-08 10:55:12
HaiTo @HaiTo_Linux

schemeでいう「soft typing」とはかなり異なる なるほどなーw #rubykaigi

2016-09-08 11:09:54
sylph01 @s01

soft typingは別の意味のある言葉らしい #rubykaigi

2016-09-08 11:10:19
黒曜@Leaner Technologies @kokuyouwind

soft typingという用語がacademicな世界での使い方と異なるので別の語を使って欲しい、という指摘が。用語は実際重要。 #rubykaigi

2016-09-08 11:10:37
undo @123undo

「此処で言ってるsoft typingってschemaで使われてるのとは違いますよね? アカデミックで使われてる言葉は大事にして欲しいと思います」 「別の名前考えておきます」 #rubykaigi

2016-09-08 11:11:39

注:「schema」はおそらくScheme(関数型プログラミング言語の一つ)のこと

S (ツイートはスレッド全体をご確認ください) @esumii

ちなみに本来のsoft typing dx.doi.org/10.1145/182409… 1994年のLisp and Functional Programming(現在のICFP)の論文。

2016-09-08 11:27:41

(本来のsoft typingは、静的に型付けできる部分はして、できない部分は動的に型付けするアプローチのこと)

Tanaka Akira @tanaka_akr

@esumii structural な subtyping で型推論をするような話でした (用語が変だったらごめんなさい)

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

.@tanaka_akr どうもです! 完全に静的な型つけじゃなくて一部は動的とかだったらsoft typingの一種ではあるかも

2016-09-08 11:35:11
Tanaka Akira @tanaka_akr

@esumii そこはよくわかりませんでした。全部検査するという話もあった気がしますし、検査できなくても動かすという話もあった気がします。少なくとも重点はプログラムの間違いを検出するところにありました。

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

.@tanaka_akr そうすると主眼はやっぱりstructural {polymorphism,subtyping}の型推論っぽいのでキャッチーな名前がほしかったら「ダック型推論」とか:-)ですかね。重ね重ねどうもです

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

@esumii 念のため、完全に静的ではないだけで、「プログラムの間違いを検出する」点はsoft typingでも同じ。もちろん、普通の静的型と同様、実行時効率の向上にも使えますが。

2016-09-08 12:18:54
tomo🐧@learning @cocoatomo

@esumii 気になって検索してみると, 2014年のRubyKaigiで omniref.com/blog/2014/11/1… hackerslab.aktsk.jp/event/rubykaig… のような発表をされているようです. 発表動画 → rubykaigi.org/2014/presentat…

2016-09-08 12:25:58
tomo🐧@learning @cocoatomo

@esumii あ, 発表動画は間違えてRubyKaigi2014のキーノートのURLを張っちゃいましたm(_ _)m

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

@cocoatomo ありゃ、オリジナルもreferされてる(?)のにかなり違う話をしてるので混乱してるみたいですね…。情報どうもです

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

@cocoatomo あ、いえ、出先なので動画は見ていません(^^;すみません

2016-09-08 12:31:12
Kota Mizushima (on a diet) @kmizu

hackerslab.aktsk.jp/event/rubykaig… みたいな話だったら(推論できるのとできないのを切り分けていいのだったら)、レコード多相の pllab.riec.tohoku.ac.jp/smlsharp/ja/?F… 話が割と応用できるのではないですかね

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

.@kmizu そもそもRemyのレコード多相がOCamlのOの基礎理論です。継承があるのでレコード連結があったり、実装は(インデックス渡しではなく)ハッシュ表だったりしますが。

2016-09-08 14:09:56
残りを読む(80)

コメント

S (ツイートはスレッド全体をご確認ください) @esumii 2016年9月10日
抜けが多い気がしたので、話の流れをわかりやすくするため、大幅に編集して整理しました。勝手にすみません。m(_ _)m
1
日比野 啓 (Kei Hibino) @khibino 2016年10月8日
たしか LL Ring で soutaro さんが登壇したときも OCaml の多相レコードで duck typing が推論できるという話をしていたと思う。昔からありますよね、と思っているプログラマ、結構いるのではないか。 LL Ring ももう 10年前か。
0