一言で言えば、
シンプルかつ強力なオブジェクト指向スクリプト言語
です。
perlのようにテキスト処理の分野に威力を発揮します。もちろんそれだけでは なく、Rubyで実用的なサーバーアプリケーションを作成するなどということも 可能です。
Rubyにはたくさんの言語のよい部分が取り込まれており、その結果どの言語とも 異なる言語になっています。
Rubyは以下のような特長を持っています。
以下はまつもとさんの[ruby-talk:00394](June 11, 1999)での紹介の翻訳です。
まつもとさんは、自分の新しい言語の名前をPerlのように何か宝石の 名前からとろうとし、同僚の誕生石がRubyだったので、Rubyとした そうです。
その後、誕生石としては、pearl => 6月、ruby => 7月、活字の 大きさとしては、pearl => 5pt、ruby => 5.5ptなど、rubyが pearlの直後に来ている例があるのに気づき、Perlより新しく、できれば より良い言語の名前としてRubyが新しいスクリプト言語の名前として ふさわしいと思ったそうです。
まつもとさんは、RubyがPerlの代わりになる日を待っています(^^)。
まつもとさんの[ruby-talk:00382](June 4, 1999)での紹介の翻訳です。 Rubyの誕生日は[ruby-list:15997]により修正されました。
Rubyは1993年2月24日に生まれました。その日同僚とオブジェクト指向 言語の可能性について話していました。Perl(Perl4で、Perl5ではありません。) は知っていましたが、おもちゃのにおいがして(今もありますが)好きになれ ませんでした。オブジェクト指向スクリプト言語は期待が持てました。
Pythonも知っていましたが、本当のオブジェクト指向言語とは思えません でした。オブジェクト指向がとってつけたもののように感じられたのです。 15年来言語マニアでオブジェクト指向のファンでしたので、真にオブジェクト 指向のスクリプト言語が心底欲しかったのですが、そのようなものは さがしてもさがしてもありませんでした。
そこで自分で作ろうと決心したのです。数ヶ月たってインタプリタが 動き始めました。イテレータ、例外処理、ガーベージコレクションなど 欲しかったものをいれこみました。
さらにPerlの特徴をクラスライブラリとして取り込みました。 Ruby 0.95を日本国内のニューズグループに投稿したのは、1995年12月の ことでした。
すぐにメーリングリストを始め、ホームページを作りました。メーリング リストでは活発な意見の交換がなされました。最初からあるruby-listは 今では14789通のメールを数えています。
Ruby 1.0 は1996年12月に、1.1 は1997年8月に、安定バージョンとしての 1.2 と開発バージョンの 1.3 が1998年12月にリリースされています。
Rubyの最新版は<URL:ftp://ftp.ruby-lang.org/pub/ruby/>で手に入ります。
ミラーサイトは次のとおりです。
Cygwin版とMinGW版とDJGPP版はRuby Binariesにバイナリがあります。
なお、Windows(cygwin)では初心者向けにRuby Entry Packageが用意されています。 そのインストール方法については初心者のためのRubyインストールガイドを見てください。
Rubyの公式ページは <URL:http://www.ruby-lang.org/> です。
現在Rubyの話題を扱う公式のメーリングリストは六つあります。
詳しくはRubyメーリングリストをご覧ください。
メイリングリスト検索用のフォームが、 <URL:http://blade.nagaokaut.ac.jp/ruby/ruby-list/index.shtml> や <URL:http://ruby.freak.ne.jp/>にあります。
また、ML Topicsには、 過去メールの主な話題がピックアップされています。
まつもとさんによると、rubyistとRuby hackerは次のような定義だそうです。
Rubyに対して単なるお客さん以上の気持を持っている人がrubyistです。たとえば
一方、Rubyに関して技術レベルの高さをあわらす人はRuby hackerと呼びましょう。 たとえば
などはRuby hackerでしょう。
これらは称号は自称されるもので別に私が公式認定をするようなものではあり ませんが、上の例でほとんど名指しされている人は、まつもとがこの人たちを {rubyist、Ruby hacker}として尊敬を込めて認めていることを表します。
Rubyの正式な表記は"Ruby"です。ただし、コマンド名は"ruby"ですし、 また並列して違和感がない限り、Rubyの代わりにrubyを使うことは 許容されます。
ただし、「RUBY」、「ルビー」、「るびー」は言語名としては許容されていません。
歴史的には"ruby"が正式名称だった時代があります。
『オブジェクト指向スクリプト言語Ruby』 まつもと ゆきひろ・石塚圭樹共著 アスキー(ISBN4-7561-3254-5)の他に何冊か刊行されています。 詳しくは「Rubyに関する書籍」をご覧ください。
正規表現に関しては、Jeffrey E. F. Friedl著「詳説正規表現」(ISBN4-900900-45-1)が オライリージャパンから出ています。様々な正規表現の実装に触れており、 Rubyの正規表現を理解するにも有用です。
Rubyは、基本的な構文はRuby1.0以来大きくは変わっていませんが、絶えず 拡張、修正が行われていますので、ドキュメントが最新バージョンに追い 付いていないところがあります*2。 また、ソースがドキュメントだという説もあります。
分からなくなったら、遠慮なくruby-listで 質問すると、作者のまつもとさんをはじめ、開発者の方々や私もはまったという 人たちに分かりやすく教えていただけます。
質問をするには、ruby -vの結果と、はまったスクリプト (長い場合は本質的なところを切り出して)を示せばよいでしょう。
irbを使っている場合は、irb固有の問題もありますので、 irb --single-irbで試してみるか、rubyで実行し直して 確認することをおすすめします。
MLを検索すれば、かなりの疑問が解決するとは思いますが、メールも 大量になってしまって、ありふれた検索では絞り込みにくくなっています。 最近のものくらいはチェックしておくのがネチケット(RFC1855の3.1.1、3.1.2参照) というものだとは 思いますが、言うは易く、行うは難しですし、新しい視点も生まれるかも しれません。思い切って質問してみましょう。
羊、ハチドリ、うさぎ...*3
もしバグに遭遇した場合にはRuby Bug Tracking Systemに報告してもらえれば、やがて何らかの応答があることでしょう。 また、(購読していれば) ruby-dev や ruby-core に報告することもできます。
その際は、rubyのバージョンやプラットフォーム、エラーメッセージ、 バグを再現できるスクリプトやデータなどもお願いします。
[BUG]
というメッセージが表示されて
*4
Rubyが強制終了された場合は、
環境にもよりますがcoreファイルが作成されているかも知れません。
もしデバッガが使えるようなら
*5、
バックトレースなどもあるとベターです。
*1最近は、Mac版の開発は停止
しているようです。ただし、Mac OS Xでは動きます
*2ドキュメントも絶えず加筆、修正が行われています
*3カタツムリ(?)
*4例外的にSystemStackErrorが起きたときは何も表示されずに強制終了することがあります。
*5バイナリパッケージからインストールしている場合などはおそらく無理ですが