今日は"簡単なアプリ"を作りたいと思います!
って意気込んだものの、根本的な疑問がでできてしまいました
そもそも、Rubyを使ってウェブアプリケーションを作成するけど・・・
→Rubyだけでは膨大な量のコードの記述が必要なため、時間も手間もかかって大変
そんな時に併用するのといいのが「ライブラリ」ですよね!
ライブラリってなにかな
プログラミング言語の機能を追加できるツールのこと
→言語を増やせば、よりアプリ作成の手間を省くことができるんだってさ!
ここでよく目にする「Gem」が登場するわけだけど・・・
Gemってなんだっけ?
Ruby専用のライブラリ、つまりRubyに言語機能を追加できるツールのこと
→Gemによって機能が異なるから、欲しい機能を備え持つGemをインストールして作業の効率を上げるよ!
例) Ruby on Rails , bundler , Devise , Sinatra …
ここまでは復習できたけど、私「Sinatra」って初めて聞いたかも
よし、今日はアプリを作る前にこのSinatraについて調べてみようかな!
ということで、ここではSinatraについてまとめる上で、Railsとの違いを紐解いていきます。
話をちょっと戻して、
さっき“欲しい機能を備え持つGemをインストールする”って言ってたけど、
つまり「Sinatra」と「Rails」には異なる機能(性格)が備わっているわけで、それぞれの違いってなんだろう?
よし、Sinatraさんに直接聞いてみよう.
———————————————————————————————————————————
[ Sinatraさんの自己紹介 ]
こんにちは、僕の名前はSinatra(シナトラ)です
いつもRailsくんの陰に隠れて存在感ちょい薄いかもしれないけど、割と活躍できるんですよ!
そもそもRailsくんって、機能は豊富かもしれないけどその分ルールも多くない?
なんかちょっとでもルールに反することするとすぐ指摘(エラー)してくるし、僕ちょっと仲良くなれないんだよね・・・
だからRailsくんのことは皮肉も込めて「フルスタックフレームワーク」なんて呼び方もしてるよ!
じゃあ僕はっていうとね、すっごい単純な性格だよ
ルールだって少ないし、単純な記述だけで簡単に使用できるってことが売りだからね。
だから僕は「軽量フレームワーク」なんて呼び方されてるよ。
でももちろん、こんな僕にだって欠点はあるんだよね・・・
ぶっちゃけ記述は簡単だけどその分コード量は多くなっちゃうし、Railsくんほどできること多くないから複雑なアプリ開発の時はNG出してるんだ。
それに悔しいけどまだまだ認知度も低くて、Railsくんたちみたいに使い方に関するマニュアルが少ないんだ、これ最近の僕の悩み。
だからみんなのこと行き詰まらせちゃうこともあるの、ごめんね・・・
だけど最後に自慢させて欲しいんだ
僕のこと、あの「Apple」とか「BBC」、「Heroku」みたいな大手企業さんもアプリ開発の時に呼んでくれたんだよ!これってすごくない!?
それにこんな僕だからこそ、プログラミング初心者さんからの人気はあるから、僕も期待に応えられるよう頑張ってるんだ。
つまりみんなは僕のことを呼んでくれれば、ウェブアプリケーションの仕組みについて1から丁寧に学ぶことができるよ!
ぜひ、僕のこと必要な時には呼んでね!
使い方とか、もっと詳しいことはその時説明するから
———————————————————————————————————————————
なるほど〜Sinatraさんにもこんなに魅力があるのか!
まとめるとこんな感じかな。
Rails
・機能が豊富
・コード量も少ない
・複雑なアプリにも対応
・その分ルールが多く難しい
Sinatra
・機能は少ない
・コード量は多い
・シンプルなアプリに対応
・その分簡単で分かりやすいから初心者向け
私は今回どっちを使うべきかな・・・
”簡単なアプリ”だから、Sinatraを学習して使ってみようかな