ぼくがRubyを断念した理由

6 年ほど前の話です。ぼくは元々 Java の技術者でしたが、転職を機に VB.NET に触れ、その後 C#をよく使うようになっていきました。

C#にだいぶ慣れた頃、「スクリプト言語の一つでも覚えてみようかな?」という軽い動機で Ruby の学習を始めました。

しかしこの時泥沼に嵌るとは思いもよりませんでした…

Windows 環境の罠

家には Windows の PC しか無かったので、Windows に環境を作りました。

Ruby のインストール自体はうまくいきました。RubyInstallerが既に整備されていたので、Windows での環境構築自体は手順通りで問題なかったんですね。

その後 Rails のインストールで問題は起きました。therubyracerという gem が動かなかったのです。

当時はlibv8がどうとか、環境毎にコンパイルがどうとか、「オレはこの設定で動いたぜ!」とか、2~3日調べまくった結果、「あぁ…これはぼくの PC じゃ動かないな」という諦めに達してしましました。


これに関しては現在に至っても根強く残る問題です。(therubyraceの件はNode.jsの登場で解決しましたが…)

今でも「Windows 向けの gem だけ上手く動かない」「バージョンが変わったら動かない」なんてのはよくあることで、1 日~数日がエラーの解消で潰れるなんてことはよくあります。

Ruby に限らない話ですが、プログラミング界隈はあくまで Unix(Mac)や Linux 中心に回っていて、Windows はあくまで後から移植される環境であるという事を理解させられました。

エディタで疲弊

VB.NET や C#であればエディタはVisualStudio一択です。しかし Ruby のエディタにスタンダードと呼べるものは無く、当時の選択肢としては以下のものが主流(?)でした。

  • Eclipse
  • RubyMine
  • Vim

もともと Java 技術者だったぼくは、Eclipse に慣れていたのでそのまま Eclipse に Ruby のプラグインを入れて使ってみました。しかし非常に動作が悪く、使い物になりませんでした。

Eclipse に慣れていたぼくは「まぁ Eclipse だしな」と思い次のエディタを探しました。

RubyMine は有料だったので一旦選択肢から外し、Vim を使ってみました。というのも、エディタを調べている中で「Vim はなんでもカスタマイズできる」「プログラマなら Vim」「Vim じゃないと死んじゃう」といった声が結構な割合であって、「学習コストは高いらしいけど、長い目で見たら覚えて損は無いかな」と思ったからです。

Vim の操作自体はチートシートを使って「徐々に慣れていこう」で良かったのですが、まともな Ruby の開発環境を整えるとなると、色々なプラグインを入れなければなりません。

…が、早々にプラグイン管理で疲弊しきってしまいました。プラグインが動いたり動かなかったり、何故動かないのか調べるのに時間を使っているうちに「あれ…Ruby のコーディング全然できてないぞ!」という気持ちになり、Ruby をやる気力自体が無くなってしまいました。

実際当時 Ruby のコードを書いた記憶がほとんどありません。

Ruby をやりたかったのに、Vim の勉強を始めてしまったのが失敗だったのだと思います。

そもそもなんで覚えたかったの?

そもそも「スクリプト言語を覚えたい」という動機は、「JavaScript が苦手」という苦手意識が発端だったと思います。

当時(10 年くらい前)は JavaScript を取り巻く環境は本当に貧弱で、まともなフレームワークやエディタはほぼほぼなかったと記憶しています。(もしかしたらあったかもしれませんが、今ほど手軽でも一般的でも無かったと思います)

なのでコードを書いていてもフォーマッタも Linter も無く、テストもまともに書けず、デバッグもブラウザの貧弱なコンソールで行うしかなかったりと、Java と比べて「なんなんだこの言語は!?」という気持ちがあったのです。

Ruby でその苦手意識を払拭したかったのですが…方向性は違えど JavaScript と同じ末路を辿ってしまったのです。

現在の状況

2018 年現在、環境は驚くほど良くなっています。

Windows で Ruby を動かす時に上記のようなエラーに当たることは、少なくなってきているとは思いますがまだまだあります。強い心を持ってエラーに立ち向かってもいいんですけど、今は他にも色々な選択肢があります。

ぼくのおすすめはWindows Subsystem for Linux(WSL)です。ファイルシステムの共有もできるし、切り替えも簡単です。WSL 特有の問題があったり、100%Linux 互換ではありませんが、Windows 上で Ruby を動かすよりははるかにマシです。

他にも仮想環境で Linux を動かしてもいいです。VirtualBoxだったりHyper-vだったり…あるいはDockerでもいいかもしれません。

エディタも種類が増えました。既に慣れているのであればVimでいいと思いますが、言語の初心者であれば「エディタの習得」よりも「言語の習得」に重きを置きたいはずです。なのでおすすめはAtomVSCodeですね。どちらもクロスプラットフォームで OS を選びませんし、インストールすればすぐにコードが書き始められます。(Ruby プラグインは入れる必要があるので、オールインワンというわけでは無いですが、数分で出来るので環境構築の負担はほとんど感じません)

そういえば JavaScript を取り巻く環境も驚くほど良くなっていますね!

ES6に始まりnpmeslintを入れたり、mochajasmineでテストしたり、babelwebpackgulpなどなど、久しぶりに触れると覚えることの多さにびっくりしますが、当時の貧弱な環境に比べるとあまりの進化ぷりにびっくりでした。Node.jsは偉大です。


Windows における Ruby の環境はここ数年で大分マシになりました。が、あくまで「Windows という環境は Ruby に向いていない」ということを承知の上で「なんとか頑張ればギリギリ実用に耐えうる環境を作れる」ということでしかないかもしれません。(実行環境なんかは結局 Linux ですし)

これから Ruby を始めるキミ、素直に Mac か Linux にしとけ!