最近、Railsをガシガシ使ってみて、心根的には「あまり好きになれないな」と感じたわけですが(※素直になれないのではなく、普通にそう思う)、それでもメリットをいくつか感じたので列挙してみました。
※あまりサーバサイドの処理は担当していません。どちらかというと、裏側の処理を書いてました。そういう仕事をしていた人間の所感なので、ちと王道とはズレがあるかも。
requireって書かなくていい
へいへい、無精者ですよ。
デフォルトでいろんなものがインクルードされていて、自前で標準モジュールを呼ぶことが少ないというのは、楽で良いと思います。
日付・時刻の扱いが簡易
元々RubyはDate.parseって書けば、割と空気を読んでくれたりするように、日付処理はかなり簡易ですが、ActiveSupportはそれに輪をかけて便利です。
tomorrowと言えば翌日が出てきたり、next_weekと言えば次週が出てきたりします。
開発途中にDBを変えても損害が少ない
試しにWindows+MySQLで開発したソースをLinux+SQLite3に移しても、特に問題なく。PostgreSQLに移した際も、ActiveRecordを推奨された使い方で(SQLベタ書きとかせずに)使っていれば、差異をほとんど吸収してくれました。
まぁ、途中でDB変えるってことはあまり無いと思いますが、本番環境の選定が決まってない状態で開発スタートしても平気かもしれないってのは、なかなかに興味深いです。
データベースの管理が楽
create文を書くよりgenerateしたmigrationファイルに手を入れる方が数段楽ですし、管理もしやすいです。
あと、DBに関する設定が、必ず決められた場所(config/database.ymlとか)にいるというのもありがたいです。
作業量が減る
script/generateやら、rake db:migrateやら、何かと作業工数を削ってくれる代物が用意されています。
1つ1つの短縮時間は大したものでもないですが、全部足せばけっこうな時間が短縮できます。
RESTで云々する際のコストが限りなく低い
ちょっとしたXMLやJSONを吐き出したい時に、非常に少ないコストで実行できます。
XMLはscaffoldで作った叩き台上で、デフォルトで出力出来るようになっているし、JSONも1行か2行書き変えれば出力されます。
引き継ぎ易い
個人的に、これが一番良いメリットなんじゃないかと思ってます。
Railsで書いたソースは、どの設定ファイルにどんな記述がされているか決まっているし、環境構築もrakeである程度自動生成できます。
オリジナリティ溢れるRubyソースを渡すよりも、Railsで書いたものの方がお互いに共通認識があるので意思疎通がしやすいです。Rails知ってる人の絶対数が少ないということについては、ノーコメント。
もちろん、感じてるデメリットもいくつかあります。
ActiveRecordで大量データ取り扱わせたらやたら重いですし、そもそもRubyの実行速度も芳しくない。C++やJavaなら数秒で終わる処理が数十秒かかったりします。
ちょっと昔のマージソート実行時間比較
http://techtrim.net/2008/01/18_19196.html
それでも、さすがキラーアプリと呼ばれるだけの便利さはあるなぁと、そう思いました。