Friday, November 12, 2010

Perlがカラシニコフで、RubyがM-16

見ての通り「初めてのPerl」もそこそこにRubyを勉強し始めた。いろいろ読んで回った結果、ウェブサービスに向いている気がしてRubyをがんばってみようかという気になったけれど、どうも難しい。「初めてのPerl」の途中までしか知らない自分が言うのもなんだけれど、Perlのほうが簡単に感じてしまう。使うヒトに喜びをもたらすというRubyを実感するにはたぶんまだ初心者すぎるのか。

どういうところが難しいのか?

1. メソッドがたくさんあってそれを覚える必要がある。
どこのサイトや本を読んでも、そこらじゅう便利そうなメソッドだらけで読んでいる時は感心するのだけれど、覚えるまでが大変。Perlの場合は(「初めてのPerl」の場合かもしれないけど)手間はかかるけれど基本的なツールだけでなんとかなるようなシンプルさがあるような気がする。

例えば配列の要素を足す
(1..10).to_a.inject(0){|t, a| t + a}
にしてもこれが書けたらいいなとは思ってもinjectを知っていないと出てこない。これがPerlだと「よし、順番に読み込んで足していけばいい」という風にとりあえずはやり方の予測がつく(まだ全然すんなりとはできないけど)。つまり高級な言語なので高級な使い方をしたいけど、ひとつひとつのツールが最初はゴージャスすぎて戸惑う感じ。

2. オブジェクトの種類がいっぱいあってそれを覚える必要がある。
これは間違ってるかもしれないけれど、変数のカタチが自由な分だけto_aとかto_iが必要になってきて簡単にコードを書こうと思ってもつまづくポイントが多い。さっきのコードも(1..10)の後にto_aが必要なければいいのに(言っても仕方ないけど)って思う。

積み木で遊ぶ感じがPerlで、接着剤使ったプラモデル作るのがRubyな感じ。
「Perlがカラシニコフで、RubyがM-16」のような感じ。
とりあえずまだしばらくゴルゴを目指す。

とんちんかんなコト言ってるとは思いますが、後で見て笑える日が来るようがんばります。