これからプログラミングを学びたい人に、Rubyは最もおすすめできる言語の一つです。
Rubyで作られたフレームワーク「Ruby on Rails」が大企業・ベンチャー問わず使われているという実績もありますが、それ以上に大事なのはRubyが「楽しい」言語だということです。
今回の記事で、Rubyの特徴・大まかな概要について確認していきましょう。
Contents
Rubyの概要
日本発プログラミング言語
Rubyは、まつもとゆきひろ氏が作成した、手軽に使えるオブジェクト指向スクリプト言語です。
簡単に無料で使えるオープンソースのプログラミング言語で、「使っていて楽しい」言語として設計されました。
日本語の情報が多く、技術英語がわからない初心者でも学びやすいのもメリットの一つです。
コミュニティが活発
オフライン・オンライン問わず、コミュニティ活動が活発なのがRubyの特徴の一つです。
Github上では毎日のようにRubyで書かれたOSSが更新されていますし、teratailなどの質問サイトでRubyに関する質問をすると驚くべき速度で回答が返ってきます。
オフラインでは、世界中のRubyユーザーが集まり、まつもとゆきひろ氏も登壇するRubyKaigiという大規模カンファレンスが一年に一度開催されています。
2017年は広島、2018年は仙台で開催され、2019年は福岡での開催が予定されています。
また、勉強会検索サービスなどで検索してみるとわかりますが、小規模な勉強会は毎日のように開催されています。
オブジェクト指向言語としてのRuby
オブジェクト指向と聞くとなんだか難しそうな印象を受ける方も多いと思いますが、オブジェクト指向とは本来、人間にとって自然な考え方です。
Rubyならば自然な形でオブジェクト指向プログラミングを行うことができるので、他の言語のオブジェクト指向に挫折した人も、今一度Rubyでオブジェクト指向プログラミングにチャレンジしてみると良いのではないでしょうか。
すぐに使えるクラスが豊富
オブジェクト指向プログラミングというと、複雑なクラス定義や継承を使いこなさなければならない、と思う方もいらっしゃると思いますが、Rubyにはすでに多くのクラスが用意してあって、すぐに使えます。
簡単な処理は用意されたクラスを使うだけの簡単な手続き型プログラミングで済ませることができます。
すべてがオブジェクト
Rubyでは、整数はIntegerクラス、文字列はStringクラスといったふうに、基本的なデータ型もオブジェクトであり、特定のクラスに属しています。
また面白いことに、クラスさえもClassというオブジェクトです。
すべてのデータを差別することなく、統一的に扱うことができるのが、Rubyにおけるオブジェクト指向の特性です。
Rubyの文法の特徴
コンパイル不要ですぐ実行できるスクリプト言語
CやJavaといった言語は、ソースコードを機械が読み取れるように翻訳する「コンパイル」という作業が必要となります。
一方Rubyは、PerlやPythonと同じスクリプト言語です。そのため、プログラムを記述したらコンパイルしないですぐに実行できます。
irbと呼ばれる、対話的インタフェースも付属されているので学ぶときに非常に手軽にソースコードを書いて試してみることができます。
すぐに使える変数
Rubyでは、変数はいちいち宣言する必要がありません。
最初の代入が変数宣言を兼ねているのです。
Rubyには、
- ローカル変数
- グローバル変数
- インスタンス変数
- クラス変数
- 定数
といった様々な変数がありますが、変数の名前の規則を見ただけで、どの種類の変数かがわかるようになっています。
動的型付け
Rubyは動的型付けのプログラミング言語で、変数には型がありません。
数値が代入してある変数の文字列を代入することも可能です。
そのため、自分が書きたい処理を短いコードで記述することができます。
また、オブジェクトが自分の型を知っているので、やや慣れてくると「メタプログラミング」によって、「プログラミングをプログラムするコード」を書けるようになります。
多倍長整数
Javaなどの言語では16ビット整数は2,147,483,647までといったように上限値があります。
Rubyは多倍長整数が言語仕様として組み込まれています。メモリが許す限り、どんなに大きい整数でも表すことができます。
特異メソッド
Rubyでは、特定のオブジェクトに専用のメソッドを定義したり、上書きしたりすることができます。たとえば、引数にあったメソッドを動的にくっつけるということも可能です。
ブロック
Rubyのブロックもまた、偉大な柔軟性の源泉として知られています。 プログラマーは、どんなメソッドへも、メソッドがどのように振る舞うべきかを記述したクロージャを付け加えることができます。
(引用: Rubyとは(Ruby公式サイト))
ブロックをうまく使うことで、コードをより抽象化することができます。
テキスト処理が得意
RubyはPerlというプログラミング言語にインスパイアされて作られた言語です。
Perlは文字列操作と正規表現が強力な言語ですが、Rubyもそれを受け継いでいます。
テキスト処理を使いこなせるようになれば、ネットワークプログラミングから自然言語処理まで、幅広い応用を効かせることができます。
宝石の名前を冠している(ルビー)のも、Perlから引き継いだ特徴です。
拡張ライブラリが簡単に作れる
誰でもgemと呼ばれるRubyのライブラリを作成して、rubygemsというサイトを通して世界中に公開することができます。
多くのスクリプト言語はC言語などで拡張できる設計になっていますが、Rubyの拡張ライブラリAPIは使いやすいよう工夫されているので、作成は比較的簡単です。
Rubyは楽しい
プログラミングを学習する上で、最も大事なことは「楽しむこと」です。
楽しむことで自然にやる気が出てきて、学習効率も上がってきます。
プログラミングを楽しめるようにRubyは設計されています。
- Rubyは日本語の情報が充実していて初心者にも学びやすい
- コンパイル不要の学びやすいオブジェクト指向言語
- 一番大事なことは楽しむこと。Rubyでプログラミングを楽しもう
まつもとゆきひろ氏が「生涯プログラマー」でやっていきたい若手に贈る3つの言葉 – エンジニアtype | 転職@type
Ruby登場から25年 開発者まつもとゆきひろ氏が語る「Rubyという概念が誕生した日」 – ログミーTech