【入門】Rubyとは?国産プログラミング言語Rubyの特徴やRails,Gemも解説
公開日:2019.09.27 最終更新日:2020.09.25
スキルアップ

Web開発で人気のあるオブジェクト指向言語「Ruby(ルビー)」は、初めてプログラミング言語に触れる初心者でも習得しやすい言語です。
また専用のフレームワークである「Ruby on Rails(ルビー オン レイルズ)」や、簡単にRuby用のライブラリをインストール、アンインストールすることが可能なパッケージ管理ツール「Gem(ジェム)」が揃っているため、エンジニアの習熟度に大きく左右されない安定した開発ができる言語です。
ここではRubyに初めて触れる方に向けて、Rubyについて開発環境の整え方や最初のプログラムをご紹介します。
Rubyとは?

Rubyは1995年に日本人エンジニアである「Matz」こと、まつもとゆきひろ氏が開発したオブジェクト指向スクリプト言語であり、国産のプログラミング言語としては日本で初めて国際電気標準会議(IEC)で国際規格に認証された言語です。
なおオブジェクト指向言語とは、処理の流れを中心に開発するのではなく、データを中心に開発するオブジェクト指向プログラミングのスタイルに言語として対応し、カプセル化、多態性、形象化などの原則を抑えた言語のことです。
可読性を重視した構文の構造をしており、「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである(enjoy programming)」とまつもと氏が明言している通り「書いていて楽しい・気持ちいい」をコンセプトに、柔軟性に富んだ自然な言語としてデザインされています。
競合言語としてはPython(パイソン)が挙げられます。「MatzがPythonに満足していればRubyは生まれなかったであろう」と公式の用語集で言及されており、実際に開発の現場ではPythonと競合する立ち位置にある言語ともいえます。
Rubyの特徴
Rubyの特徴としては、整数や文字列なども含め、データ型すべてがオブジェクトであり、純粋なオブジェクト指向言語になっている点が挙げられます。
また後述するRuby on Railsと呼ばれる有名フレームワークを使った開発が行えることや、便利なパッケージ管理システムであるGemが使えることもRubyの特徴といえます。
そのほかRubyには、未経験にもやさしいという特徴もあります。Rubyの場合、開発で最も選択されるフレームワークがRuby on Railsと決まっています。
そのため、独学でもオンラインスクールでも高確率で学ぶことになるRuby on Railsが、そのまま業務でも使用されることが多くあります。このように、Rubyは未経験からスタートする人にもやさしい言語といえます。
Rubyでなにができるのか
Rubyは、Ruby on Railsなどのフレームワークを使用して、Webサイト開発の現場で使用されるのが一般的ですが、WebAPIやスクレイピングなどのサーバサイドシステム開発で使用されることもあります。
また、Rubyでスマホアプリを開発することもできます。RubyMotion(ルビーモーション)というRubyでiOSとAndroidのモバイルアプリケーションを作れるフレームワークがあり、単なるWeb開発にとどまらない広がりを見せています。
そのほかRubyには、Gosuというゲーム開発用のライブラリやSciRubyという機械学習用のライブラリもあります。頻繁に採用されるライブラリではありませんが、ゲーム開発や機外学習などもRubyで対応することができます。
プログラミングのデビューはRubyがおすすめ
プログラミングをどの言語から始めるかは、エンジニアを目指す人にとって悩ましい問題です。言語によっては、環境構築の段階で挫折してしまうこともあります。そこで、初めてプログラミングをする人にRubyをおすすめする理由を説明します。
Ruby on Railsがある
Ruby on Rails(通称Rails)は、「Rubyといえばこれ!」というほどメジャーなもので、SNSなどのWebサイトからゲームや業務システムなど様々な場所で利用できる万能な「フレームワーク」です。このフレームワークを使えばアプリケーションを作る際に毎回必要な記述を省略することができ、開発者は必要最低限のプログラミングだけで済みます。そのため、Ruby on Railsを利用することで初心者でも簡単に開発を進めることができるのです。
Gemが便利
GemはRuby用のサードパーティ製ライブラリで、Ruby用のパッケージ管理ツールです。RubyGems.orgにまとめられており、RubyGemsを用いて必要なGemをインストールすることで、簡単に多彩なライブラリを活用できます。
日本語で提供される情報が豊富
純国産プログラミング言語であるため、最新の情報を日本語で簡単に参照できます。豊富な情報の中から欲しい情報が手に入りやすく、マニュアルも充実しているので初心者におすすめです。
続いて、Ruby on RailsとGemについて、さらに詳しくご紹介していきます。
Rubyのフレームワークといえばこれ! Ruby on Rails
Ruby on RailsはRubyのフレームワーク
そもそもフレームワークとは、あらかじめプログラミング時に使用するパーツがたくさん用意されており、これらのパーツを組み合わせることでゼロから開発する部分を減らし、プログラミングを簡易化して生産性とメンテナンス性を向上させることができる、非常に便利なものです。開発にフレームワークを用いることで、設計者や製作者の習熟度があまり高くなくても、ある程度の品質を維持しながら、開発の時間を短縮できます。
他にもRuby用フレームワークは存在しますが、開発現場で一番メジャーなのはRuby on Railsでしょう。
Ruby on Railsの基本理念
Ruby on Railsの基本理念は「同じことを繰り返すな - DRY(Don't Repeat Yourself)」と「設定より規約を優先する - Convention Over Configuration(CoC)」の2つです。
DRY(ドライ)
DRYは「重複するソースコードをできるだけ書かない」ということで、プログラムコードの保守性やバグの低減を目的としています。たとえば、あるファイルで記述した関数Aとほとんど同じものを別のファイルで関数Bとして記述していた場合、関数Aの修正が必要な際は、関数Bも合わせて行う必要があります。こうしたことが頻発してしまうと、プログラムコードの保守性が悪化し、修正もれによるバグの混入が起こる可能性があるため、DRYは非常に重要なのです。
CoC(シーオーシー)
CoCは、規約に則ってプログラミングすることにより、設定が必要な項目を減らすことを目的としています。従来は設定を記述することで対応していた部分を、Ruby on Railsなら規約に合わせるだけで自動化できるようになります。
たとえばModel名をTestとした場合、testsという複数形でデータベースのテーブル名を作成しておくと、自動で連結してくれるといった規約があります。
活発にアップデートされているオープンソースである
Ruby on Railsはオープンソースのため、無料で使用可能です。ライセンスとしてはMITというオープンソースでよく使用されるものになっており、著作権表示とMITライセンスの全文を記載するという条件だけで、改変、再配布、商用利用なども可能になります。
また、オープンソースの場合、更新が途絶えてしまうとバグが見つかっても修正されないため、使い続けることが困難です。その点、Ruby on Railsの場合しっかりとしたRubyコミュニティによってフレームワークのアップデートが行われているので、安心して使えます。
MVCの構造で開発できる
Ruby on Railsを使ったアプリケーションを開発する場合、MVC(Model:モデル/View:ビュー/Controller:コントローラーの頭文字)パターンを用いることが多く、Ruby on Rails の設計もそれに則したものになっています。
MVCは、データを扱うModel、ユーザーに見える結果を作るView、ユーザーからの要求を処理してModelやViewと連携を行うControllerの3つに分割して作りあげるもので、Webシステム開発で頻繁に利用されるパターンの一つです。
Ruby on Railsは、このMVCモデルを利用して開発を行うことが多く、一度構造を覚えてしまえば他のプロジェクトでも使いまわせるというメリットがあります。逆にRuby on Rails の経験者であれば、MVC構造を理解しているためリソース確保が容易ということで、開発の際にMVC以外を選択することが少なくなっているともいえます。
パッケージ管理はこれ!RubyGems
RubyGemsはRuby専用のパッケージングシステムで、ライブラリの作成や公開、インストールを助けるシステムです。バージョン1.9以降で標準添付になりましたが、それ以前のバージョンの場合、手動でインストールする必要があります。
パッケージ管理ツールGemのおかげで、Ruby用ライブラリのインストール、アンインストール、バージョン管理を、依存関係も自動的に解決しながらコマンドで簡単に実行することができます。
簡単な使い方
RubyGemがもしインストールがされていない場合、公式サイトよりダウンロードしてインストールしてください。
インストールが完了したら、早速Gemのライブラリを探し、例としてHTMLにまつわるものを検索するコマンドを記述してみましょう。
なお基本的に操作はすべてコマンドプロンプトから行います。

$ gem search -r html
インストールしたいライブラリを見つけたら、インストールコマンドを実行します。一例として、Ruby on Railsであれば次のようになります。

$ gem install rails
このように、一度インストールしてしまえば、非常に簡単にRubyのライブラリを検索、インストールが可能になります。
【インストール】Rubyの開発環境を整えよう!
ここからは実際にRubyを触っていきます。
まずはRubyの開発環境を構築します。
Windows
Windowsは標準ではRubyがインストールされていません。簡単にRubyをデスクトップにインストールし、ローカル環境を構築することができる「RubyInstaller」を使用してインストール作業を進めていきます。
RubyInstallerの公式ダウンロードページからインストーラをダウンロードします。2019年8月時点ではRuby+Devkit 2.6.3-1(x64)が最新のものになります。
インストーラを実行し、『I accept License』にチェックを入れ、あとは画面の指示に従って作業をすすめるとインストールが完了します。
次にMSYS2のセットアップを行います。
RubyのGemを利用する場合に必要となるもので、MSYS2 base installation、MSYS2 system update(optional)、MSYS2 and MINGW development toolchainのすべてを順番にインストールしていきます。
最後にコマンドプロンプトで

$ ruby -v
を実行しRubyのバージョンを確認してインストール作業は完了です。
Mac
Macには標準でRubyがインストールされていますが、バージョンが最新とは限りません。しかし、直接書き換えると問題が発生することもあるため、バージョンを切り替えて環境を別途用意するよう構築していきます。この場合、バージョンを切り替える「rbenv(アールビーエンヴ)」というアプリケーションを使うため、「Homebrew(ホームブルー)」を使用してインストール作業を進めていきます。
「Xcode(エックスコード)」を起動し、HomebrewのWebサイトに掲載されているコマンドでインストールを行います。
次に、Homebrewを使用して次のコマンドでrbenvをインストールします。

brew update
brew install rbenv ruby-build
echo 'eval ""$(rbenv init -)""' >> ~/.bash_profile
source ~/.bash_profile
続いてrbenvでRubyをインストールします。コマンド内のバージョンは適宜最新のものを適用してください。

rbenv install 2.6.3
インストールされているRubyの一覧を表示します。

rbenv versions
rbenvを再読み込みします。

rbenv rehash
Rubyのバージョンを変更します。

rbenv global 2.6.3
これで環境の構築は完了です。
Rubyを書いてみよう!
環境設定が完了したところで、実際にRubyを書いてみましょう。
定番の Hello world
まずは定番のHello worldを実行してみましょう。テキストファイルに次のコードをコピーし、hello.rbと名前を付けてデスクトップに保存します。

puts "Hello world"
puts は出力のコマンド。出力内容は "Hello world" となります。
そしてこのファイルをWindowsならコマンドプロンプト、Macならターミナルを起動して実行します。
Windows
ruby hello.rbと入力し、エンター。
Mac
cd desktopと入力し、エンター。
次にruby hello.rbと入力し、エンターを押します。
Hello worldと画面に表示されれば成功です。
if文を使った条件分岐
次はif文を使った簡単な条件分岐のサンプルを実行してみましょう。

if ARGV[0] == "good" then
p "This is good"
else
p "This is bad"
end
文字を出力する「puts」は「p」に省略が可能です。
この命令文の場合、goodと入力されると「This is good」、それ以外は「This is bad」と表示されます。
Hello worldと同様にテキストファイルにコピーペーストし、ruby.rbと名前を付けて保存します。
実行の際はターミナルまたはコマンドプロンプトで次のように入力します。「This is good」と表示されれば成功です。

$ ruby.rb good
Rubyの学習法
Rubyの学習法には大きく2つあります。1つはWebの情報などを元に独学する方法と、オンラインスクールに通う方法です。
独学で学習する
国産の言語であるRubyは日本語の参考書も多くでており、独学で必要な情報は豊富に手に入れることができます。また、多くのレンタルサーバではデフォルトでインストールされており、簡単なものを作ってみようと思い立ったら、すぐに開発することができます。
また、無料で視聴できる動画サイトなどでもRubyは扱われていることが多く、他の言語と比較してRubyは、独学で学びやすい言語といえます。
オンラインスクールに通う
オンラインスクールで学ぶのもよいでしょう。多くのスクールでRubyが扱われているため、選択肢は豊富にあります。また、スクールではメンターや先生など、行き詰ったときに気軽に相談できる人がいるため、モチベーションの維持や成長速度といった点では独学よりも効率的です。
Rubyの知識を活かして派遣として働く
Rubyは習得しやすく、日本語の情報が充実している言語です。趣味でRubyを扱い、レベルの高いアプリケーションを公開している人も少なくありません。
しかし、個人的な開発では実務経験とはいえず、就職に活かせない場合もあります。そんな方でも、AKKODiSの派遣・紹介予定派遣ならRubyの実務経験がなくとも知識があればご紹介可能な求人が多くあります。一度現場で実務経験を付けた上でキャリアアップ転職を目指すのも、一つのキャリアプランになるでしょう。
Rubyで楽しいプログラミングライフを!

Rubyは設計コンセプトから「書いていて楽しい言語」といわれています。
Ruby on Railsを始めとした有名なフレームワークも整備され、日本語のコミュニティが活発で情報が豊富なため、初心者でも始めやすい言語といえます。
また、RubyにはRuby技術者認定試験(Ruby Programmer Gold、Ruby Programmer Silver)というRuby公式の資格が存在します。Rubyエンジニアとしてランクアップするためにも、資格取得を目指してみてはいかがでしょうか。
(2020年9月現在)