Ruby on Rails?それともLaravel?
たまに聞かれるんですが、
なんで○○さんはLaravel触ってるんですか?
Ruby on Railsのほうが案件多い気がするんですけど。
的なお話をいただくことがあります。
確かに、日系企業はRailsを使っている会社が多いですよね。
今回は、Webアプリケーションを開発する上で、LaravelとRailsどっちがいいの?という話と、自分の見解をお伝えします。
結論:どっちもどっちだけど、個人的にLaravelが好き
いきなり身も蓋もない結論ですが、結局はケースバイケースだと思います。
ただし、以下の点を比較すると、何となくLaravelに軍配が上がります。
・環境構築の柔軟性
・フレームワークの拡張性
・保守性、可読性
では、それぞれのフレームワークを簡単に比較してみます。
そもそも、Railsはスピード重視のコテコテ型フレームワーク
Railsは、
・コードをできるだけ書かない
・同じことを繰り返さない
・RESTful
を設計思想として生まれた、Webアプリケーションフレームワークです。
コードを書かなくても、それなりのアプリケーションを実装できます。
ただし、コードを書かない分、できることはかなりコテコテになります。
また、コードの意味を深く理解しなくても実装できてしまうので、あとで見直したときに、「なんじゃこりゃ?」ということになりかねません。
Laravelは自由すぎる
Laravelは、ある意味PHPの救世主といってもいいかもしれません。
一時期、PHPはRuby と比べてかなり人気が衰えていた時期がありました。
PHP7.x & Laravel5.xが出てから、徐々に人気が回復し、今では世界で最も検索されるフレームワークとなっています(実際、海外ではLaravelのほうが人気です)
そして、Laravelが最も強みとするのが、自由度の高さです。
フレームワークとして、MVCやREST等最低限の機能は提供しつつも、
かなり自由な実装を行うことができます。
また、DBやメール、AWSといった外部との接続もcomposerコマンドで簡単にライブラリをインストールできるので、あまり実装に苦労したことはありません。
ある意味、世界で最もモダンなフレームワークといってもよいかもしれません。
しかし、自由すぎるがゆえに、スパゲッティコードになってしまう側面もあるので、コーディングガイドラインや規約で実装をある程度ルール化する必要も出てきます。
番外編:C# (.NET Core)
意外と有望な言語&フレームワークが、Microsoftが提供しているC#(.NET Core)です。
特に、処理スピードを求められるゲームや、VR等に強いのがC#です。
Unityという3D開発言語もC#で実装するくらい、地味に必要な言語だったりします(自分も前職ではC#触って、Unityで遊んでいたりしました笑)
開発環境を用意するのが若干手間がかかりますし、コンパイルが必要だったりしますが、JavaとC++のいいとこどりの言語でもあるので、勉強して損はないと思います。
まずは、自分のやりたい言語の延長からフレームワークを選ぶのも手
最後になりましたが、結局はどのプログラミング言語も一長一短です。
そもそもプログラミング言語は制御構文、つまり、
・条件分岐(IF / Switch ...)
・繰り返し(For / Foreach / While ...)
・例外
の3大要素から成り立っています。
どの言語でも構いませんので、まず1つの言語を選んで、上記3つの構文が使いこなせるようになったら、次の言語を学ぶと習得が速いと思います。
この記事が気に入ったらサポートをしてみませんか?