[ruby-dev:48819] 再びRubyで静的型
From:
"Toshiyuki Sasaki" <tsasaki1@...>
Date:
2015-01-15 10:47:08 UTC
List:
ruby-dev #48819
どうも。 1ヶ月ほど前に「Rubyで静的型」を投稿させていただいた佐々木です。 「Rubyで静的型」では私のアイデアを披露したのですが、まつもとさんに、 それはSoft Typingという技術に近いのではないかと言われ、Soft Typingに ついて調べたのですが、これはどうも私のアイデアとは違うようです。 当方英語が読めないので、日本語のネット上のわずかな情報を見た 限りのことですが、Soft Typingは「動的言語でも実行時の型検査を なるべく省略して速くしよう」というようなものと理解しました。 一方私の案の方は実行時の型検査をすべて無くし、速くしよう というものです。これを型宣言なしに行います。 また、まつもとさんがSoft Typingとともに触れていたGradual Typingも、 これは型情報をコード中に記述するものらしく、私の案とは違います。 私の案は動的な言語を速くするというより、徹頭徹尾静的型です。 ここでMatzにっき http://www.rubyist.net/~matz/20040722.html#p01 を参照させていただくと(動的型、静的型の長所、短所が良くまとめ られていると思うので)、静的型のデメリットとして、「全ての変数に 型を書くのは面倒くさい」「柔軟性が減る」が挙げられていますが、 前者は私の案では型宣言を無くすことができるので解消し、 後者はやはり私の案による、静的で型宣言のないダックタイピング により、解消することができます。 後者についてMatzにっき抜粋: > たとえば、Rubyであればwriteメソッドを持つオブジェクトなら > なんでも出力先にできるが、 静的型言語ではそのような柔軟 > 性は困難だ。 いや、interfaceのようなものを用意してそれを > 継承すれば理屈では可能だが、 実際にはあまり活用されて > いないようだ。 ただし、私の案はまだ未成熟で、三浦さんより実装上の難点が 挙げられていて、それらを克服すればの話ですが。ただ、私は それらはいずれも致命的なものではないと思っています。 とすると、私の案が実装可能であるとした場合、静的型のデメリット は無くなり、動的型と静的型がトレードオフの関係ではなくなり、 静的型こそが最終的な勝者となると、私は考えています。 私は間違っているでしょうか?