Ruby(ルビー)は、日本人の技術者が開発した、オブジェクト指向のプログラミング言語であり、世界中で使われている人気の高い言語です。
有名どころのプログラミング言語は、海外で開発されたものが多く、言葉の壁によって学習や習得の枷になってしまうケースもあるなかで、Rubyは日本人にとって学習しやすい言語です。
本記事では、「すべてがオブジェクトで」あり、「プログラミングを楽しむ」を設計思想とするユニークな言語、Rubyについて、基礎から解説します。
Rubyとは?
Rubyは1995年に日本のソフトウェア技術者、まつもとゆきひろ氏によって開発されたプログラミング言語です。日本発の言語としてはじめてIEC(国際電気標準会議)で国際規格に認証されました。
Rubyの由来
Rubyという名前は、誕生石(宝石)が関係しています。プログラミング言語Perl(パール)を参考にした部分があることから、6月生まれの誕生石であるパール(真珠)の次のプログラミング言語という意味もこめて7月の誕生石である「ルビー(Ruby)」と名付けられたとされています。
すべてがオブジェクト
オブジェクト指向とは、プログラムを「もの」と「操作」を分けて作り、組み合わせることで完成させるという考え方です。その関係性を定義していくことで構造的に積み上げていきます。
オブジェクト指向とは|例えを交えて【徹底解説】
Rubyが登場する以前は、オブジェクト指向のプログラミング言語にはPythonがあり、人気もありました。しかし、同氏は当時のバージョンのPythonに満足できず、自身が好きだったPerl、Smalltalk、Eiffel、Ada、Lispといった言語の一部をブレンドすることで、新しい言語「Ruby」を開発しました。
Rubyの開発思想は「すべてがオブジェクト」であり、プログラム全体のつながりが見えるアーキテクチャー(構造)になっています。
楽しくてわかりやすい
同氏は著書の前書きにて「ストレスなくプログラミングを楽しむのがRuby開発にもっとも重視した」と述べたそうです。
Ruby には Perl や Python とは決定的に違う点があり、それこそが Ruby の存在価値なのです。それは「楽しさ」です。私の知る限り、Ruby ほど「楽しさ」について焦点を当てている言語は他にありません。Ruby は純粋に楽しみのために設計され、言語を作る人、使う人、学ぶ人すべてが楽しめることを目的としています。しかし、ただ単に楽しいだけではありません。Ruby は実用性も十分です。実用性がなければ楽しめないではありませんか。
引用:Wikipedia(まつもとゆきひろ、Ruby プログラミング入門 まえがき 監修者よりのページ)
また、同氏は同じくRubyをシンプルである以上に自然な言語にしたとも言っています。
Rubyの外観はシンプルです。けれど、内側はとても複雑なのです。 それはちょうど私たちの身体と同じようなものです。
引用:Rubyホームページ
このような言葉に現れているように、Rubyは「構造の分かりやすさ」を突き詰めています。
自由度が高い
プログラミングにおいて、多くの時間を「文法を守る」「ミスを出さない」「出してしまったミスを探し出す(デバッグする)ためにソースコードを確認する」といった作業に費やされており、場合によっては「アイデアを生かす」「見やすいwebサイトや使いやすいアプリをつくる」といった本来、注力すべきことに十分な時間や労力を割けないということもあるようです。
もちろん、Rubyにも文法はあり、エラーも出ますが、形式的な記号などを極力使わないというシンプルな構造になっているため、考える部分に多くの時間と労力を費やすことができ、ゴールに向けて自分なりの道筋を選べる「自由度の高いプログラミング言語」と評価されているのです。
Rubyでできること
RubyはWebアプリを中心に、さまざまなサービス・アプリの開発で採用されています。
汎用性が高く、ライブラリも豊富にあるため、Rubyを習得すれば、WEBサービスやSNS、スマホアプリからなど幅広い分野での開発ができるでしょう。
ここからは、その代表的なものを紹介していきます。
Webアプリ開発
Rubyで開発できるものとしてWebアプリが挙げられます。Ruby on RailsというWebアプリ開発のフレームワークを使用すれば工数を削減しつつ、サービスを作成できます。Rubyで作られた代表的なWebアプリとしては、レシピ投稿サイト「クックパッド」、飲食店のグルメクチコミサイトの「食べログ」、クラウドソーシングサービスの「クラウドソーシング」など著名なサイトがあります。
ECサイト開発
Rubyを使えば、本格的なECサイトを作れます。ほかにもキャンペーンページのような単発の商品販売サイトや定期購読の販売など、さまざまな形式のサイトを開発できます。ゼロからプログラムを組んで作る方法もありますが、「Solidus」というパッケージでは、簡単に決済機能が実装でき、ECサイトのフロント部分だけではなく、決済機能といったバックエンド部分も開発できます。
SNSサイト開発
サーバサイドプログラムを得意とするRubyを使えば、ユーザー登録、ログイン、投稿データなど、SNSサイトに必要な要素を管理するデータベースを作成できるため、他のSNSのログイン認証を利用してログインできる機能なども実装可能です。SNSにはRubyが多く採用されており、ビジネスSNSの「Wantedly」、民泊サイト「Airbnb」などもRubyのシステムを使っています。
RubyとPythonの大きな違いは得意分野
Rubyと共通点が多いプログラミング言語にPythonがあります。どちらも読み書きがしやすく、汎用性の高い言語ですが、RubyとPythonでは、得意分野が異なります。
Pythonの得意分野
Pythonは統計学、解析、分析などの機能的なライブラリが充実しており、人工知能・機械学習が得意分野です。
Rubyの得意分野
Rubyは、アプリサイトやショッピングサイト、ブログサイトなどフレームワークを使って構築できるWebサイトです。
Rubyは本来、人工知能・機械学習やスマホアプリの開発には向いていません。人工知能・機械学習は特別な理由がない限りPythonなどで開発を行うのが一般的でしょう。
また、本来のスマホアプリ開発には、Java、Kotlin、Swiftが適しており、Unityなどのクロスプラットフォームサービスもあるため、Rubyを使うことはあまり多くありません。
あえてRubyを使いたい場合やRubyで開発しなければいけない事情がある場合を除き、開発に適した言語を使用するのがよいでしょう。
Rubyはプログラミング初心者におすすめ!
プログラミング学習をはじめるとき多くの人が考えるのは「習得までにどのくらいかかるか」「就職にどの程度有利に働くか」といった時間とお金のパフォーマンスではないでしょうか。
その点でRubyはもっともパフォーマンスの高い言語の一つといえます。
無料で使用できる
Rubyはフリーソフトウェアなので、無料で使うことができます。また、複製、変更、再配布も可能です。
習得難易度が低い
一般的に一つのプログラミング言語を習得するのに、およそ1,000時間の学習が必要と言われています。しかし、Rubyのコードはシンプルで読み書きしやすく、ほとんどの人がその1/4である250時間ほどの学習で習得できるといわれています。
また、開発者の理念から「プログラミングを楽しむ」ことを設計思想としており、楽しみながら学習を進められるため、知識の浅いプログラマーやプログラミング未経験者にもとっつきやすい言語といえます。
さらに、日本人が開発したプログラミング言語であるため、日本語で記されている文献も多く、学びやすい環境ともいえます。
幅広い用途で使われている
初心者に優しいプログラミング言語でありながら、ライブラリが豊富で汎用性が高く、幅広い分野で活用されています。
Rubyには Web フレームワークの中でも有名な Ruby on Rails があり、多くの開発現場で使われています。今後も需要の高さが期待できるため、Ruby を扱えるエンジニアは求人の幅は大きく広がります。
その一方で、自由度か高いからこそプログラマーの発想力やセンスが問われる言語でもあります。
このように、Rubyはプログラミング未経験者が学びはじめる際には入口が広く、学び進めていくと奥行きが深い言語です。どの言語から学ぶか選びかねているプログラミング初心者の方には、 Ruby をおすすめします。