Rubyの魅力
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
6月20日からRubyを本格的に勉強開始し、このブログをはじめましたので、今日で6日目です。
Rubyの魅力にはまりそうな予感がします。
Rubyは日本語のように書ける
Rubyですと、目的語.処理1.処理2・・・というような文法の流れになっていて、基本的には、「レシーバ.メソッド1.メソッド2・・・」のように書きます。
Rubyのレシーバとは、メソッドで操作対象となるオブジェクトのことです。
目的語が先に来るのは日本語の特徴でもあります。
「I Love Books」と「私は本が好きです」という、英語と日本語の文章を比べてみます。
PHPやPerlが、「Love(Books)」という関数に引数を渡す書き方がベースなのに対して、Rubyの場合、「本.好き」という日本語と同じ流れ。
先に評価する目的語(レシーバ・オブジェクト)が来て、レシーバに対して何かしらの操作を行います。
Perlの文法でいう「関数(引数)」という書き方が、Rubyの場合、「(引数).関数」となっており、引数がレシーバ(オブジェクト)、関数がメソッドに相当するようなイメージです。
Rubyのほうが、直感的に理解しやすいです。
コンテキスト重視
いつもPHPで悩んでいたのが、膨大な数の組み込み関数と長い関数名、引数の順序、関数が返す戻り値などです。
PHPの場合、コンテキスト(文脈)という概念が薄い感じがし、それとライブラリ・モジュールをincludeしないのが基本なので、そこがPHPが長所でもあると共に、短所にもなっている気がしました。
とっつきやすい反面、関数覚えるのが大変、ポケットリファレンス片手に関数を調べる必要が多いので、いまいち気持ち良く書けない・・・など。
最近、PHPの関数名を調べたり、覚えたりする作業が、受験の英単語覚えを思い出させて、少し嫌気が差していたところです。(苦笑い)
真偽値を返すのか、それとも元の値を破壊するのか、などの点もRubyは工夫してあります。
true, falseを返すメソッドは、末尾に「?」(クエスチョンマーク)が付いています。
また、元の値を破壊するメソッドには、「!」(エクスクラメーションマーク)が付いています。
オブジェクト指向ですので、コンテキスト(文脈)が分かりやすく、クラスが違えど、同じような操作をするメソッドは共通の名前のものも多いので、メソッド名を大量に覚える必要がない。
この辺りのコンテキストの話については、またいつか後日書こう。
Rubyはしっくりきます
私には、この純粋オブジェクト指向言語であるRubyは、合っている気がします。
Webプログラミングのために、初めてPerlやPHPを勉強したとき(3年ほど前)よりも、現在勉強中のRubyのほうがしっくり来る感じです。
イテレータとかクラスに関しては、もう少し勉強が必要ですが。
PHPを1,2年でも経験していれば、Rubyを勉強しても理解しやすく、プログラミングを面白く感じられると思います。
PHPも好きですが、Rubyも相当好きになりそうです。
- - 関連記事 -
- GNU GLOBALでソースコードを可視化
- Cygwin1.5にRuby1.7をソースからビルド
- irbで対話的にRuby実行
- Aptana Studio + RadRailsプラグイン(Eclipse系Ruby・IDE)を試す。NetBeansとの比較
- NetBeans IDEでRuby開発
- Rubyの真偽値・nilとfalseだけが偽
- データ構造を確認するpメソッドとppメソッド
- requireで別ファイルを取り込む
- Rubyはオブジェクト指向のインタープリタ言語
- 文字列とprint, puts, pなどの表示・出力メソッド
- Hello world ! Hello, Ruby !
- Rubyを勉強する環境構築(E-TextEditor)
- Rubyのto_sメソッドで2進数、8進数、16進数、10進数の変換