RailsとLaravelの比較

# はじめに
この記事はRailsとLaravelを比較分析してみた記事です．
Railsは以前から勉強していて，新たにLaravelを使ってみました．
Railsの勉強には[Ruby on Rails 5 超入門](https://www.amazon.co.jp/Ruby-Rails-5-%E8%B6%85%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798048321/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1574923117&sr=8-9)と[改訂4版 基礎 Ruby on Rails (IMPRESS KISO SERIES)](https://www.amazon.co.jp/%E6%94%B9%E8%A8%824%E7%89%88-Ruby-Rails-IMPRESS-KISO/dp/429500460X/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=rails&qid=1574923117&sr=8-5)を使いました．
[Ruby on Rails 5 超入門](https://www.amazon.co.jp/Ruby-Rails-5-%E8%B6%85%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798048321/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1574923117&sr=8-9)についてはチュートリアル形式で一見わかりやすいのですが，誤植などが多いのとレベルが優しすぎるのであまりオススメしません．

Laravelの勉強は[PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF-Laravel-Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B35-5-LTS%E5%AF%BE%E5%BF%9C/dp/4802611846/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=laravel&qid=1574923305&sr=8-2)を使いました．買う前に中身を確認しなかった僕が悪いのですが，本の厚さの割に内容が薄いです．また辞書的に使う分には良いのですが，チュートリアル形式で作っていく感じではないので，フレームワークを使ったことのない人などにはオススメ出来ません．

# RailsとLaravelの基本情報
＊以下，2019/11/28現在の情報

|                  |Rails              |Laravel             |
|:----------------:|:-----------------:|:------------------:|
|言語|Ruby|PHP|
|初リリース|2004年|2011年|
|github|https://github.com/rails/rails |https://github.com/laravel/framework|
| github start数| 44.6K |19.5K|

githubのstart数ではrailsの方がLarvelの倍くらいの数になっています．Railsはいま流行りと個人的に思っていたりするのですが，リリースからはもう10年以上経過していました．

# Googleトレンドで調べてみた
[Googleトレンド](https://trends.google.co.jp/trends/?geo=JP)では検索のトレンドを調べて，検索キーワードで比較したりできるサービスです．Googleは面白いサービスを作っていますね．
これを使ってRailsとLaravelについて調べてみました．

### すべての国
https://trends.google.co.jp/trends/explore?date=all&q=Rails,Laravel

<img width="1245" alt="スクリーンショット 2019-11-28 16.02.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294876/a754e3d9-9645-0037-6567-feb9670329db.png">

### 日本
https://trends.google.co.jp/trends/explore?date=all&geo=JP&q=Rails,Laravel

<img width="1235" alt="スクリーンショット 2019-11-28 16.03.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294876/3531bbe6-ae6e-2393-eda8-4596e68055f7.png">

Laravelはリリースが2011年なので，2012年頃まではほぼ0です．
`全ての国`の場合ではLaravelがRailsをやや追い越したくらいになっています．`日本`の場合ではまだRailsを追いかけていますが，このままの状態が続くと追い越しそうです．

# 個人的分析
ここからはRailsとLaravelを使ってみた感想になります．

### 本，参考資料などの多さは？　勝者:Rails
Railsの方がネットでググったときなどの参考になる記事などが多いです．それはRailsで使われている言語のRubyの開発者が日本人(まつもとゆきひろ氏)なのでRubyの日本語資料がそもそも多いという点と，Laravelより7年早くリリースしているからかなと思っています．

*IT分野の中で日本発祥の技術はRubyと深層学習のChainerくらいしか知らない(他にあったらコメントください)のでRubyは本当すごいです．

### 勉強のしやすさは？ 勝者:Rails
難易度的にもRailsとLaravelは遜色ないですが，やはり本や参考資料などが多い方が勉強しやすいです．以前Go言語のフレームワークのGinを使う機会があったのですが，公式以外のドキュメントが少なくて開発しにくかったことがあります．

### 使いやすさは？　同じ
- railsには`scaffold`という色々必要なものを一発で作ってくれるコマンドがあるのですが，Laravelは標準でサポートしていません(あるけど，githubの更新も止まっているのでバージョンに寄っては今後使えなくなるかも)．
- Laravelは比較的命名規則などが緩いので，ネットで調べても色々な書き方をしているのでわかりにくいです．
- 逆にRailsは規則が厳しいのですが，厳しいが故に，変数名などを修正するのが億劫になります．
- Laravelはデフォルトでログイン認証などが入っているので，インストールなどの手間が省けます．

### RailsとLaravelのどっちがいいの？　若干Laravelかな
ここまで読んだ人にはRailsの方が良い感じに見えますが，他のエンジニアの人の意見を聞くと
>「Railsは比較的開発が速くできるからスタートアップに多いが，保守・運用や難しい機能にはRailsは向いておらず，JavaやPHPのフレームワークの方が開発が容易」

という意見が多かったです(社会人になって1ヶ月くらいなのでこの辺は自分の中で不確定要素)．確かに求人とか見てるとPHPとかJavaの募集の方が多いなという印象を持ったのでLaravelとしました．

# まとめ
Railsが最強(僕の大学の教授)という人もいれば，Railsはオワコンと言っている人もいますのでどうなんですかね．．．
僕の周囲ではRailsの方がよく耳にします．
Rails，LarvelはRubyとPHPという言語の違いは多少ありますが，考え方や使い方はほとんど同じです．個人的には勉強のしやすいRailsを最初にやってMVCの基礎を勉強して，Laravelとかに移ればいいかなと思います．