一応あらかじめ釘を指しておくと、有名で実用的な言語に限った比較の話である
「LL言語は楽勝」というのが一般的な見解だと思うけど、よくよく考えてみたらRubyほど学習コストの高い言語も珍しいと思う
言語を(使うものとして)理解するには、「コアコンセプトを理解する」「構文を覚える」「組み込み/標準ライブラリに何が有るかを覚える」という要素があるように感じている(これは感じているだけなので事実ではないかもしれない)
Rubyはプログラマがプログラミング的なことについて楽をするための言語である(と思う)
たとえば素数判定ひとつするにしても、自力で高速な素数判定を実装するよりも、 require 'prime' して Integer#is_prime? するのが正しいという雰囲気がある
というよりも、自力で一生懸命実装することが悪であるかのような雰囲気さえある
「こう書けば短い/楽なのに、どうしてそう書かないの?」という雰囲気が漂っている
Rubyで時間計算量やメモリ効率の話をするのはナンセンスなので、純粋に書き方のみを取り上げて優劣を語ることができる
そうなってくると、『ちゃんとRubyが書ける』という状態になるには「組み込み/標準ライブラリに何が有るかを覚える」というステップが非常に大事になってくる
これが莫大なコストになっている。
「コアコンセプトを理解する」コストはHaskellやRustではやや大きいかもしれないが理解するのはそう難しくない「Haskell入門して1ヶ月経つけどHaskellの何が特徴的なのかまったくわからん」などという人はいない
そう考えるとRubyは「組み込み/標準ライブラリに何が有るかを覚える」が非常に大事だし莫大な量である
Rubyに入門して数年経つけど、いまだに「えっこんなメソッドあったの」というのが時々ある
辛い