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も相当好きになりそうです。

スポンサーリンク
 
スポンサーリンク