RailsとPHPはどっちが良い?

Ruby on Rails

Railsを触り出して1年が経過しました。

元々はPHPでずっとWebサービスを作っていましたが、Railsを触ってみてわかったことをPHPと比較してみました。

Railsの良い点

ActiveRecordがとにかくしゅごい

もうRailsといえばActiveRecordにつきます。

PHPではDB周りの設定をやるのに、いちいち記述することが多く、単純作業で時間がかかりましたが、
RailsのActiveRecordを使うと本当にびっくりするぐらい早くDB、テーブル周りの設定が終わってしまいます。

全自動と言ってもいいくらいです。

PHPで開発してた時は、本当にこのDBテーブル周りの設定が面倒だと思ってたのでこれには本当に感動しました。

Scafforldがしゅごい

さらにscafforldコマンドを使うと、ログイン画面が自動的に作られたりと、

「もうこれ、エンジニアはコマンド叩くだけでやることなくね?」

と思えるぐらいに爆速で機能が作れます。

PHPでは数行に及ぶ様なコードが1行でかける

RailsというかRubyの話なんですが、PHPでは数行になってしまうようなコードが1行でかけてしまいます。

とにかくコード量を少なくしたいという思想がヒシヒシと感じられます。

セミコロン(;)がいらないのが地味に良い

Phpになれるとコードの最後に右小指でセミコロンを打つのが習慣になりますが、Rubyはこれが要りません。

最初は戸惑うのですが、なれると非常に快適にコーディングができるようになります。

今振り返ると、セミコロンを打つのは結構面倒な作業だったんだな、ということに気づかされました

Railsのダメな点

ほとんどのレンタルサーバーでは動かない

個人で開発する場合、これがかなり致命的な部分だと感じています。

ご存知の通り、PHPだったらほとんどのレンタルサーバーで動かすことができます。

でも、残念ながら大体のレンタルサーバーではなぜかRubyがサポートされてません。

インフラ周りが好きなエンジニアは良いかもしれませんが、僕の様にアプリケーションの開発にフォーカスしたいエンジニアの場合、インフラ周りはサーバー会社に丸投げしたいんです。

(スターサーバーではRubyは2.0.0という旧石器時代とも言えるバージョンまでしか使えず、事実上は使用不可といえます)

なのでRailsを動かすには事実上VPSを借りる必要が出てきますが、VPSはレンタルサーバーと比べると少し座敷が高いです。

フルマネージドなVPSもありますが、お値段が高いので正直スターサーバー みたいな格安レンタルサーバーに慣れてしまうとなかなか手を出せません。

(こちとら月300円でレンタルサーバー借りてるのに、Railsのためだけに月700円とか払いたくない…)

つまり、Railsは実装コストはPHPより低いのですが、運用コストはPHPより高いといえそうです。

他人がコードを修正すると、いちいちローカルでBundle Installが必要

他人がコードを修正すると、ローカルで動作確認をするには、いちいち取り込んだ後にBundle Installやmakeなどのコマンドを叩く必要があります。

正直なところ、大人数でWebサービスを開発する場合、これがかなり厄介です。

PHPではGitのブランチを切り替えてもそのままローカルでコードを実行できます。

しかし、RailsはGitブランチを切り替えるたびにローカルでいくつかのコマンドを叩かないと動きません。

エンジニアであっても面倒なのに、デザイナーさんとかになるとチンプンカンプンで、いちいちエンジニアがサポートしないといけません。

Railsはコードを書いたり、機能を実装するコストはPHPより低いのですが、ローカルで動かすためのコストはかなり高いです

PHPと比べると情報量は非常に少ない

PHPではわからないことがあった時は、ググれば大体の問題は解決します。

しかしRailsではPHPと比べると情報量が非常に少なく、ググってもよくわからないことが度々あります。

英語で検索しても欲しい情報が見つからないことがあり、これが地味に困ることがよくあります。

御多分に洩れず公式ドキュメントはたいして役に立たちません。

今となってはあのPHPの公式ドキュメントが神々しくに見えるほどです。

まとめ

あくまで僕個人の感想ですが、Railsは大人数の開発にはあまり向いてないフレームワークだと思ってます。

「5人くらいまでの少数のチームで爆速でWebサービスを作りたい」

というようなケースでは、Railsは非常に強力なフレームワークです。

それも割と一般的によくあるWebサービスであるほどRailsは威力を発揮します。

しかし、開発規模が大きくなったり、あまり一般的じゃない機能をオーダーメイドで実装することが多い

というような場合にはPHPの方が部があるような気がしています。

とはいえエンジニアが個人で開発する様なWebサービスでは、正直なところ好みの問題かもしれません。