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/コードリーディング
周辺ツール/ライブラリ†
プログラミング言語/Ruby/開発ツール・ライブラリ
参考書籍・WEBページ†