前
-
次
-
目次
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