*Ruby / the genuine-object-oriented scripting language [#t2510f81] #contents #br **言語の特徴 [#u83006d2] Rubyがよく分類される言語としての位置づけは、 -純オブジェクト指向言語 -軽量言語 -UNIX指向言語 などが挙げられます。 三つ目の表現はあまり聞きなれないかもしれませんが、 RubyはUNIXで培われた文化を色濃く受け継いでいます。 UNIXコマンド、C言語ライブラリ関数、Perlライブラリルーチンあたりから 借用されたネーミングは数多く、それに馴染んでいる人ならば 容易に動作を予測できるでしょう。 (が、リファレンスはちゃんと見ましょう :-) また、この特徴を抜きにしても、Rubyはある面では非常に保守的な 手続き型言語です。 **Rubyの導入 [#e68336e0] [[プログラミング言語/Ruby/インストール]] ***動作を確認 [#t02614c7] Windowsならコマンドプロンプト、UNIXならシェルに ruby -v と訪ねてみましょう。インストールに成功していれば、 バージョン情報を教えてくれるはずです。 ***Hello, world! [#jd458477] 定番ですな。 print "hello, world!" **文法 [#fbed15f8] などをさらっと流して書く。 [[プログラミング言語/Ruby/言語ダイジェスト]] **Rubyドキュメントでの慣習 [#k695d865] メソッドとかを説明文中に表記するさい、 それなりに決まった流儀があります。 知っておくとマニュアルとかが読みやすい鴨。 - Hoge#piyo - Foo.bar - Vipper::IQ 上から順に、 - Hogeクラスのオブジェクトが持つpiyoというメソッド - Fooクラスが持つメソッド(Javaでいうstaticメソッド) - Vipperクラスが持つ定数IQ ドキュメントの形式 - [[プログラミング言語/Ruby/RD]] - [[プログラミング言語/Ruby/RDoc]] **テキトーな用語集 [#afc6c832] :Matz| Rubyの生みの親であるまつもとゆきひろ氏のこと。 :モルモン教| キリスト教の宗派。Matzはこの信者。よく煽りのネタにされたが、あまりにイジられすぎて、最早2chRubyスレの習慣と化しつつある。 :Duck Typing| アヒルは、アヒルみたいに振舞うからアヒルとして認識されるんだぜ、という考え。つまりvipperがVipperクラスのインスタンスだからVipperなんだなー、と考える のではなく、 aori()やtsuri()など、Vipperらしい振る舞いをする(メソッドを持つ)からこそ、そのvipperというオブジェクトはVipperなんだなー、と捉える考え。 静的型付け言語における「型」とはその名の通りコンパイル時に決定できる変数の情報であるが、Rubyのような動的型付け言語では「型」=「応答できるメッセージ」と考える、それがDuck Typing。たしかSmalltalk辺りに由来する。 :関数| Rubyに関数なんてものはない。 …が、例えばトップレベルで定義されたメソッドはレシーバなしで n = method() のように書ける。そのようなメソッドを関数と呼び習わす。 **チュートリアル [#u90758fd] - [[プログラミング言語/Ruby/Rubyそぞろ歩き]] **コードリーディング [#xba33bd3] - [[プログラミング言語/Ruby/コードリーディング]] - [[プログラミング言語/Ruby/練習問題解答例]] **周辺ツール/ライブラリ [#de42668e] [[プログラミング言語/Ruby/開発ツール・ライブラリ]] **参考書籍・WEBページ [#l944f9dc] -[[オブジェクト指向言語Ruby:http://www.ruby-lang.org/ja/]] -[[Ruby リファレンスマニュアル刷新計画 Wiki:http://redmine.ruby-lang.org/wiki/rurema]] -[[RAA - Ruby Application Archive(英語):http://raa.ruby-lang.org/]] -[[Rubyist Magazine るびま:http://jp.rubyist.net/magazine/]] -[[逆引きRuby:http://www.namaraii.com/rubytips/]] -[[RubyGems.org:http://rubygems.org/]]