DIVE INTO CODE

2019年05月29日

RubyのフレームワークはRuby on RailsとSinatraを押さえよう!

Aws4 request&x amz signedheaders=host&x amz signature=5f411c9d62f54ac6395a0a85fd2a5a9ffe12a28c853cd4fa75d768338c66cf0c

Rubyのフレームワークにはいくつかの種類があります。今回は、プログラミングスクール講師の視点から、押さえておくべき2種類のフレームワーク「Ruby on Rails」と「Sinatra」についてお話していきます。

【こんな方におすすめ】
・どのRubyのフレームワークを使うべきか迷っている方
・Ruby on RailsとSinatraについて勉強している方
・Ruby on RailsとSinatraそれぞれの特徴や使われ方を知りたい方

【目次】
1.Rubyで押さえておくべき2つのフレームワーク
 ・押さえておくべきはRuby on RailsとSinatra
 ・業務用・商用システムはRuby on Railsが多勢を占める
2.スクール講師が考えるSinatraとRuby on Railsの学び順
3.各フレームワークの「開発への力の入れ具合」
4.まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

Rubyで押さえておくべき2つのフレームワーク

押さえておくべきはRuby on RailsとSinatra

今回は、いくつかあるRubyのフレームワークのうち「Ruby on Rails」「Sinatra」の2つに特化してお話します。

うんうん。

フレームワークっていくつもあるんですけど、Webアプリケーションのフレームワークに限定して言えば、Rubyで押さえておくべきなのはこの2つです。他にもいっぱいあるんですけど、知っていてもあまり使わないし、必要であれば自分で調べてもらえれば良いと思います。

なるほど。

まずは、「Ruby on RailsとSinatraがどう違うのか?」という話を。
まずRuby on Railsは2004年に世の中に出てきたと言われています。2019年現在のバージョンは5で、次に6が出ようとしています。もうひとつ、Sinatraの登場は2007年と言われています。SinatraはRuby on Railsよりもシンプルで、余計な機能が実装されていないという特徴があります。Ruby on Railsはスポーツカーで、Sinatraは軽自動車によく例えられます。
例えば永田さん、日常の買い物に行くのにスポーツカーを使いますか?

僕は軽自動車でいいですね(笑)ということは、Ruby on Railsを使っているからといって、それだけを使い続ける必要はなくて、どちらも併用して使っても良い!ということなんですか?

そうです。自分でRubyでゼロから作りたいけどRuby on Railsほどの機能はいらない、という場合はSinatraを使えば良い、もしかしたらSinatraも使わずにRubyだけでもできるかもしれないし。用途に合わせて使い分ければ良いのです。

業務用・商用システムの開発はRuby on Railsが多勢を占める

Ruby on RailsとSinatra、どちらを使っても良いとはいっても、例えばマッチングシステムやSNS、業務用システムを作りたい場合には、大抵の場合Ruby on Railsを使った方が、機能が揃っているので便利です。ですから結果として、ビジネスで使われているのはほぼRuby on Railsというのが現状です。

え~、なるほどー。

ただし、Wikipediaなどを見てみると、Sinatraを使っている企業や団体もあるようです。例えばApple、BBC、イギリス政府、LinkedIn、Heroku、GitHub、Songbird、スタンフォード大学、レッドハットなど。おそらくすべてのサービスではなく一部で、という使われ方だと思います。

あ、そうなんですね。

スクール講師が考えるSinatraとRuby on Railsの学び順

私たちDIVE INTO CODEでは、Sinatraを教材として使っています。最初はRubyだけで何かを作り、次にWebアプリケーションの作り方を学ぶ際にSinatraから始めてもらって、その後にRuby on Railsを扱ってもらうんです。

おー。やはりSinatraはシンプルさが良いんですか?

そうです。いきなりRuby on Railsから始めてしまうと、なんでも揃ってしまっているので、フレームワークには機能が揃っているモノだと思い込んでしまうんです。それだと、それぞれの機能の「ありがたみ」が分からない。

なるほど!「ありがたみ」が。

そうです。「ありがたみ」です。Webアプリケーションの構造への理解も進まないまま、「とりあえず空いているところを埋めていけばいい」と思ってしまったり、コピペに頼りやすくなってしまう。そうならないように、あえて機能が揃っていないSinatraに触れてもらって、Webアプリケーションの構造を想像してもらいやすくしています。

それがないままRuby on Railsから入ると、いろいろいじってはみたけどよく分からない、という状態になるんですね?

そうです。だから、最初にシンプルなSinatraで学び始めるべき、と言われています。エンジニアの新人研修でもフレームワークの構造理解のためによく使われています。
ちなみに、Sinatraというのはフランク・シナトラに由来しているそうですよ。きっと、開発者の方が好きだったんでしょうね(笑)

へえー。名前の付け方も独特なんですね(笑)フレームワークは「あるものをとりあえず使ってみよう」ではなく、「目的を明確にしてやりましょう」ということですね。

そのようなイメージです。Ruby on Railsの方は「レールに乗っ取って書けるようにしよう」という考え方に乗っ取って名付けられています。Sinatraという名前も「楽しもう」という思いも込めて音楽アーティストの名前が付けられているんでしょう。

ビジネスの場でガンガン使われるRuby on Railsと、シンプルさが売りのSinatra

最後に、各フレームワークの「開発への力のい入れ具合」についても触れておきましょう。開発の「コミット数」というデータを見ると、フレームワークがどのくらい改修されてきたのかが分かります。Ruby on Railsは72,700コミットであるのに対して、Sinatraは4,000です。「最後にコミットされた時期」も見てみると、Ruby on Railsは「6時間前」であるのに対して、Sinatraは「4月8日」となっています。

Sinatraはだいぶ前なんですね。シンプルさが売りだからですか?

そうです。Sinatraはビジネスの場でガンガン使われるものではないけれど、先述のとおり一部では使われていて、シンプルがゆえに不具合や複雑性が少ないために、コミットがあまり多くないんだと言えるでしょう。

なるほどー。

今回のお話は以上です。Ruby on RailsとSinatra、これら2つのフレームワークを押さえておけば十分です!

まとめ

・Rubyのフレームワークで押さえておくべきはRuby on RailsとSinatra
・業務用・商用Webアプリケーションの開発はRuby on Railsが多勢を占める
・Webアプリケーションの作り方を学ぶ際にはSinatraから始めるべき

いくつかあるRubyのフレームワークでの中でも、特に押さえておくべきはRuby on RailsとSinatraの2種類。特にRuby on Railsは機能が揃っているので、業務用や商用のWebアプリケーションの開発にも多く使われています。

ただし、Ruby on Railsは機能が揃っている分、Webアプリケーションについて学ぶにはやや物足りません。フレームワークやWebアプリケーションの構造を理解するには、Sinatraから学び始めるのが定石と言えるでしょう。

DIVE INTO CODEのことをもっと知ってみませんか?