ぼくが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
でいいと思いますが、言語の初心者であれば「エディタの習得」よりも「言語の習得」に重きを置きたいはずです。なのでおすすめはAtom
かVSCode
ですね。どちらもクロスプラットフォームでOSを選びませんし、インストールすればすぐにコードが書き始められます。(Rubyプラグインは入れる必要があるので、オールインワンというわけでは無いですが、数分で出来るので環境構築の負担はほとんど感じません)
そういえばJavaScriptを取り巻く環境も驚くほど良くなっていますね!
ES6
に始まりnpm
でeslint
を入れたり、mocha
やjasmine
でテストしたり、babel
やwebpack
、gulp
などなど、久しぶりに触れると覚えることの多さにびっくりしますが、当時の貧弱な環境に比べるとあまりの進化ぷりにびっくりでした。Node.js
は偉大です。
WindowsにおけるRubyの環境はここ数年で大分マシになりました。が、あくまで「Windowsという環境はRubyに向いていない」ということを承知の上で「なんとか頑張ればギリギリ実用に耐えうる環境を作れる」ということでしかないかもしれません。(実行環境なんかは結局Linuxですし)
これからRubyを始めるキミ、素直にMacかLinuxにしとけ!