Rubyのフレームワークと言えば、Ruby on Railsだ。
ほとんどイコールで語られることが多いが、実は他にもRubyフレームワークはある。用途によって使い分けるためにも、知っておくことは有用だ。
このページでは、Rubyのフレームワークをまとめてみた。参考にしてほしい。
Rubyフレームワーク6選
Ruby on Rails
Ruby on Railsとは?
Rubyのフレームワークにおいて最も有名なものとは何かと言えば、このRuby on railsだ。Rubyの進化の歴史は、このRuby on railsと共にあったと言っても言い過ぎではない。
Ruby on RailsはRubyという言語が多くのプログラマーに愛されるようになったきっかけを作ったフレームワークだからだ。
当初Rubyはどこにでもあるプログラミング言語のひとつとして扱われていた。だが、Railsという非常に簡単にWebアプリケーションを作ることができるフレームワークが作られたことをきっかけに、プログラマーに圧倒的な指示を受けて活発に使われるようになった。
現在では、日本の多くスタートアップが自分たちのWebアプリケーションの開発の為に導入するフレームワークの第一候補になっている。PHPだとCakePHPやSymfony系、Laravel、CodeIgniterなど様々なフレームワークがあり選ぶのにも悩む。しかしRailsは一強なので、すぐに決断ができる。情報量も豊富だ。
また、比較的簡単なので、スタートアップが選択しやすいのだろう。
現状はPHPのフレームワークであるLaravelとJavaのフレームワークであるSpringが勢いがある。若干Railsの勢いは落ちてきている。
しかし、GitHub、Airbnb、Twitch、SoundCloud、Hulu、Basecampと言った多くの企業が採用している優秀なフレームワークだ。
Rubyを使って最速でアプリケーション開発したいのなら、Ruby on Railsを選択することをおすすめする。
Ruby on railsの原則
Ruby on Railsでは、多くのプログラマーがより素早く、カンタンにサービスを開発できるように作られた。と考えられた結果として開発されたため、以下のふたつの大原則がある。
DRY(Don't Repeat Yourself)
「同じことを繰り返さない」ということを意味している。同じコードや似たようなコードを何度も書くのは、効率が悪いし、変更に弱い為やめるべきだという発想だ。
誰しもが理解できる拡張性の高いコードも同じようにDRYなコード記述によって生まれる。これが原則になっている。
COC(Convention Over Configuration)
これは、プログラマーの意思よりも「規約(決められたルール)を優先する」ということを意味している。Railsはどんな風にアプリケーションを開発することが最善の方法がであるかを、ある程度事前に決めてくれている。
これが「規約」であり、この規約を守り抜くことを前提としてフレームワークが構築されている。規約というレールに乗ることで、最速でアプリケーション開発を行うことができるようになる。初心者の方にとっては有益だろう。
反対に、より自由度の高いプログラミングを組みたいベテランエンジニアはRailsを選ぶよりも、PHPやPythonなどで書いたほうがいい。
初心者の方はhttp://railsguides.jp/ というサイトがRuby on Railsを学習する上で良いので紹介しておく。
また、英語になるがこちらの https://www.codecademy.com/learn/learn-rails というサイトもRubyやRuby on Railsを直感的に学習することが出来る。
Sinatra
出典:Sinatra
Sinatraとは?
Sinatraも、Rubyで記述されているオープンソースのWebフレームワークだ。このRubyフレームワークは最も少ないコードの記述でアプリケーションを開発するために作られている。
非常に手軽で学習コストも低い。Webアプリケーションとは?を理解する為には使い勝手のいいフレームワークになっている。
とにかく単純なものに使うのをオススメする。例えば数ファイルで終わるコードなどだ。YouTubeのあるチャンネルを自動再生し続けるサイトなど。
反面、複雑なサイトには向いていない。RailsかPadrinoを使ったほうがいいだろう。
軽いフレームワークを勉強してみたいというときには使ってみるときっと楽しいはずだ。
cuba microframework
Cubaとは?
Cubaというフレームワークもある。シンプルで素敵なデザインのホームページからも察することができるが、シンプルで軽量なフレームワークだ。
サイトのトップには、“Ceci n’est pas un framework”と書かれている。これには、Cubaはフレームワークではない。という意味だ。
本来的にはCubaはRubyのフレームワークなのだが、余りにも機能を最小化したためにマイクロフレームワークという位置付けで呼ばれている。
Cubaの製作者の哲学として、「フレームワークではない」と主張している。
Cubaを開発したマイケル・マーティン氏はミニマリストだ。「小さく」「軽量」「早い(実行速度)」というは良いことだ、という考えを持っておられる。
この哲学観を反映したのがCubaというフレームワークだ。その他のフレームワークよりもシンプルな構造であり、軽量であり、実行速度は速い。
そのため、とても軽量なアプリケーションを開発したい考えるなら、Cubaがおすすめだ。
Ramaze
出典:Ramaze
Ramazeとは?
RamazeはシンプルなRubyフレームワークだ。「ラマゼ」と読む。
Ramazeは、KISSの原則(Keep it simple, stupid/シンプルにしろ!)やPoLSの法則(Principle of least surprise/驚き最小の法則)などの法則というか概念を取り入れたフレームワークだ。
プログラミングをしていく上で複雑なコードを書かずにアプリケーションを開発していくことが可能になるように、構築している。また、Rubyの書き方を極力そのまま使えるように作成されている。
こちらもSinatoraと同様に、自由度の高さに重きをおいたフレームワークだ。
カンタンに、シンプルにまずはアプリケーション開発をしたいと考えているなら、Ramazeはおすすめだ。
HANAMI
出典:HANAMI
HANAMIとは?
HANAMIとはRubyのMVCフレームワークであり、その他のフレームワークよりも優れている理由として以下の点がある。
Lightweight(とても軽いコード量)
HANAMIで使うべきコードはその他のフレームワークと比較すると「短く」書ける。そのため従来よりも素早くWebアプリケーションを開発することができる。
また、豊富なモジュールやライブラリを事前に用意してくれているため、安心してプログラミングをしていくことが可能だ。
Thread safe(アクセス過多を防ぐ)
多くのユーザーから1度の多くのアクセスが起きてしまうと、どうしてもサーバーがダウンしてしまうことがある。
だが、HANAMIではこの多くのアクセスに対する対策として「スレッドセーフ」という機能を事前に準備しているのだ安心だ。
- Rails:オールインワンパッケージ
- Sinatra:シンプルで軽量
- Hanami:スケーラブル
このような形でとらえておけばいいだろう。
Padrino
出典:Padrino
Padrinoとは?
Padrinoとは、SinatraというRubyフレームワークとライブラリを土台の新たに設計されたフレームワークだ。Railsの次の選択肢としてよく挙がる。
Sinatraでは実現出来なかった機能群を、Padrinoでは行えるようにしている。Sinatraはその他のRubyフレームワークと比較しても軽量なコード記述を基本としている。PardinoはSinatraの機能追加versionだ。
例えば次のような機能がある。
- メールを配信するための基本テンプレート
- 言語をその国々の言語に対応させる機能である国際化機能
- Ruby on Railsを模したMVC機能
- 各種のコードが正しく機能しているかどうかのテストツール
これらの機能はRuby on Railsでは当たり前に実装されている機能だ。しかし、Sinatraの場合は存在していなかった。多くのユーザーの要望に応えるためにPadrinoで新たに追加したのだ。
ここまでできてしまうとPadrinoではなくRailsを使えばいいのでは?と思う部分もあるが、軽量なフレームワークで開発をしたいときには候補として導入を検討してもいいだろう。
まとめ
このページではRubyのフレームワークをまとめてご紹介した。Rails以外にも有用なフレームワークがあることをご理解いただけただろうか?
Ruby = Railsではなく、ぜひ用途によって使い分けてほしい。
PadrinoではなくRubyを使えばいいのでは? って部分
PadrinoではなくRailsを使えばいいのでは? の間違いかな
ご指摘いただきありがとうございます。
こちら、修正させていただきました。
引き続き、ご愛読のほどよろしくお願いいたします。