WindowsでRailsアプリの開発したときのメモ

先月、ちょっとアルバイト的にRails案件のお手伝いをしたので、そのときに思ったことを覚えているうちに残しておく。


結論、「WindowsRailsやっちゃダメ。ぜったい


Redmineとか普通にWindowsでも動いているので、それは極論かも知れないが、たぶん「クロスプラットフォームで開発できる工夫をしないと苦労する」という感じ。ほっといてもクロスプラットフォームにならない。何で苦労したかというと、gemのインストール。RubyRailsRubyInstallerとかRailsInstallerのお世話になったので、それほど苦労はなかった。いざ、RailsプロジェクトをチェックアウトしてgemのインストールをするとJSONあたりでコケる。:-(


RubyInstallerのDevKit使えば、ある程度はなんとなかったけど、元々GemFileで指定していたバージョンがどうやっても入らないなど完全ではなかった。どうしようもなくて、まあいいかと削ったgemもあったし。


どうにか環境を整えてみたが、今度はRuby/Railsが遅い。IDEIntelliJRubyプラグインを使ったのだけれど、Javaで開発するときと比べ目に見えて反応が遅かった。「静的言語と動的言語の違いか?」とも思ったけど、以前、Linux上でIntelliJRubyプラグイン使ったときは、そんなこと思わなかったなーとか。あとRSpecが異常に遅い。コマンドラインから叩いても遅かったので、IntelliJというよりWindows側の問題なのかなと思ったり(マシンスペックまでちゃんと比較したわけじゃないが、LinuxのターミナルでRSpec動かしたら普通に動いた。


そんなこんなで、Windowsでの開発は骨が折れることばかりで良いことひとつも無かった。:-(


他の開発メンバはどんな環境で開発していたかというと、開発環境のLinuxサーバにTeraTermなどのターミナルでログインしてvimで開発、とある意味スタンダードな開発スタイルだった。あとバージョン管理はgitね。「ずいぶんストイックだな」と聞いたところ「引き継いだ環境がそうだった」とのこと(ズコーーッ


会社から支給されてるPCはWindowsで、IDE(といってもeclipse)で開発できるJavaに慣れてる or しか知らない人たちにターミナルだけで開発ってストイックを過ぎてスパルタンな気がする(反面、良い機会だから、みんなvimmerになってしまえという思いもあるw)。「(Javaに比べ)簡単に早く開発できるRuby/Rails」て宣伝してて、その開発環境はないやろーと。あ、それ言ってるは自社内の事です。当然、異論は認める。:-)


文句言ってばかりも仕方ないので、何かしらの落としどころを模索しようと思う。

その1:ターミナルに馴れる

ある意味で理想型。なんだかんだでUnix系の環境に馴染んでた方があとあと便利なことあるし、この際だから極めてみようぜ、とも思う。だけど学習曲線の厳しさは最上級なので、Ruby/Railsとか興味ないし、プログラミングに楽しみを見つけるとかわかんない、と言ういわゆる職業プログラマ向けじゃないわな。
新人とか何も知らない人には、むしろこれしか教えない、と言う洗脳教育もありか。:-)

その2:せめてGUIを使う

LinuxLinuxでもVNCかX使おうというパターン。と言っても、普段の仕事の都合もあるから完全にWindows捨てられるわけでもないので、結局のところ、WindowsLinuxGUIの操作系を覚えるハメになるから、そんな楽にならんかも?例えばインプットメソッドまわりなんかがね。冷静に考えれば、これで得するのは、IDEが使えるくらいか。

VNCやXは、開発者が増えるほどサーバに負担がかかるのが気になるし、VMWareVirtualBoxの仮想OSもPCのスペックとHDDの空き容量が気になる。ちなみに、自分はVirtualBoxに環境作ろうとしたけど、HDDの空きが足りなくて断念した。...そもそも潤沢な環境を用意してもらえないって別の課題があるからな、これ。:-(

その3:andLinux使ってみる

これは思いつきで試してない。WindowsでイケてなかったのはRails環境だけなので、こっちはandLinuxに任せ、テキストエディタとかは自分が使いなれたWindowsのツールを使うってんで、なんか良さげな予感。ただこれ、IDEはダメだろなと(少なくともIntelliJ/RubyMineは、それを起動したプラットフォームのRuby/Rails環境を利用するんで。


ここで得するのは、例えばインプットメソッドやテキストエディタが使い慣れたモノを利用できるとかか。その1に比べて不自由が少ないし、その2に比べてもマシンスペックの負担も少なそう。ただ、ちゃんと試してないのでうまくいくかはわからない。


例年通りだと年度明けはヒマしてる事が多いので、その辺あたりを狙って改善提案でもしてみようかな。

Railsの開発環境で役に立ちそうなIDE

って実際あるのかな?と。RubyMine(IntelliJRubyプラグイン)は役に立った。実際のところ、遅くて途中で投げたんだけど、途中から参加した身の上としては、Rails用のプロジェクトビューやリソース(辞書)をエディタ上で展開してくれたりするちょっとした機能のおかげで、プログラム構造の把握が捗ったのは確か。じゃあ、それが他のRails向きIDE...NetBeanseclipseがどれほど効果的なのかは未評価。でもRubyMineやIntelliJは有償なので、無償のNetBeanseclipseが役に立つかどうかのほうが大事なんだけどね。:-P

Gitについて一言

ウチの会社的には流行ってないし、普通にSubversionのほうが優勢。gitの使われ方を見たら、Subversionっぽく使ってるだけだったので「だったらSubversionでええやろ」と思わなくもなし。ただ「その1」の環境で開発している現状を見ると、CLIsvn叩くよりはgitの方が何倍もマシなんだろなとも。
git使ってるからといって、チェンジセットを常にキレイにしとけって言う義務もないしな。Subversion的でも運用できてるなら、それでもいいのかなって。


gitをgitらしく使うには、自分自身もgit力が足りないので、思った疑問が自分の知識不足によるのか、ホントにgitの運用がイケてないのかちょっと判断が付かないので、こっちについては、もちょっと暖めておこうと思った。


ps.
WindowsでのRailsの鬼門っぷりを見るにつけ、「それ、Grails...」とか「それ、Play...」とかって思ったのはナイショ。:-P


(追記)いろいろとアドバイスを頂いたので残しておきます。
やはり、WindowsRailsは鬼門。



VMWareVirtualBoxが現実解ですかね。


JRuby案浮上。


で試してみたわけですが、やっぱりgemで撃沈。そのときのgemはpg.


あと、こんなのどう?ってのがもうひとつあったけど、もう諦めます。(´・ω・`)


まあでも、某プロジェクトではAptana使ってるって話も聞いた事あるので、gemなどを厳選すればWindowsでも開発できるんでしょうね。その厳選が手間な気もしますが...。


偉大なるartonセンセイからもコメントをいただいた。


不勉強なので能楽堂なるものを初めて知りましたが、残念な事に未だに32bit OSを使っているので試せませんでした。orz