これからプログラミングを勉強しようとしている人が最初に悩むポイントが、
「どの言語を学べばよいか」という判断をすることですね。
プログラミング言語には色々な種類があり、それぞれ異なる特徴を持ちます。
数多くあるプログラミング言語の中で、Rubyという言語は日本だけではなく
世界中で人気ランキングの上位に位置する言語であるため、
最初のプログラミング言語としてRubyを選択する人も多いです。
Rubyは他の言語に比べて何が良いのか?
Ruby on Railsという言葉もよく聞くけど、これはそもそも何なのか?
本記事では、このような疑問を初心者の方でも理解しやすいようにできる限り易しい言葉を使って説明していきます。
Rubyとは
Rubyはプログラミング言語のうちの1つです。Rubyを使うことでWebサービス等が作れるようになります。
iPhoneアプリやAndroidアプリの開発にRubyを使うことはほとんどありませんが、
iPhoneアプリやAndroidアプリをサーバーサイドと連携する時にはRubyを使うことができます。
この言語は日本人のまつもとゆきひろ氏によって開発されました。少しむずかしい言葉になりますが、
「オブジェクト指向スクリプト言語」というジャンルに該当します。
初心者の方には難しい言葉だと思うので、「へー、そうなんだ」くらいで今の時点では大丈夫です。
もちろんこの言語はWindowsでもLinux(Macなど)でもどちらでも使うことができます。
このRubyというプログラミング言語を使って、足し算や掛け算の計算から、データの順番の並び替え、
処理の繰り返しや条件による場合分け(条件分岐)などまで様々な処理を行うことができます。
ただし、最近バズワードとなっている「機械学習」や「ディープラーニング」をするためにRubyを使うことは現時点では少なく、
Pythonという言語を使うことが一般的とされています。
Ruby on Railsとは
Ruby on RailsはRubyのWebアプリケーションフレームワークと言われます。これだけを聞くとよくわからないと思いますが、
簡潔に言うならば「Rubyを使ってWebアプリケーションをできる限り簡単に使うためのツール」と言い換えることができます。
Webアプリケーションとは、企業のコーポレートサイトやポータルサイト、メディア系のWebサイト、
iPhoneアプリのAPI、AndroidアプリのAPIなどを指します。
ほとんどのインターネットサービスにはこのようなWebアプリケーションが土台として存在していて、
これらをプログラミング言語を使って開発するわけです。
ただ、Rubyのようなプログラミング言語はWebアプリケーションを作ることだけを目的として開発されているわけではありません。
言い換えれば、Webアプリケーション開発に最適化されていないのです。
そこでRuby on RailsのようなWebアプリケーションフレームワークを使い、
Webアプリケーション開発における開発効率を最適化するのです。
Webアプリケーションフレームワークは通称「フレームワーク」と呼ばれることが多いです。
このフレームワークはWebアプリケーション開発における効率化を実現するために様々な機能を備えています。
ただし、これはあくまでのフレームワークと呼ばれるもので、プログラミング言語ではありません。
RubyとRuby on Railsの違い
ここまでの説明を整理すると、
「Rubyはプログラミング言語、Ruby on RailsはWebアプリケーションフレームワークである」
ということになります。「Rubyを使ってWebサイトを作る時にはRuby on Railsもセットで使う」と覚えておいて良いです。
Ruby on Railsは非常に優れたフレームワークで、コマンドを1つ打てば自動的に必要なファイルが生成できたり、
データベースが作ることが出来ます。この便利さが開発者に支持されており、世界中に多くの開発者がいるのです。
例えば、Webサイトを作るときにはHTMLファイル、CSSファイル、Javascriptファイルがそれぞれ必要になりますが、Ruby on Railsを使ってWebアプリケーションを作るときには、「rails new」というコマンドを打てば、これらのファイルが自動的に生成されるようになっています。プログラマーは同じことを何度もすることを嫌います。毎回Webサイトを作る時に、その土台を構築する作業を毎回することは効率が悪いと言えます。そういった同じような作業や、ある程度共通化出来る機能はRuby on Railsというフレームワークによって効率化されているといえます。
一方、Rubyは実際にプログラム処理を行うときに活躍します。例えば、「この要素を5回連続で表示する」ことを処理したり、「ユーザーがログインしているときはこの文字を表示して、ログアウト中は表示しないようにする」ような処理をしたり、「会員登録の電話番号フォームに入力された000-1111-2222という値を、00011112222としてデータベースに保存する」といった処理などです。
このような処理は他の言語でももちろん可能です。では、Rubyをあえて選ぶメリットは何なのでしょうか?
Rubyの良いところ
1. オブジェクト指向
冒頭に述べたように、Rubyは「オブジェクト指向スクリプト言語」です。
「オブジェクト指向」とは、「システムをオブジェクト同士の相互作用とみなす考え方」のことを言います。
この説明だけでは非常に理解が難しいと思います。オブジェクトとは「モノ」と言い換えることができます。
例えば、あなたの身の回りにある机やスマートフォン、パソコン、テレビ、人、植物、ペット、乗り物など全てです。
実世界には自然とモノ(オブジェクト)が存在しているため何も疑問を持たないと思いますが、
プログラミングの世界にはもともとオブジェクトは存在しません。
そのような世界の中にオブジェクトという概念を作り出し、
全てオブジェクトとして管理していこうというのが「オブジェクト指向」なのです。
オブジェクト指向によるメリットは、全てをオブジェクトとして管理することで、
それぞれのオブジェクトがどういうものなのかということが明確になり、
それぞれのオブジェクトができること・できないことの管理が明瞭になる点にあります。
例えば、車というオブジェクトを考えると、車には長さや高さ、機能面などのスペックを持つものであることが整理されます。
また、走る・止まるなどのはたらきができるということも同時に管理できるようになります。
このような基本的な車オブジェクトを作ることで、オープンカーという車の一種であるオブジェクトを作ることが簡単になります。
オープンカーは車の仲間なので、基本的な車の機能は同様に持つことになります。
しかし、一般的な車と異なる点は、「車の上部を開くことができる」という点です。
そこで、オープンカーオブジェクトではその要素1つだけを付け足してあげて、他の基本的機能は車オブジェクトから継承するのです。
こういった整理をきちんと行うことで、プログラム全体の可読性や保守性が格段にあがります。
このような設計思想を持っている言語は、多くのプログラマーに愛されています。
2.言語設計
『開発者のまつもとゆきひろは、
「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである (enjoy programming)」
と述べている。』とWikipedia(リンク:https://ja.wikipedia.org/wiki/Ruby)にて紹介されています。
バラエティ豊富な文法表現や、まるで英語で文章を書いているように
プログラミングをすることができるような言語設計をされているのがRubyです。
プログラミングをする際には、クラスやオブジェクト、メソッドなどを頻繁に使うことになるのですが、
メソッドなどをできる限り日常の会話に近い、違和感の少ない形で使えるように言語が作られているのです。
これは初心者のみならず、コードを読む人は簡潔・効率的にコードを読むことができるというメリットがあり、
コードの書き手としても楽しくプログラムを書くことができるのです。
3.コミュニティの活発さ、開発者の多さ
プログラミングのスキルは日々研鑽する必要がありますが、そのときに大切になるのがコミュニティやソース、開発者の充実度合いです。
Rubyの開発者は日本に数多く存在し、勉強会も毎月どこかで行われていますし、
何かを調べるときには日本語でのソースなども充実しています。
開発者の多さは、そのプログラミング言語の成長にも直結します。
開発者の少なくなっていく言語は徐々に廃れていき、そのプログラミング言語を扱えることの価値が逓減していきますが、
充実したコミュニティが世界中に存在するRubyはこれからも多くの人に使い続けられることでしょう。
>>リモートワーク案件も充実!Rubyのフリーランス求人案件をクラウドワークス テックで探す
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)