Findyとかいうプログラマ向けSNSに登録していると、時々案件情報が送られてくるのだが、 ベンチャーの案件でRuby on Railsなどと書いてあると、笑ってしまう。 今さらRailsか。CTOの技術力がマジでないんだろう。 サービスを育てていく気もないんだろう。 そんなベンチャーに投資してしまった人間が不憫でしかない。 負の感情しかわいてこない。
これ以上、Rubyに人生を狂わされる人間が増えないように、 Rubyはゴミと言うことにした。おれのポエムを聞いてほしい。
Rubyからは何も学べない
Rubyが駄目な理由は、 Rubyなんか書いても良いソフトウェア設計を学べないし、それどころか誤って学習してしまうからだ。 Rubyistは他のより優れたコードで書く場合にも、やはりRubyならどうするか考えて、それを他の言語に転写しようとするから、 結局Rubyコードを産んでしまう。
その結果、Rubyしか書けない人間になってしまう。 そんな人生が良いと思わないならば、Rubyなんか使わないことだ。 特に新人は、Rubyからキャリアを始めるなんてやめること。 何もこれはおれだけが言ってるんじゃない。 Rubyに将来性がないというのは各方面で言われていることだ。
将来性のないプログラミング言語5選として「Ruby」が挙がり話題に
Rubyでソフトウェアを作ることがどれだけひどいことか全うな認識が広まってきて、 今ではRubyが良いと思ってる人は、根っからの信者くらいだろう。 それ以外の全員に見限られはじめている言語、それがRubyだ。 一応、こういったディス記事に対する開発者の反論みたいな記事は見つかるけど、 自分の子供を白痴呼ばわりされてはいそうですねという親はいないから、実質何の情報量もない。
まともに開発をしたいのであれば、RustかScalaをオススメする。 特にRustはいい。今の時代、初手Rustだ。 プログラミングスクールでもRustを教えるべきだ。
プログラミングでは型がすべてだ
現代的なソフトウェア設計で重要な要素は「型」だ。 これは、型がある方が良いという安全弁的な意味で言ってるわけではなく、 ソフトウェア設計自身を型設計だと理解するということだ。 データは型、処理も型、IOなど副作用も型。 すべて型。こういった設計をすると、 コンパイラによって保証される領域が広くなるから バグも生まれにくくなる。 マルチスレッドプログラミングもしやすくなる。 当然、理解もしやすくなる。 たしか、「プログラミングとは型を変換することである」という言葉もあったと記憶している。 そのくらい、型がすべてだ。 Rustのような言語の真の力を活かすには、こういったことを学ぶ必要がある。
Rubyは、この対極にある。 引数の型がArrayかHashかによって内部で分岐するコードなんか日常茶飯事。 同じようなことが返り値でも行われる。 型は明に定義されず、ArrayとHash、あるいはその組み合わせが 生のまま使われる。 恐ろしいことだ。 確かに、たかだか100行のスクリプトならばそれでも良いかも知れない。 でもそのノリのまま10万行のコードを書いてしまったらこの世の終わりだろ。 結局こんな文化だから、現代的なより優れたソフトウェア設計について考えることもないし、 実践することもない。何も学べなくなってしまう。
サリンとRuby
1995年3月、ある事件が起きた。 そう。地下鉄サリン事件だ。 5年生の時だったか、麻布の学園祭に行く時に 日比谷線を使ったが、まだサリンが残留してるんじゃないかと思って、 怖かったのを覚えている。
同じ1995年に生まれたものがある。 Rubyだ。
サリンはあの時、多くの人の命を奪い、そして多くの後遺症を遺した。 Rubyはどうだろうか。 国産言語としてゴリ押しし、 不幸なことに、日本では広く使われてしまった。 そして、今に至っても使われてしまっている。 これによって日本の技術はよりガラパゴス化し、 日本のIT業界に負のダメージを与えた。 サリンと同じく、多くの後遺症を遺した。
開発の中止を
おれにとってRubyはそういう評価だ。 おれのEメールアドレスがRubyにワクテカしてるということで、 「お前だってRubyのファンだろ」って言う人がいるけど、違う。 これは、一瞬でもRubyにワクテカしてしまった自分への戒めだ。
開発者のMatzにはもしたまたまこの糞記事を目にすることがあったら、 今までやってきたことを悔い改めて、Rubyの開発を中止することを期待している。