FuchiAz
カワウソくん
はじめに
プログラミングを学び始めたばかりの人でも聞いたことがあるのではないでしょうか。Rubyというプログラミング言語があります。
しかしよく似たRuby on Railsというものもよく聞きます。
これらは何が違うのでしょうか?
今回はそれをテーマにプログラミング初心者を対象とした記事にします。
(厳密さよりもわかりやすさを重要視します)
Ruby
Rubyはプログラミング言語
『Ruby』というのは『プログラミング言語』です。日本人の『まつもとゆきひろ(通称 Matz)』さんによって開発された言語です。
『ストレスなくプログラミングを楽しむこと』を目的としてつくられているだけあって、とてもわかりやすく読みやすい言語で、プログラミング初心者に向いていると言えるでしょう。
私もはじめてまともに勉強したプログラミング言語がRubyですが、とても理解しやすいと感じます。
(他の言語はやってないので比較してどうだとは言えないのですが……)
RubyはTwitterやクックパッド、食べログ、Githubなどの有名サイトで活用されています。
Ruby on Rails
RailsはRubyのフレームワーク
Ruby on RailsはよくRailsと略されます。
略す…ということばが妥当なのかはわかりませんが…w
とりあえずRailsといったらRuby on Railsのことだと思って構いません。
先ほどのRubyはプログラミング言語でしたが、RailsはRubyで構築されたWebアプリケーション開発のための『フレームワーク』であって、言語ではありません。
フレームワーク、という用語自体に馴染みがないかもしれませんね。
フレームワークはよく基本構造を提供してくれる骨格のようなものだといわれます。
…うーん、これもいまいち分かりづらいですね。
フレームワークってなんやねん
先ほどはフレームワークのことを骨格と言い換えました。
個人的にはどちらかというと
- ルールや作法(マナー)を定めているもの
- 便利なツール群
こんなイメージがあります。
Railsにはいろんなルールがあります。意味はわからなくていいですが、例えばモデル名は単数形にしなさい、みたいな命名の仕方もきっちり決まっています。このルールに従って記述していくことで、何も言わなくてもRailを知っているだれもがこのルールの前提でコードを読めるし、書いていけます。
そのため、いちいち細かいことを打ち合わせしなくとも、Railsのルールをしっかりおさえておけば、それを共通認識として開発していくことができるわけです。そうするとムダもないしよりわかりやすいですよね。
他にも、『rails g scaffold』という魔法のコマンドがあります。
なんとこのコマンドを入力するだけで記事の作成、編集、削除ができるWebアプリケーションが完成します。
これぞまさに『骨格』ですね。こうして生まれた骨格を改造していくだけでも立派な自分だけのWebアプリケーションが生まれるでしょう。
『便利なツール群』といったのはこういうところです。Railsにはあらかじめよく使われる処理が準備されており、『こう書いてくれたらこういう処理ができるよ~』みたいな機能が山のようにあるのです。なのでその書き方さえ覚えてしまえば、基本的な処理は自分で書かなくてもいろんなことが簡単に実装できます。
Rubyにはgem(じぇむ)と言われる『機能の拡張ツール』があります。
たとえばログイン機能を搭載したければ『device』という名前のgemを追加してやって、そのドキュメント(説明書)のとおりに書いてやれば難しいことをしなくてもログイン機能が追加できます。ページネーションを搭載したければ『kaminari』という名前のgemを追加してそのドキュ(略)
このようによく使われる大体の機能は自分でウーンと悩まなくても、超便利なツールがたくさんあるわけです。我々は誰かが作ったそのgemと言われる便利機能をありがたやありがたや、と言いながらその製作者の書いたルールに従って記述してやれば実装できるんです。すごくラクじゃないですか?
なんでいきなりgemの説明を始めたかと言うとRailsもこのgemの1つなワケです。巨大な機能拡張ツールです。めっちゃ巨大で、めっちゃ便利だからみんな使ってる、そんなカンジですね。
RailsはRubyという言語を使ってWebアプリケーションを作るときに大活躍する便利ツールでありルールブック、こんなイメージでどうでしょう?
カワウソくん
Rubyという言語をつかってWebアプリケーションを作るときにつかわれる便利なツール、機能群がRailsなんだね。
FuchiAz
まとめ
- 『Ruby』はプログラミング言語そのものである。
- 『Ruby on Rails』は『Ruby』を使ってWebアプリケーションを作るときにとても役に立つ骨格。ルールブックであって、便利機能群であるともいえる。
コメントを残す