Preface

次 - 目次

# はじめに

Rubyは手軽なオブジェクト指向プログラミングのためのインタプリ タ言語です．Rubyは(Perlのような)テキスト処理やシステム管理の ための豊富な機能を持っています．また，Rubyは単純で，分かりや すく，簡単に拡張できます．

もし，簡単なオブジェクト指向のための言語を求めていたり，Perl は見にくいと感じていたり，Lispの考え方は好きだがあの括弧の多 さには困ると感じているなら，Rubyはまさにぴったりです．

Rubyの特長は次の通りです．

> インタプリタ
>   Rubyはインタプリタ言語ですのでプログラムを実行するた めにコンパイルする必要はありません．
> 変数に型が無い (動的型付け)
>   Rubyの変数はどのような型のデータも格納する事ができま すので，変数の型について心配する必要はありません．半 面，コンパイル時のチェックは弱くなります．
> 変数宣言が不要
>   Rubyでは変数を宣言無しで使う事ができます．変数の種類 (ローカル変数，グローバル変数，インスタンス変数など) は変数名から知る事ができます．
> 単純な文法
>   Rubyの文法はEiffelからわずかに影響を受けた単純なもの です．
> ユーザによるメモリ管理が不要
>   Rubyはメモリ管理を自動的に行います．どこからもアクセ スされなくなったオブジェクトはインタプリタに組込みの ガーベージコレクタによって回収されます．
> 全てがオブジェクト
>   Rubyははじめから純粋なオブジェクト指向言語として設計 されています．整数のような基本的なデータ型をはじめと して，全てのデータをオブジェクトとして統一的に取り扱 えます．
> クラス，継承，メソッド
>   Rubyはクラス，継承，メソッドのようなオブジェクト 指向言語として基本的な機能は当然持っています．
> 特異メソッド
>   ある特定のオブジェクトにメソッドを付加することができ ます．たとえば，GUIのあるボタンを押された時の動作をメ ソッドとして記述するような使い方ができますし，これを 応用してプロトタイプベースのオブジェクトプログラミン グも可能です(やりたければね)．
> モジュールによるMix-in
>   Rubyは多重継承は複雑さの源であるという見地から，意図 的に多重継承を持っていませんが，モジュールを使ってク ラス階層を横断して実装を共有できます．この機能を "Mix-in"と呼びます．
> イテレータ
>   ループの抽象化を行うイテレータという機能があります．
> クロージャ
>   手続きをオブジェクトとして扱う機能があります．このオ ブジェクト化された手続きのことをクロージャと呼びます．
> 強力な文字列操作/正規表現
>   Perlをお手本とした強力な文字列操作や正規表現検索の機 能があります．
> 多倍長整数
>   組込みの多倍長整数機能がありますので，メモリが許す限 り，非常に大きな整数の演算もできます．たとえば，400の 階乗なども簡単に計算できます．
> 例外処理機能
>   例外処理機能は例外的な状況への対処が簡単に書けます．
> OSへの直接アクセス
>   Rubyは(UNIXの)ほとんどのシステムコールの呼び出し機能 を持っています．Rubyだけでシステムプログラミングも可 能です．
> ダイナミックローディング
>   OSが許せば，オブジェクトファイルを実行時に読み込む機 能が提供されます．

次 - 目次

matz@netlab.co.jp