「文法は重要だから、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件求人があると安心するよりも、 すばらしい仕事をひとつ見つける方が私には価値があるけどね。
鶏口牛後ってことわざもあるしね。
もちろん、リスクを取らないでコモディティに生きるというのも ひとつの戦略だし、それを否定するつもりもないけどね。
This work is licensed under a Creative Commons License.
途中まで読んで思ったのですが、文調が dankogai 氏に似てきましたね。
とりあえず <br>・言語がコモディティ化してるからすばらしい仕事がない <br>・してないならすばらしい仕事がある <br>という理屈は正直理解できません。 <br>言語よりも仕事自体の内容のほうがはるかに重要だと思うのですが。 <br><br>また、2件から1件の仕事を選ぶより <br>100件から1件の仕事を選んだほうが <br>いい仕事が見つかる確率は当然高くなると思いますよ
> ・言語がコモディティ化してるからすばらしい仕事がない<br>>・してないならすばらしい仕事がある <br><br>なんて書いたっけ。そう読まれてしまうようでは、まだまだですね。<br><br>書いた(書こうとした)のは、<br><br> ・ 求人サイトの言語別の求人数と「満足できる仕事」は無関係<br> ・ 「とんがった仕事」はむしろそういう求人が少ない言語で見つかりそう<br><br>です。<br>「満足できる仕事」の基準がお金だけなら、母集団が多い方が望ましそうですが、そうでない場合、「求人サイトの求人数が多い」言語では「面白そうな仕事」を勝ち取る競争も激しくなると思います。求人数が多い方が良い言語なら今でもCOBOLが最右翼なわけですが、(私には)そうは思えません。<br><br>もっとも、「有望そうで、まだコモディティ化していない領域に賭けることで差別化できる可能性がある」という主張で、けっして「コモディティ化してない(メジャーになってない)から、良い仕事がある」と言ってるわけじゃないです。当然ですが。
まず大前提として主張したいのは、<br>『万人に共通の「満足できる仕事」なんてない』<br>ということです。<br>突拍子もない世界初な仕事に満足を覚える人もいれば、<br>今あるものをかき集めて改良することに満足を覚える人もいます。<br>ショートコーディングに満足を覚える人もいれば、<br>シンプルで綺麗コードに満足を覚える人もいます。<br>逆にお金がすべての基準になっている人も当然いるでしょう。<br><br>なのでここでいう「満足できる仕事」というのは少し抽象的すぎるのです。<br>もしこれを「(自分が)満足できる仕事」と言い換えるのなら、<br>2件の中から一つを選ぶよりも100件の中から選んだほうが<br>当然いい仕事は見つかりやすいと思いますよ。<br><br><br>> 求人数が多い方が良い言語なら今でもCOBOLが最右翼なわけですが、(私には)そうは思えません。<br>Find Job(http://www.find-job.net/)で検索してみたのですが、<br>Java 145件<br>PHP 107件<br>Perl 57件<br>VB 55件<br>C++ 42件 <br>COBOL 28件<br>C# 23件<br>Ruby 13件<br>という結果がでました。<br>調べ方が間違っているのかもしれませんが、<br>「COBOLが最右翼」の根拠はいったいどこから出てきたのでしょうか?<br><br>また、まつもとさんのレス中には<br>「満足できる仕事」「面白そうな仕事」「とんがった仕事」<br>と似ているようで微妙に意味の違う語が多く含まれていて少し混乱してしまいます。<br>ただ、検索仕事数第1位のJavaには<br>(まつもとさんの考える)満足できて面白そうでとんがった仕事は当然あると思いますよ。<br>もしかすると無いかもしれませんが、それは他言語とて同じことです。<br>少なくとも13件の中からよりも145件からの方が見つけやすいのでは無いでしょうか?<br><br><br>> 「とんがった仕事」はむしろそういう求人が少ない言語で見つかりそう<br>これには何か根拠がありますか?<br>無いのなら私も「仕事数が多いほうがとんがった仕事も多そう」と<br>無根拠なことを主張したいです。
まず、「満足できる仕事」というのが抽象的であったことは認めます。<br>ここでは「(私が)満足できる仕事」として「とんがった仕事」とします。<br>もちろん、そんなの欲しくないという人もいるでしょうが。<br><br>で、どんな仕事が「とんがった仕事」かというと、<br> * 技術的チャレンジがある<br> * 新しい技術を開拓する<br> * 自己満足度が高い<br>の条件を満たすものではないかと思います。もっとも最後の条件は主観的すぎて何も行ってないのと同じですが。<br><br>このような仕事が発生しやすいのは、新しい技術的分野を開拓するような仕事です。いや、もちろんJavaにだって新しい技術的分野を開拓する仕事はあるでしょうけど、じゃあ、今からJavaで新しい技術を産み出す仕事をゲットしようと思ってもかなり競争激しそうです。であれば、求人数の多いメインストリームな領域よりも、求人数は少なくて現時点ではまだまだでも、今後が期待できる領域の方が可能性が高いのではないか、と思います。<br><br>もう一つはポジション形成の容易さです。今からJavaに参入して、世間的に「Javaの第一人者」と認められるようになる障壁に比べたら、Ruby(でもなんでもいいですが、「これから」の言語・技術)で第一人者になる方がずっと可能性が高いのではないかと思います。で、「第一人者」になることは成功の近道だと思いますし。<br><br>ということで、「とんがった仕事を求める人」また「自らを差別化したい(成功したい)と思う人」が、自分の主力とする技術を選択するのに「就職サイトの求人数が多いこと」を重視するのは適切ではない、という話でした。<br><br>「仕事を得る」というだけなら間違いなく求人数が多いのが正解ですが、その先を見据えるなら「求人数が多いところを避ける」という戦略もアリという話です。<br>今、思えば「最初からそう書けよ」という話ですね。すみません。<br><br>> 求人数が多い方が良い言語なら今でもCOBOLが最右翼なわけですが、(私には)そうは思えません。<br><br>「最右翼」は言い過ぎですね。Monster.comあたりではまだ結構多いそうですが。あと、(すくなくとも地方の)職安ではVB,COBOLあたりがまだまだ多いです。
> We tried to drive them out with torches, but they just wouldn't leave.<br>って、KKKでも気取ってるのかな?ヤダヤダ。