見出し画像

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つの構文が使いこなせるようになったら、次の言語を学ぶと習得が速いと思います。

この記事が気に入ったらサポートをしてみませんか?