今さら聞けない!Rubyとは【初心者向け】|現役エンジニアが解説
プログラミング初心者向けにRubyとは何なのか詳しく解説しています。Rubyという言語の便利な点やRubyでできること、実際の書き方などをわかりやすくまとめています。これからRubyを学習しようと思っている方はぜひご覧ください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
最近よく耳にする「Ruby」とは一体どのような言語なのでしょうか?
今回はその「Ruby」の正体を解説していきたいと思います。Web系の企業でもRubyを使っているところは多いので、これからRubyを勉強してみたいという人はぜひ参考にしてみてください。
終わりには、学習方法もいくつか紹介しているので、自分の好きなやり方で勉強してみましょう。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
なお、今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。
ここではプログラミング言語のひとつ、Rubyについて解説していくよ。
田島メンター!!Rubyはどんな用途で使われる言語なんですか〜?
一番よく使われているのはWebアプリケーションかな。動的なサイトを作るのにとても役立つんだ。有名なクックパッドなどもRubyを使用して作られているよ。
なるほど。是非覚えてみたいです!
目次
- Rubyとは
- Rubyでできること
- オブジェクト指向とは
- Rubyの動向
- Rubyが日本で人気な理由
- Rubyで開発が向いているサービス
- Rubyのインストール
- Rubyの書き方
- Rubyの基本構文
- Rubyの学習方法
- Rubyの学習時のポイント
Rubyとは
Rubyとは、まつもとゆきひろ氏により開発されたオブジェクト指向スクリプト言語です。
CやJavaといったコンパイラ言語は、プログラムを実行するためにはコンパイルという手続き(人間が書いたソースコードを機械命令に変換)を介して初めて実行ができます。
しかし、スクリプト言語はこう言った手続きが一切不要で、そのまま実行することができるため、コンパイラ言語に比べてプログラミングを手軽に行うことができます。
また、オブジェクト指向言語なので、すべてのデータがオブジェクトとして表現されています。
つまり継承などといったオブジェクト指向ならではの機能を使うことができます。
継承をすることで書くコードの量が少なくて済み、読みやすく作業効率も上がるでしょう。
Rubyの名前の由来ですが、宝石の「ルビー」から来ています。
Perl(パール)という名前のプログラミング言語がありますが、宝石の真珠(パール)と読み方が同じという点で宝石の名前を取ったようです。
なぜRuby(ルビー)なのかというと、当時のまつもと氏の会社の同僚が7月生まれで、7月の誕生石がルビーだったからです。
Ruby/Rails開発のためのおすすめエディタ/IDEも紹介しているので、合わせてご覧ください。
Rubyでできること
Rubyを使うメリットとして一番大きいのは、Ruby on RailsというWebアプリケーションフレームワークを使うことができるということです。
Ruby on Railsを使うと、WebサイトやWebベースの業務システムを効率良く開発できると言われています。
Rubyを使っている企業は多くあり、そのほとんどがRuby on Railsを使っているのでエンジニアとして活躍することも可能でしょう。
オブジェクト指向とは
従来のプログラミング言語では困難になってきた、大規模なソフトウェアの開発をより効率よく開発を行うために考え出された
概念です。
一般的に、以下の特徴を持っています。
- カプセル化
- 継承
- ポリモーフィズム(多態性)
カプセル化
カプセル化とは指定の方法以外で外部からデータにアクセスできないようにすることです。
想定外のアクセスにより、本来書き換えてはならないデータを誤って書き換えることがなくなります。
たとえば、ゲームのセーブデータなどは簡単に書き換えられてしまう訳にはいきません。
そういったデータを書き換えられないようにするためにもカプセル化という機能は重要です。
継承
継承とは、既にある機能を受け継ぎ、効率よくソフトウェア開発を行うための機能です。
例えば、既にあるプログラムを一部改修を加え、新しく作り直したいことがあります。
そうした際に、一から作り直すのはかなり面倒です。
そこで、継承を利用することで既存の機能をそのまま再利用しつつ、新たな機能を定義することができるのです。
ポリモーフィズム(多態性)
ポリモーフィズム(多態性)とは、同じ名前の機能(プログラム)を作成でき、それらが独立して存在できることです。
例えば、スマートフォンでは動画や音楽が再生できます。
この動画や音楽を再生するプログラムをPlayという名前でそれぞれ作ったとします。
この時、ポリモーフィズムの概念がないプログラミング言語(C言語など)では、同じプログラムが二重に定義されていますとエラーが出てきます。
ですが、RubyやC++などでは音楽ファイルなら音楽を再生し、動画ファイルであれば動画を再生することができます。
このように同じ名前のプログラムを複数定義でき、それぞれのデータに合わせて使うことができることをポリモーフィズム(多態性)と言います。
Rubyの動向
Rubyは現在も積極的に開発が進められています。
2020/5/23現在の最新の安定版は2.7.1です。また古いバージョンである2.4は公式サポートが終了しました。
最新の2.7系では多くの機能強化やパフォーマンスの改善が行われました。
詳しくは2.7.0のリリースノートを参考にしてください。
フレームワークであるRuby on Railsも継続して開発が行われています。
2020/5/23現在の最新バージョンは6.0.3.1です。
こちらも最新の6.0系では、新しいフレームワークの導入やマルチデータベース対応など、多くの機能追加が行われています。
詳しくは6.0のリリースノートを参考にしてください
なお、毎年恒例のイベントであるRubyKaigi(ルビー会議)ですが、2020年のRubyKaigi2020はコロナウィルス感染症の影響で延期となっています。
ただし中止ではなく延期というのは嬉しいですね。
詳しくはリリース記事を参考にしてください。
新型コロナウィルス感染症(COVID-19)に関するRubyKaigi2020の対応について
Rubyが日本で人気な理由
国内のWebサービスとしては、クックパッドや食べログなどがRubyを利用していることは有名です。
では、なぜRubyが使われているのでしょうか?
一つは、Rubyの開発効率の高さです。
Rubyは「Enjoy for Programing!」を掲げており、プログラマーにとってコーディングしやすいプログラミング言語となっています。
直感的に、実装したい機能をコーディングできるためストレスフリーで開発を行うことができます。
そして、フレームワーク(Ruby on Rails)の存在です。
「Ruby on Rails」とはRubyのWebアプリケーションフレームワークであり、数回のコマンド入力を行うだけで、Webサイトが自動生成できるRuby on Railsは大幅な開発工程の短縮を実現しました。
このRuby on Railsの登場により、開発コスト削減を図る企業などでの利用が増加しました。
また、スタートアップ企業などがWebサービスを立ち上げるために、Ruby on Rails を利用していることも多いです。
また、Rubyは日本で開発されたプログラミング言語であることも利用されている理由の一つです。
C++やJavaといったプログラミング言語の最新情報は英語で書かれていることが多く、それら最新技術を利用するには、一定の英語スキルが必要になります。
また、有用な参考書なども英語で書かれていることが多く、それらの翻訳されたものは、誤訳されたものもあります。
しかし、Rubyは開発者が日本人ということもあり、日本語で書かれた有用な参考書が数多く手に入ります。
そのため、最新情報をいち早く活用することもできるのです。
Rubyでの開発が向いているサービス
Rubyは前述の通りRailsと組み合わせてRuby on Railsとして開発を行うことが一般的です。
Ruby on Railsは以下のようなサービスの開発に向いています。
スタートアップ企業のWebサービス
Ruby on Railsは開発効率が高いため、少人数での短期開発に向いています。
スタートアップ企業のWebサービスは短期間での継続的なローンチが求められます。
Ruby on Railsはいわゆるアジャイルと呼ばれる開発手法にも適しており、少人数でサービスの基本機能を立ち上げ、ユーザーのフィードバックを得ながら継続的にサービスを改善していくことに適しています。
WebAPI経由でのサービス展開
WebAPIとはプログラムから利用するインターネット上のサービスです。
例えばGoogle MapやTwitterなど、多くのサービスがWebAPIを提供しています。
WebAPIのメリットは既存のサービスを組み合わせて新たなサービスを生み出せることです。
例えば気象データを提供するWebAPIをECサイトのサービスと組み合わせることで、他にはない特徴的なサービスを提供できるかもしれません。
Ruby on RailsにはAPIモードという構成があり、アプリケーションを構築する際にAPIモードを選択することでWebAPIを効率よく開発することができます。
データベースと組み合わせた基幹系システム
意外かもしれませんが、Ruby on Railsは大量のデータ処理や、複雑な計算を行う企業の会計などの基幹系システムのサービス開発にも向いています。
Ruby on RailsはMVCと呼ばれる安定的なサーバアーキテクチャをベースとしています。
またデータベースとの連携についてもモデルクラスによるアクセスやコネクションプールなどに標準的に対応しています。
レガシーシステムを更新する際の選択肢として考えても良いでしょう。
Rubyのインストール
Rubyでプログラムを書こうと思ったらまず、Rubyをインストールする必要があります。
手順としては、
- Ruby のダウンロードページ からダウンロード(執筆時最新版Ruby2.7.1)。Windowsであれば、RubyInstallerというツールでのインストールも可能です。
- ダウンロードしたファイルを実行し、インストール。
- インストールが完了したら、ターミナルやコマンドプロンプトから「ruby -v」と入力し、バージョンを確認。
- ruby 2.7.1などと表示されれば完了です。
RubyはWindowsとMacの両方で使用することができるよ。
やっぱりそれぞれによって開発環境の構築の方法がだいぶ違うんですか?
そうだね。また、インストールに必要なソフトがあったりと少し複雑なので、なるべく最新の情報を見てひとつずつ順番にやってみるのがいいと思うよ。公式のインストールガイドも参照しよう。
Rubyの書き方
Rubyのファイルは「.rb」という拡張子をつけることで保存されます。
実際にターミナル上にHello,world!を出力するプログラムを例に書き方を紹介したいと思います。
print("Hello,world!n")
この一文だけで目的のプログラムを作ることができます。
他の言語では文末にセミコロンを打ちますが、Rubyではそれが必要ありません。
他のプログラミング言語を少しでも学習したことがある方は、Rubyがいかにシンプルであるかが分かるかと思います。
実際にRubyを使ってみたいという方は、開発環境の構築方法も合わせてご覧ください。
Rubyの基本構文
Rubyでよく使う基本構文についていくつかまとめて紹介していきます。
基礎的な内容になるので、Rubyとは何かよく分からないという方でも覚えておくと今後役に立つでしょう。
if文
if文は「◯◯の場合〜〜する、△△の場合〜〜する」といった条件分岐の処理を行うことができます。
「ログインできたらアカウント画面に、できなかったらエラー表示に」といった普段Webサイトを見ていると当たり前のように行なわれている処理が条件分岐なのです。
if ◯◯ then # ◯◯がtrueだった時の処理 else # ◯◯がfalseだった時の処理 end
for文
for文は、繰り返し処理をする際に使います。1+2+3+4+…のように手動で足していくのは面倒ですが、「1ずつ増えた数字を繰り返し足して、100まで繰り返す」といった宣言を行うことができるようになります。
for i in 1..5 # 処理を行う式 end
- 「i」は、変数という数字や文字を入れる箱
- 「i in 1..5」は、iが1~5までの間繰り返しを行う
このように、iが5になるまで繰り返し処理が行われます。一つずつ処理を書いていたら面倒ですが、同じような処理を複数回行う場合はfor文を覚えておくと便利でしょう。
Rubyの学習方法
Rubyの学習方法としては以下の方法があります。
書籍での学習
たのしいRuby
Rubyの生みの親:まつもとゆきひろ氏監修のRuby入門本。
かなりわかりやすくRubyの各クラスについて触れられており、リファレンスブックとして購入しても良い名著です。
たった2日でできるRuby
たったの二日でRubyの概要を理解できる参考書。
最初の入門書としてはこれで十分。
この本で一通りRubyについて学習したうえで、「たのしいRuby」などを使用するといいでしょう。
作りながら学ぶRuby入門
実際にアプリケーションを作りながら、Rubyが学べる参考書です。
サンプルを動かしながら学べるので短期間にRubyでのコーディングの仕方が身に付きます。
動画での学習方法
Paiza
三分程度の動画でRubyについて無料で学べます。
またプログラミング問題もあるため、 自分のRubyスキルを確認することができる点もいいですね。
ミニツク
まつもとゆきひろ氏が在籍しているネットワーク応用通信研究所がリリースしているRuby学習サイト。
まつもと氏本人によるRubyの解説動画などもあり、コンテンツは豪華。
ドットインストール
3分程度の動画でRubyについて学べるサイトです。
オンライン実行環境もあるため、気軽に試せます。
基本的な文法から学びたいという初心者の方におすすめです。
リファレンスサイトでの学習
Rubyリファレンスマニュアル
Rubyのリファレンスマニュアル。通称るりま。
各クラスの解説もわかりやすくされています。
また、サンプルコードなども掲載されているので、困ったときに見ると良いサイトです。
Let’sプログラミング
Rubyの環境構築から条件分岐まで幅広く解説されているサイトです。
特にWindowsでRubyの開発環境を構築される方にはオススメです。
Ruby公式サイト
Rubyの公式サイトです。
Rubyのチュートリアルもありますので、まず試してみたいという方にオススメ。
Rubyの学習時のポイント
最後にRubyの学習時のポイントについてまとめました。
学習のロードマップをイメージする
目標を設定して学習のロードマップをイメージしましょう。
標準的な目標としては「Ruby on RailsでWebアプリケーションを開発できるようになる」が良いでしょう。
実際の開発現場においてもRuby単体で使うことはまれで、Ruby on Railsとして使用する場合がほとんどです。
目標を設定したら、それに向けての計画を立てて行きましょう。
学習期間が長すぎるとモチベーションを維持するのが難しくなります。
3ヶ月や半年ぐらいの期間を設定すると良いでしょう。
最初の段階ではプログラミング言語Rubyについて、基本的な構文や機能を学習するようにします。
Rubyについて理解が深まったらフレームワークRailsの果たす役割や機能について学習すると良いでしょう。
プログラミング言語の学習が初めての場合
プログラミング言語の学習が初めての場合は、変数や関数、演算子などの基本的な項目をまずはしっかりと覚えるようにしましょう。
Rubyにはブラウザ上でプログラムを実行できるTryRubyという環境が用意されており、ちょっとしたプログラムの動作確認などに利用できます。
Raisの学習にはチュートリアルがおすすめ
前述の通り、Rubyはプログラミング言語RubyとフレームワークRailsで構成されます。
まずはRubyというプログラミング言語は何ができるか、基本的な構文や機能を学習しましょう。
そんなに厚くない書籍を1冊購入して学習を進めると全体像を把握しやすくなります。Railsの理解は、サーバーサイドのプログラミングが初めてであれば少し時間が必要かもしれません。
学習教材としておすすめなのがRuby on Railsチュートリアルです。
これはRuby on Railsを利用して本格的なWebアプリケーションを1から作成するというもので、無償で利用できるとは思えないほど内容が充実しています。
後半になるとプログラミング初心者にはやや難易度が高くなるかもしれませんが、一度見てみることをおすすめします。
公式ドキュメントを積極的に活用する
Rubyは作者が日本人ということもあり、日本語のドキュメントがとても充実しています。
とても分かりやすく構成されていますので、積極的に活用すると良いでしょう。
公式ドキュメントはリファレンスマニュアルとチュートリアルなどで構成されます。
リファレンスマニュアルはプログラミング言語Rubyの全てを機能ごとに説明しているものです。
はじめはチュートリアルを参考にしながら、分からない点をリファレンスマニュアルで補う形で学習を進めると良いでしょう。
技術系サイトの使い方
Qiitaやteratailなどの技術系サイトにもRubyの情報は多くあります。
情報はタグ(tag)と呼ばれる分類で整理されています。
「Ruby」や「入門」といったタグが付いている情報の中から、評価の高いものを参考にすると良いでしょう。
「Ruby on Rails」といったキーワードで検索することもできます。
またteratailでは質問を行うことができます。最初は投稿されている質問と回答を参考にするようにし、慣れてきたら自分で質問してみても良いでしょう。
質問の際は初心者マークをつけることを忘れないようにしましょう。
いかがでしたでしょうか。
簡単ではありますが、Rubyについて紹介をしました。
Rubyは、日本発のプログラミング言語ですので、日本語のドキュメントも多く学習しやすいはずです。
ぜひこの機会に始めてみましょう。
執筆してくれたメンター
太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握、音声認識を活用したヘルプデスク支援システム、ロボットアプリの開発、大規模基幹系システムの開発・導入マネジメント。著書「知識ゼロからの機械学習入門(技術評論社)」。 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |
Ruby on Railsに関してはまた別のところで解説しよう。Webアプリの開発に利用できるフレームワークで、これも幅広く使用されているよ。
コードを見てると他の言語だと文末に”;”(セミコロン)が付いたりしますが、Rubyだとないんですね。
それもRubyの特徴のひとつだね。もちろん上で紹介しているようにif文やfor文など、他のプログラミング言語で見られるような基本構文も使うことができるよ。環境構築ができたら少しずつ文法も勉強していこう。
はい、分かりました!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。