次世代言語Scala

今まではC言語から新しい言語を作るのが主流だったが、今の時代VM上で動く言語から新しい言語を作るのが主流になりつつある。その中でもScalaは抜きん出ていると思う。yieldを使うと外部イテレータでなく内部イテレータになることや"1 + 2"が"1.+(2)"の意味などRubyismが入っているのはPythonistaとしては気になったが、Rubyと違って関数がファーストクラスオブジェクトであることや、構文がシンプルなのは良い。


今の時代、C言語ができますというのはプログラミングできませんと言っているのと同じで、これからはJavaができますというのは通用しなくなってくると思う。


追記(2008/2/27):

誤解されそうなので追記。一部の分野ではC、FortranCOBOLなどのエキスパートを必要とする仕事があるので、もちろんそれだけしかできなくてもプログラミングができない訳ではない。エキスパートなら他の人が知らないことまで知っている。


但し私の考えではそういう分野の人はプログラミングの全てを理解していると思っている傾向がある気がするが、狭い分野の知識だけでは新しい分野の知識に関しては無知と言えると思う。例えばCしか知らない人がstaticとは何かについて一般的な説明をできないと思う。また別の例ではC++しかしらない人は100個のデータ型があったら100個をベタ書きする。ここではvirtualかどうかは重要ではない。まさかTemplateを駆使してメタプログラミングはしないだろうと思う。


自分のいる分野では新しい技術が使えないと思っている人が多すぎる。Scalaどころか、実績が多数あるのにJavaすら使えない、あるいは勉強する気がないという人が多すぎる。