«前の日記(2008年01月10日) 最新 次の日記(2008年01月12日)» 編集

Matzにっき


2008年01月11日 [長年日記]

_ [言語] Thanks Zed; Syntax matters; no more dumping stuff in Java; Quit pimple pimping Ruby; Scala warning

「文法は重要だから、Javaと似た文法のGroovyを使おう。 SunはJRubyに投資すべきじゃない。Scala? とんでもない」という話。

私は賛同しない。

文法は重要じゃない、とは言わない。 文法はそれなりに意味があるし、言語選択にあたっての重要な要素になる。 しかし、もっとも重要な要素ではない。

重要なのは「メンタルモデル」である。 「文化」と言ってもいい。これが違ってたら、多少文法が似てても意味がない。

表面的な類似を除けば、JavaとGroovyってそんなに似てるか?

多少の文法の違いを乗り越えるのは人間にとって簡単である。 そこはむしろ人間の得意な領域だろう。 苦手なのはメンタルモデルをスイッチすることである。

モデルが似ていないのであれば、 むしろ文法が似ていることは邪魔にさえなる。

実例を示そう。

私は日常的にふたつのプログラミング言語を使っている。 ひとつはRubyで、もうひとつはCである。 これらはかなり文化の違う言語である。

ここでRubyとCの文法がかなり違うことで、 むしろ私の脳のスイッチが切り替わるのを助けてくれている。 もし、Rubyの文法がある程度以上Cに似ていたら、 今どの言語でプログラミングしているのかの手がかりが減って、 むしろストレスが増加してしまうだろう。

繰り返す。文法は重要だが、メンタルモデルが異なる言語で 文法が似ていることが重要なのではない。むしろ逆である。

次に、Rubyを「貶める」根拠として、 Rubyの求人数が少ない点(RUBY COMES IN DEAD LAST!)を示している。

まあ、求人数を気にする人がいるのは分かるけど、 求人数ってそんなに大事なのかな。 だって、求人サイトへの登録って玉石混淆だし(まあ、応募者はもっと玉石混淆だけど)。 本当に大事なのは自分の要求(報酬とか仕事の内容とか)にあった 仕事があるかどうか、なんじゃないかな。

で、応募者側の立場から言ったら、自分を差別化するためには むしろ求人も多く、コモディティ化しつつあるような技術(JavaとかPHPとか)よりも まだまだの技術(このリストだとPythonとかRubyとか)に賭けた方が 成功できるんじゃないかな。1000件求人があると安心するよりも、 すばらしい仕事をひとつ見つける方が私には価値があるけどね。

鶏口牛後ってことわざもあるしね。

もちろん、リスクを取らないでコモディティに生きるというのも ひとつの戦略だし、それを否定するつもりもないけどね。


«前の日記(2008年01月10日) 最新 次の日記(2008年01月12日)» 編集