@tukinyanJP

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Rubyに静的型のほうが需要ありの可能性が微妙に存在している?

Discussion

 こんにちは。tukinyanJPです。Rubyist である皆さんに質問なのですが、TypeScript って知っていますか? JavaScript に 静的型を追加した、トランスパイラ言語ですよね。私は、試験的に、 rubihuru.rb という Ruby に型を追加した、トランスパイラ言語を作ってみました。ただ、型を追加しただけの言語なのですが...

def fib(Integer: n) Integer
    if n < 2
        n
    else
        fib(n - 1) + fib(n - 2)
    end
end

というコードがかけますね。

 前置きはこれで終わります。本題に移りたいと思います。短く言います。反感もらう覚悟なのですが1 Rubyを使っていて正直動的型より静的型のほうが使い良いし、変えてほしい と考えていませんか?** 私は、動的型が好きでいいのですが... Ruby に静的型が入ることによって皆さんはどんなメリット・デメリットが発生すると思いますか? 動的型が良い人、静的型が良い人で、分かれると思います。だからこそ、ここで話すことによって未来の Ruby の形が見えてくるのではないでしょうか。皆さんの意見、聞かせてください。

  1. rails を偉大な dhh 氏は動的型をめちゃくちゃ推しているそうです。当たり前ですね...

0 likes

「Rubyといえば、やっぱり自由な動的型と、あの流れるようなDuck Typingの気持ちよさ」という声が主流とは思います。
一方で静的型にもメリットはあります。引数の型間違いのような誤りを早期発見しやすくなることです。

0Like

TypeScript は JavaScript の厳密なスーパーセットであるという立場上、どうあがいても根本は動的型であることは変えられません。 整合性をチェックするためのヒントとして型を使いますが最初から静的型として設計されたものではないため色々と無理があります。 TypeScript の型システムがいまだに文書化できていないことから察してください。

Ruby も 3 以降のバージョンでは静的型検査のためのツールが同梱されています。 あくまでも型は検査のためのガイドであり言語の根本を静的型に変更はしないし型注釈のための文法拡張もしないということを Matz 氏は繰り返し表明しています。1

すでに Ruby に静的型検査が入っていることからわかるように静的型の要求は強いです。 Ruby は型注釈の文法を入れないアプローチで発展しようとしていますが、そうではないアプローチもあって良いとは思います。

  1. 静的型というのは必ずしも型を明記することではないことは前提として把握しておいてください。 文法拡張はしなくても型の恩恵は受けられるから文法拡張はしないと述べているのであって静的な型チェックを否定してはいません。

0Like
This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌