元旦

元日。晴。
あけましておめでとうございます。

今日は一日 PC で遊んでいた。またもやプロジェクト・オイラーである。段々むずかしくなってきていて、なかなかすぐには解けなくなってきた。
去年のクリスマスに Ruby 2.3 がリリースされたな(参照)。将来の文字列リテラルのフリーズ化に向けて着々と進んでいる。そのうち rbenv で導入しよう。

しかし、上級プログラマって人格に問題のある人の割合が多いような…。特に言語の優劣に関しては口汚さがハンパない。ちょっと引いてしまう。まつもとゆきひろさんは(ネットで見る限りでは)紳士だなあ。
 某所で Ruby は F1 ではなくて乗用車だというのを見かけたが、これはいい比喩のような気がする。僕は乗用車が運転できれば充分だからだ。そうして使う分には、Ruby はとてもいい言語だろう。「自家用車として乗って楽しい車」だと思う。運転しやすいし、かなり高度なことが楽にできる。高速道路だって充分運転できるよ。なかなかカッコいいしね。
 プロジェクト・オイラーを見ていてわかるのは、使われている言語は C言語の系統を除けば、圧倒的に Python だということだ。その次が Java で、その後 HaskellRuby が似たようなものという感じかな。Ruby は驚くほどよくやっているじゃないか。ただ、問題がむずかしくなってくるにつれて、Ruby で解いたのが明らかに少なくなってきている。逆に云うと、初心者でも使いやすいという面でそこそこ多いのかな。ただ、自分で解くのに使ったコードと他の言語のコードを比べてみると、よく云われる「コードが読みやすい」「コードが短く書ける」というのは実感する。(Python もそういう点は似ている。)ただ Ruby は、やはり速さで多少劣ることは否めない(しかし、Python とはそれほど差を感じない)。尤もこれはアルゴリズムにもよるので、上手く書くと(あまり上手でない)C のコード並の速度が出せる場合もある。こういうのは、ちょっと痛快でないこともない。なお、驚くのは Haskell で、僕はこの言語はまったくわからないのだが、Ruby 以上に短くて速いという印象だ。
 いずれにせよ、ひとつの言語に慣れてくるというのは楽しいですね。どうやってハンドルしてやろうかというのが楽しい。