こんにちは、ケニーです。
プログラミング初心者「プログラミング言語 Rubyについて知りたいな。他の言語と比較して、覚えやすいと聞いたけど、実際のところはどうなのかな。また、実際にプログラミング言語 Rubyで作られたアプリも知りたいな。」
こんな質問に、Ruby on Railsで3本以上のアプリを個人で公開した僕が答えます。
この記事は、こんな人向けです
・プログラミング言語Rubyで何ができるかを知りたい人
・プログラミング言語Rubyの特徴を知りたい人
・プログラミング言語Rubyの開発者について知りたい人
プログラミング言語 Rubyとは
Rubyは、日本人のまつもとゆきひろさんにより開発されたプログラミング言語で、 無料で使うことができ、コピー、変更や再配布も可能となっています。
影響を受けた言語としては、Perl、Smalltalk、Eiffel、Ada、Lispを挙げています。Rubyは、日本発のプログラミング言語として、初めて国際規格「国際電気標準会議(ISO/IEC 30270)」の認定を受けています。TIOBE INDEX(プログラミング言語の人気ランキングサイト)では、TOP20の常連の言語となっています。
開発者のまつもとゆきひろさんは、Herokuチーフアーキテクトの肩書を持っており、Heroku上でブログを運営しています。最近は、更新頻度が下がっていますが、ブログでは思わぬ情報が見つかるかもしれません。
Rubyの由来と歴史
まつもとゆきひろさんは、Perl言語と同じことができる様な言語を作りたい、という思いから、Perlと同じく宝石で、きれいで、高級感があり、また名前も4文字で短いという理由で、Rubyと命名しました。1993年2月24日のことです。
その時、近くにいた石塚 圭樹さん(まつもとゆきひろさんの会社の先輩で、「オブジェクト指向スクリプト言語Ruby」を共著した方)が、石塚さんの誕生石ということで、同意した、という逸話が残っています。
Rubyは、1995年12月21日に初めて公開されました。
その後、デンマーク人のDavid Heinemeier Hansson(デイヴィッド・ハイネマイヤー・ハンソン)さんにより、RubyベースのWebアプリケーション フレームワーク「RubyonRails」が2004年7月にオープンソースとしてリリースされます。RubyonRailsは、Webアプリケーションを従来のフレームワークよりも、素早く構築できることから人気を得ます。2007年10月には、Mac OS X v10.5 "Leopard"にも搭載されました。
Rubyの特徴
ここでは、Rubyの特徴を説明します。
開発者がRubyを使う理由
Rubyの開発者まつもとゆきひろさんは、Rubyについて、以下の様に語っています:
「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである (enjoy programming)」
引用元:Wikipedia Ruby
つまり、ストレスなく、プログラミングを楽しめる様にしている点がRubyの大きな特徴です。コード量も、C++やJavaと比較すると、少ない量で必要な機能を実装できます。
すべてがオブジェクト
Rubyは、プリミティブ型(整数やtrue・falseを表すもの)を含め、すべてをオブジェクトとして表現できます。こちらは、コードで示した方が分かりやすいため、コード例を示します:
コード例1:
irb(main):001:0> 5.times { puts "Ruby" }
Ruby
Ruby
Ruby
Ruby
Ruby
=> 5
コード例2:
irb(main):002:0> 5.next
=> 6
上記の様に、プリミティブ型(整数、浮動小数点数、真偽など)であっても、オブジェクトとして扱うことができます(数値5にtimesメソッドやnextメソッドがあり、実行できる)。これにより、例えば、指定の数ループする際に、それ用の変数(tmpnumとか)を定義する必要がないため、簡潔にプログラムを書くことができます。
習得しやすい
僕がWebアプリを素早く、さくっと個人で開発できる言語を探していた時、Tyler Tringasさんのブログを見つけました。Tylerさんは、個人でWebアプリを開発した人で、飛行機に乗っていた30数時間で、Ruby on Railsを使い、開発→リリースまでした方です。作業効率がそんなに高い言語・フレームワークなら、自分でもできるんじゃないかと思い、RubyとRuby on Railsの学習を開始しました。
その後は約3か月ほどで、フロントエンド(ReactJS)、バックエンド(Ruby, Ruby on Rails)含めて開発できました。ReactJS、RubyとRuby on Rails、すべて初めてだったので少し時間はかかりましたが、それでも仕事をしながら3ヵ月ほどでできたのは、RubyとRuby on Railsの作業効率の高さがあったためだと感じています。
現在は、該当サイトは閉じてしまいましたが、現在も運用しているサイト(createindex.app)は同じ技術スタックにより構築されていますので、興味のある方はご確認ください。
日本語の情報が豊富
Rubyは、日本人のまつもとゆきひろさんが開発したこともあり、日本語の情報が豊富にあります。他の言語だと、日本語の情報を探すことが困難だったりしますが、Rubyに関して言えば、その心配はありません。
開発効率が高い
繰り返しになりますが、Ruby on Railsは、開発効率が非常に高いWebアプリケーションフレームワークです。詳細は、別の記事に載せていますので、ご確認ください:
Ruby実例集
Ruby on Railsを使用して開発されたサイトは、数多くあります。その中でも、4つピックアップしてご紹介します:
クラシル
「80億人に1日3回の幸せを届ける」ことをミッションにしているサイトです。2016年に誕生した新しいサイトですが、動画を中心に料理の作り方を解説しており、分かりやすく人気です。
クラシルのバックエンドは、Ruby on Railsで構築されており、インフラはAWSを使用しています。
Airbnb
宿泊する場所や施設を貸したい人と借りたい人をマッチングさせるサービスです。元々のドメイン名だったAir Bed and Breakfastを省略して、AirBnBになりました。世界中に利用者がおり、22以上の国で、400万以上の宿泊施設を提供しています。Ruby on Railsのコーディング規約も公開しています。
GitHub
プログラマのソーシャルネットワーク、開発者ならだれでも知っているサイトです。2008年に誕生したサイトは、プログラマにとって、必要不可欠なサービスとなっています。GitHubは、Ruby on Railsで動作していますが、2018年にマイクロソフト社に買収され、Ruby on Railsから離れるのではないかと噂されています。
UMAI
マレーシア発のレストラン向けのWebサービスです。レストランの予約や顧客向けの細かいサービス(顧客の誕生日にワイン一本プレゼント等)を一本化しており、勢いに乗っています。2016年に誕生したサイトで、Ruby on Railsを使用して開発中です。
以上、プログラミング言語Rubyに関してでした。
少しでもRubyに関する知識が深まれば幸いです。