- - 目次

rubyとは?


rubyは『お手軽オブジェクト指向プログラミング』を 目指すオブジェクト指向言語です. rubyはインタプリタ型言語ですから,コンパイル無しに気軽に プログラミングできます.また,perl並のテキスト処理機能を 備えていますので,たんなる玩具ではなく,実用的なプログラミングもできます. それから,C言語による拡張が容易ですから, いろいろなライブラリのフロントエンドとしても使えます.

「お手軽なオブジェクト指向言語が欲しいなあ」とか,「perlの機能は便利だが, あの文法は耐えられない」とか,「lisp系の言語の思想は嫌いじゃないけど, 括弧だらけなのはいや.せめて数式は普通に書きたいし」などと 思っている人には喜ばしい言語かもしれません.

rubyの特長を箇条書にすると以下の通りです.

インタプリタ

rubyはインタプリタ型の言語です.コンパイルなどの手順 無しに手軽にプログラムを実行できます.

変数に型が無い

rubyの変数には型がないので,静的な型の整合性について 頭を悩ます必要はありません.その代わり,エラーチェッ クはそのぶん甘いです.

変数宣言が不要

全ての変数は宣言無しにいきなり使うことができます.ま た,変数名を見るだけでその変数の種別(ローカル,グロー バル,インスタンス)を区別することができます.

シンプルな文法

Algol系の雰囲気を持つ比較的シンプルな文法を持っていま す.

メモリ管理が不要

参照されなくなったオブジェクトはごみとして回収するゴ ミ集め(Garbage Collect, GC)の機能を持っています.

全てがオブジェクト

rubyははじめから純粋なオブジェクト指向言語として設計 されていますので,整数などの基本的なデータ型をはじめ として全てがオブジェクトであり,メッセージを送る統一 的なインタフェースを持ちます.

クラス,継承,メソッド

オブジェクト指向言語として基本的な機能は当然持ってい ます.

特異メソッド

ある特定のオブジェクトにメソッドを付加することができ ます.たとえば,GUIのあるボタンを押された時の動作をメ ソッドとして記述するような使い方ができますし,これを 応用してプロトタイプベースのオブジェクトプログラミン グも可能です(そんなことやる人はいないか).

モジュールによるMixin

rubyは意図的に多重継承を持っていませんが,クラス階層 を横断して実装を共有するための,モジュールを使った Mixinという機能があります.

イテレータ

ループの抽象化を行うイテレータという機能があります.

クロージャ

手続きをオブジェクトとして扱う機能があります.このオ ブジェクト化された手続きのことをクロージャと呼びます.

強力な文字列操作/正規表現

perlをお手本とした強力な文字列操作や正規表現検索の機 能があります.

多倍長整数を持つ

組込みの多倍長整数機能がありますので,非常に大きな整 数の演算もできます.たとえば,400の階乗なども簡単に計 算できます.

例外処理機能あり

例外処理機能は例外的な状況への対処が簡単に書けます.

OSへの直接アクセスが可能

rubyは(UNIXの)ほとんどのシステムコールの呼び出し機能 を持っています.rubyだけでシステムプログラミングも可 能です.

ダイナミックローディング

OSが許せば,オブジェクトファイルを実行時に読み込む機 能が提供されます.

逆にrubyの欠点は以下の通りです.


- - 目次

matz@caelum.co.jp
Last modified: Wed Jan 28 12:16:41 JST 1998