はじめに
この記事はruby on railsを学び始めた初学者の方向けの記事となっております。
rubyやruby on railsは、初学者の方や、プログラミングをほとんど知らない人でも、全く聞いたことのない人はいないんじゃないかというくらい、日本では、いや、全世界でも有名なプログラミング言語です。
ですが、この違いについてハッキリと自信を持って答えられる初学者の方はそう多くはないのではないでしょうか。
今回は、この違いや、知っておくと学習に役立つ知識をわかりやすく解説していきます。
rubyとruby on railsの違いとは
後ほどきちんと開設するので超簡単に言うと、
・ruby → プログラミング言語
・ruby on rails → フレームワーク
です。
rubyとは
rubyは1995年に一般公開されており、制作者は「まつもとゆきひろ」氏です。世界中に熱心なrubyプログラマーもいる人気プログラミング言語の1つです。
オブジェクト指向プログラミング言語というものに分類されます。
オブジェクト指向スクリプト言語と聞くと難しく感じますが、rubyやJavaScript, Python, PHPといった、プログラミング初心者でも聞いたことのあるような有名な言語がここに分類されます。
ここでオブジェクト指向とスクリプト言語に分けて簡単に解説しておきます。
・オブジェクト指向
「ある役割を持ったモノ」ごとにクラスを分割し、モノとモノの関係性を定義することでシステムを作り上げるシステム構築の考え方
・スクリプト言語
アプリケーションソフトウェアを作成するためのプログラミング言語であり、コードの読み書きが比較的簡単で、実用性に優れている
プログラムの表現方法
ここで直接ruby on railsには関係ありませんが、前提として知っておくと便利な情報を記載しておきます。
プログラミング型 | 方法 | 例 |
---|---|---|
オブジェクト指向プログラミング | 「モノ」を組み立てるように表現してプログラムを実行する方法 | Java, PHP, PythonなどのWEBアプリ開発で使用される言語 |
手続き型プログラミング | プログラムを上から順に実行する方法 | COBOL, PL/1などの大型コンピュータで開発する、金融機関や政府機関で使用されるシステムの開発に使われる言語 |
関数型プログラミング | 関数の組み合わせによってプログラムを組み立てるように表現する方法 | Haskell, OCamlなどの金融機関やセキュリティ関係、研究施設などの、データ解析などをするのに使用される言語 |
オブジェクト指向とは
・クラス(設計書)
・メソッド(処理)
・インスタンス(完成形)
この3つを組み立てて表現する方法です。
料理をするときに
①レシピを作成する(クラス)
②レシピ通りに具材を切ったり加熱したりする(メソッド)
③完成する(インスタンス)
という流れで考えるとわかりやすいでしょうか。
実際にrubyのコードに落とし込んでみると、
class Recipe # Recipeはクラス名
def new # newはメソッド名
@recipe = Recipe.new # @recipeはインスタンス名
end
end
こんな感じです。
つまり、ruby on railsでいうコントローラーに書いてあることこそがオブジェクト指向と言っても過言ではないのではないでしょうか。
ruby on railsとは
ruby on railsはrubyのフレームワークです。
フレームワークとは、WEBアプリケーションを開発する際に不可欠な機能のベース(土台)をまとめたものです。
ruby on railsで使われているフレームワークはMVCフレームワークというものです。
・M → モデル
・V → ビュー
・C → コントローラー
となります。
具体的にどういう動きをしているかというと、
コントローラー → ビュー
↓↑
モデル
↓↑
データベース
という感じです。
モデルとビューを繋ぐ役割があるのがコントローラーですね。
ruby on railsを使用する場合は、
モデルファイル、コントローラー、ビューファイルにそれぞれ記述していることを、
rubyを使用する場合は、すべて1つのファイルに記述しなければなりません。
そうすると1つのファイルあたりのコードの量が膨大になってしまうので、フレームワークを使った方が綺麗に書けるということですね。
まとめ
rubyとruby on railsの違いは、
rubyはプログラミング言語であり、ruby on railsはrubyを使いやすくするためのフレームワークであるということです。
お願い
最後までお読みいただきありがとうございました。
本記事は、ruby on rrailsを学び始めて数か月で執筆しております。
私のためにも、今後この記事を読む可能性のある初学者の方のためにも、間違っている情報や解釈等ございましたらご指摘いただけると幸いでございます。
お手数おかけしますが、よろしくお願いいたします。