Ruby / the genuine-object-oriented scripting language

 

言語の特徴

Rubyがよく分類される言語としての位置づけは、

  • 純オブジェクト指向言語
  • 軽量言語
  • UNIX指向言語

などが挙げられます。

三つ目の表現はあまり聞きなれないかもしれませんが、 RubyはUNIXで培われた文化を色濃く受け継いでいます。 UNIXコマンド、C言語ライブラリ関数、Perlライブラリルーチンあたりから 借用されたネーミングは数多く、それに馴染んでいる人ならば 容易に動作を予測できるでしょう。 (が、リファレンスはちゃんと見ましょう :-)

また、この特徴を抜きにしても、Rubyはある面では非常に保守的な 手続き型言語です。

Rubyの導入

プログラミング言語/Ruby/インストール

動作を確認

Windowsならコマンドプロンプト、UNIXならシェルに

 ruby -v

と訪ねてみましょう。インストールに成功していれば、 バージョン情報を教えてくれるはずです。

Hello, world!

定番ですな。

 print "hello, world!"

文法

などをさらっと流して書く。

プログラミング言語/Ruby/言語ダイジェスト

Rubyドキュメントでの慣習

メソッドとかを説明文中に表記するさい、 それなりに決まった流儀があります。 知っておくとマニュアルとかが読みやすい鴨。

  • Hoge#piyo
  • Foo.bar
  • Vipper::IQ

上から順に、

  • Hogeクラスのオブジェクトが持つpiyoというメソッド
  • Fooクラスが持つメソッド(Javaでいうstaticメソッド)
  • Vipperクラスが持つ定数IQ

ドキュメントの形式

テキトーな用語集

Matz
Rubyの生みの親であるまつもとゆきひろ氏のこと。
モルモン教
キリスト教の宗派。Matzはこの信者。よく煽りのネタにされたが、あまりにイジられすぎて、最早2chRubyスレの習慣と化しつつある。
Duck Typing
アヒルは、アヒルみたいに振舞うからアヒルとして認識されるんだぜ、という考え。つまりvipperがVipperクラスのインスタンスだからVipperなんだなー、と考える のではなく、 aori()やtsuri()など、Vipperらしい振る舞いをする(メソッドを持つ)からこそ、そのvipperというオブジェクトはVipperなんだなー、と捉える考え。 静的型付け言語における「型」とはその名の通りコンパイル時に決定できる変数の情報であるが、Rubyのような動的型付け言語では「型」=「応答できるメッセージ」と考える、それがDuck Typing。たしかSmalltalk辺りに由来する。
関数
Rubyに関数なんてものはない。 …が、例えばトップレベルで定義されたメソッドはレシーバなしで
n = method()
のように書ける。そのようなメソッドを関数と呼び習わす。

チュートリアル

コードリーディング

周辺ツール/ライブラリ

プログラミング言語/Ruby/開発ツール・ライブラリ

参考書籍・WEBページ