目次
Rubyとは?
Ruby(ルビー)とは、日本製のプログラミング言語です。汎用性のあるプログラミング言語の中でも完成度が高く、また日本製ということもあって国内での人気は高いです。
もちろん国内のみならず、ベンチャー企業から大企業まで、世界的にもRubyを活用したソフトウェア開発は数多く行われています。
Rubyの沿革と動向
Rubyは日本人のソフトウェア技術者である「まつもとゆきひろ氏」により設計・開発され、1995年12月にリリースされました。Rubyという名称はまつもと氏の同僚の誕生日が7月であり、その7月の誕生石がルビーであったことが由来です。
また、1995年といえば「Windows 95」が発売された年でもあります。Windows 95の登場によりPCを導入する家庭が増え、人々がインターネットに触れる機会も爆発的に増加しました。
それに伴い、インターネットに対応したアプリケーションも数多く出てきました。中でもRubyはHTMLやデータベースなどとの親和性が高く、多くのエンジニアが習得するようになったのです。当時の時代の流れに、Rubyの持つプログラミング言語としての性質が合致したため、Rubyは人気を博しました。
さらに「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである」というまつもと氏が掲げた設計思想も、多くの人にRubyを認知させた大きな理由だといえます。
プログラミング言語としてのRubyについて
RubyはWebサーバーやデータベースなど、フロントエンドからの指示に応じてデータ処理を行う、バックエンドの言語です。
また、他の言語と比べて構文がシンプルかつわかりやすいことが特徴に挙げられます。前述した設計思想に基づき、オブジェクト指向のスクリプト言語として開発されているため、学びやすい言語となっています。
スクリプト言語について
スクリプト言語とは、コードの可読性が高く扱いやすいとされる言語の総称です。明確な定義がある訳ではないものの、次の特徴に当てはまる言語はスクリプト言語といえます。
- プログラミングの難易度が他の言語と比べて低い
- 開発環境の構築、実行が比較的容易である
代表的なスクリプト言語としてはRubyの他にも「Python」「PHP」「JavaScript」などが挙げられます。
オブジェクト指向について
オブジェクト指向とは、プログラムの設計や実装における考え方の一つです。開発するプログラムを「モノ(オブジェクト)」の集合体として考え、それぞれの仕組みを理解した上で組み立てます。
オブジェクト指向の説明として「車」がよく例に挙げられます。車を複数台設計する場合、エンジンやブレーキ機能、内装の部品や外装の色などを考えていきます。しかし、機能や部品は、車同士で共通している部分も多いです。
コードを書く際も同様です。共通部分があるのにも関わらず、それぞれを個別に定義してしまうと、まったく同じ内容のソースコードが散見されてしまいます。その結果として可読性が低く、作業効率の悪いものとなってしまうのです。
オブジェクト指向では、これらの機能を共通の部品として捉えて使い回すことで、作業の効率化を図ります。たとえば、外装の部品は共通として定義し、それぞれの車には外装の「色」だけを独自に実装することで、ソースコードには色の実装部分だけを新たに記述するだけで済みます。
共通部分である「親クラス」をまずは作成し、独自の機能を持つ部分だけを「親クラスの機能を継承した子クラス」として、実装していきます。
はじめのうちはイメージが湧きづらく難しいですが、オブジェクト指向で書かれたプログラムはメンテナンスがしやすいため品質が向上します。
Rubyを使うメリットとは
Rubyを使ってプログラミングを行うメリットは以下に挙げられます。
構文がシンプルのため、作業効率が良い
Rubyは構文がシンプルかつわかりやすく、初心者でも扱いやすい言語です。また、他の言語と比べて記述するコード量も抑えられるため、可読性・保守性に長けたコードとなるのも特徴です。
日本語による解説サイトが多い
Rubyは国内産の言語という背景もあって、日本語での情報がインターネット上に多く存在します。プログラミングについて調べる際に壁となる、外国語の翻訳に対してのストレスがなくなります。
Rubyで何ができるのか
Rubyは幅広い用途に活用されるプログラミング言語です。具体的にどんな開発に利用されているかをご紹介します。
Webアプリケーション開発
Webアプリケーションとは、主にWebブラウザ上で動作するアプリケーションです。Webサーバーやデータベースの処理はRubyがバックエンド言語である性質上相性が良く、開発に利用されることが多いです。
特にRubyによるWebアプリケーション開発としては、後述する「Ruby on Rails」というフレームワークの利用が主流といえます。
SNSサイト制作
インターネット上の交流コミュニティサービスであるSNSサイトでは、メンバー同士のチャット機能や通話機能、フォロワーとのタイムライン共有などさまざまな機能が利用できます。バックエンド言語としてRubyを用いることで、これらの機能の開発が可能です。
ECサイト構築
インターネット上で商品を販売できるECサイトの開発も、Rubyによって可能です。Rubyで開発されているサービスとして、ユーザーごとの注文履歴や商品の在庫管理、クレジットカードの決済サービスなどがあります。
スマホアプリ開発
スマホアプリの開発は、iOSでは「Swift」や「Objective-C」、Androidでは「Java」や「Kotlin」などの言語を利用することが多いです。
しかし、Webアプリケーション開発に特化したRubyを用いることで、iOS、Android両方に対応したWebアプリとスマホアプリを組み合わせたハイブリッドアプリの開発が可能です。
Rubyで開発されたサイト・アプリ例
実際にRubyで開発、運用されているサイト・アプリをいくつかご紹介します。
クックパッド
料理レシピサービスであるクックパッドは、Rubyで開発されています。レシピの投稿機能や検索機能、コメントによる交流機能、有料会員用の決済機能など、Webサーバーやデータベースとのやり取りにRubyが使用されています。
参考:クックパッド
食べログ
食べログは、全国の飲食店のランキングや口コミを閲覧できるレビューサイトです。ユーザーによる新規店舗登録や口コミ投稿が可能で、ユーザー管理やレビュー機能などの実装にバックエンド言語としてRubyが採用されています。
参考:食べログ
Airbnb
民泊を仲介する大手海外サービス、AirbnbもRubyで開発されています。予約管理機能や宿泊施設周辺のアクティビティ情報の検索などにRubyが使用されています。
参考:Airbnb
Ruby on Railsとは
Ruby on Rails(ルビーオンレイルズ)とは、Rubyで作られたWebアプリケーション用のフレームワークです。前述のRubyを用いたサイト・アプリは、Ruby on Railsを導入して作成されています。
フレームワークとは、システム開発時の基盤となる部分です。Ruby on RailsにはWebアプリケーションを効率良く開発するために必要な機能が備わっています。
導入することで開発時間が短縮できたり、コードがある程度統一されることにより可読性・メンテナンス性が向上したりといったメリットが得られます。
そのため、Webアプリケーション開発にRuby on Railsが採用されるケースは多いです。また、Ruby on Railsには「MVC」という概念が取り入れられています。
MVCという概念
MVCは、アプリケーションを作成する際にプログラムの処理を役割ごとに分けて行い、コードの可読性を上げる考え方です。
それぞれ「Model(モデル)」「View(ビュー)」「Controller(コントローラー)」の頭文字に由来します。要素ごとに決まった役割があり、役割に応じて処理の内容をそれぞれの箇所に記述します。
Model
データの取得や、更新・削除など、データベースとのやり取りを記述します。
View
Viewでは、ユーザーが実際に見る画面であるユーザーインターフェース周りの処理を記述します。画面のレイアウトやメニュー、ボタン操作、データの表示など、HTMLを動的に生成する役割を持ちます。
Controller
Controllerは、ユーザーの入力処理に基づいてModelやViewの処理を制御する役割を持ちます。Modelにデータの受け渡しを指示し、それをViewで表示するように指示する橋渡し的な役割を担います。
Rubyはオワコンと言われる?
昨今「Rubyはプログラミング言語としてオワコンではないか」と、将来性に不安を抱く声も散見されています。実際、GoogleにおけるRubyの検索数が年々減少していることは事実です。
しかし、それは新しいプログラミング言語の登場やRubyの代替として利用される言語が増えてきたためであり、Ruby自体が使われなくなった訳ではありません。
今でも、初学者向けのプログラミング学習教材にRubyが取り上げられていることは多く、Ruby on RailsによるWebアプリケーション開発も多くの実績があります。安定した素早いシステム構築を望む企業からは、今なお高い人気を誇る言語です。
Rubyの開発者であるまつもとゆきひろ氏も、現代におけるRubyの状況についてこちらの記事で語っています。
参考:“Rubyは死んだ”のか? まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 – Part1 – ログミーTech
基幹系システムが得意な言語、機械学習が得意な言語など、プログラミング言語によって特性は異なります。RubyはWebアプリケーションの開発を得意とする言語です。
言語は適材適所であるため、現代においてもRubyを学ぶ意味は大いにあるのです。「Webアプリケーションを素早く開発したい」「Tipsやライブラリが豊富な言語を使いたい」といった場合はRubyが適しているでしょう。
Ruby入門!基本的な書き方紹介
扱いやすいといわれているRubyですが、実際どのような構文となっているのでしょうか。ここでは入門編として、基本的な書き方をご紹介します。
if文
if文は、条件分岐の処理を記述する際に用います。
「~~の条件の場合~~する、それ以外の場合は~~する」といった、条件によって異なる処理を実行させたい場合に用います。Rubyにおけるif文の基本形は以下のようになります。
if 条件 then
# 条件がtrueだった時の処理
else
# 条件がfalseだった時の処理
end
たとえば、変数xの値をチェックして値が10だった場合は「xは10です」と出力、そうでない場合は「xは10ではありません」と出力したい際は、以下のように記述します。
if x == 10 then
print("xは10です")
else
print("xは10ではありません")
end
for文
for文は、繰り返しの処理を記述する際に用います。一つずつ書くと面倒な繰り返し処理も、for文でまとめると少ない行数で実装できます。
for i in 1..10 do
# 繰り返し処理
end
上記の「i」は変数、「1..10」は最初の値と最後の値を表す範囲オブジェクトです。変数iが1から10まで1ずつカウントアップしていく間、繰り返し処理を実行できます。(doは省略可能です)
たとえば、変数iを1から3まで1ずつ増加させながら「変数iの値は現在~です」と出力する処理を繰り返したい場合は、以下のようになります。
for i in 1..3
print("変数iの値は現在", i ,"です\n")
end
出力結果
変数iの値は現在1です
変数iの値は現在2です
変数iの値は現在3です
コメント
コードがどのような処理を行うのかわかりやすくするためにも、コメントを残すことは重要です。Rubyでは「#」を文頭に入れることで、特定の一行をコメントとして記述できます。
for i in 1..3
#この一行はコメントです
print("変数iの値は現在", i ,"です\n")
end
また、「=begin」と「=end」で囲むことにより、複数行をコメントできます。
=begin
現在表示されているテキストはすべてコメントです
for i in 1..3
print("変数iの値は現在", i ,"です\n")
end
=end
Rubyが学習できるサイト
Rubyを学習する際のおすすめサイトをいくつかご紹介します。
Ruby リファレンスマニュアル
Rubyの公式リファレンスサイトで公開されているリファレンスマニュアルです。Rubyの起動方法から基本構文の書き方、クラスやメソッドの定義方法まで詳細に記載されています。
最新バージョンだけでなく、いくつかの前バージョンのマニュアルも参照できます。ただし、古すぎるバージョンはサポートが終了しているため注意しましょう。
Ruby on Rails チュートリアル
Ruby on Railsについてのチュートリアルを販売しています。
大学での学習や、社内のWebサービス開発研修にも採用されているコンテンツであり、Webテキストや動画、電子書籍などさまざまな形でRuby on Railsを学習できます。
まとめ
RubyはWebアプリケーション開発を得意とするバックエンド言語で、現在でも数多くのサービスやシステムの開発に採用されています。
「構文がシンプルで書きやすいこと」「日本語の情報がインターネット上に多くあること」などから、プログラミング初心者が学びやすい言語といえます。
Webアプリケーションの開発に興味がある方は、フレームワークのRuby on Railsと合わせて、ぜひ学習してみてはいかがでしょうか。