Ruby
まつもとゆきひろ(Matz)が作った、書いていて楽しいことを重視した国産のスクリプト言語。後にWebフレームワークRuby on Railsの登場で世界的に広まった、日本発の代表的プログラミング言語。
概要
Rubyは、Yukihiro「Matz」Matsumoto(まつもとゆきひろ)が生み出したプログラミング言語で、1995年に公開された。Ruby公式サイトによれば、MatzはPerl・Smalltalk・Eiffel・Ada・Lispなど複数の言語の好きな部分を融合させてRubyを作った。Matz本人の言葉として『Rubyは見た目はシンプルだが、内部は人間の身体のようにとても複雑だ』という説明が公式サイトに引用されている。
仕組み
Ruby公式サイトが強調する特徴のひとつが、数値を含めたあらゆる値がオブジェクトとして扱われる『純粋なオブジェクト指向』の設計である。多くの言語では数値のような基本型(プリミティブ型)はオブジェクトとして扱われないが、RubyはSmalltalkの影響を受け、すべての型にメソッドとインスタンス変数を持たせている。たとえば `5.times { ... }` のように、数値の5に対して直接メソッドを呼び出せる。演算子もメソッド呼び出しの糖衣構文(シンタックスシュガー)として実装されており、`+` 演算子の挙動を独自のクラスで再定義することもできる。ブロック(`do...end` で囲んだクロージャ)も特徴的な機能で、Matsumoto自身は『Rubyのクロージャでは、Lispの文化を尊重したかった』と述べている。
利点と代償
Ruby公式サイトは、Rubyを『柔軟な言語』と位置づけている。ユーザーが言語の部品を自由に書き換えられる設計で、既存の機能を削除・再定義したり、既存のクラスに新しいメソッドを追加したりできる。公式サイトの例では、Numericクラスに `plus` という新しいメソッドを定義して `5.plus 6` のような書き方を可能にするコードが紹介されている。Matsumoto自身は開発の目的を『Perlより強力で、Pythonより完全なオブジェクト指向のスクリプト言語』を作ることだったと説明しており、関数型プログラミングと命令型プログラミングのバランスを取ることを重視していた。この自由度の高さは書き手の表現力を広げる一方、同じ処理でも書き方が何通りにも分かれやすいという裏返しでもある。
| 作者 | まつもとゆきひろ |
|---|---|
| 特徴 | 記述の楽しさ重視 |