Better Ruby, Better Java
Javaは静的型付けがあるけれどとても冗長。これは型だけじゃなく、いたるところで冗長なコードしかかけない。
一方、Rubyは綺麗なんだけど、静的型がなく、遅く静的言語に比べて多くのテストをかかないといけない。そして、monkey patchingしててもどこでpatchingしてるのかのがわかりずらい。だから、複数人で長い期間開発するには向いてない。
双方、いい点と、悪い点がある。
このRubyとJavaの双方のいいとこどりをしてるのがScalaで、どちらの層にもそれなりに受けるんじゃないかなぁと思う。Better Ruby, Better Javaとして使えるうえに、関数型言語 + Actorも加わって、どの領域のコードもかなり綺麗に書ける。言語仕様が大きすぎるいうのもあるけれど、それが価値になっている。そして、コンパイルも出来きるから早い。さらに、ライブラリが足りないのはJavaのライブラリをシームレスに使えるので、ライブラリ群も十分ある(Scala的なラッパは必要だけど)
Scalaがいいと思っているのは、この言語としての完成度の高さと、実際にプロダクション環境で使えそうな実用さの2点からきていて、それが自分にはとても魅力的なのでした。