関数型言語Scalaいい (Java・Ruby経験者にいいみたい)

以前にも書いたが、最近、関数型言語をいろいろ見ている。(追記:書いたと思ったら、書いてなかった。。)
Rが関数型言語の要素があるということで、Rを言語として勉強はじめたが、
なんとなくつまらなくて、次に、Lispをみたが疲れたのでやめて、
F#をみて、なかなかいいなと思ったが、
.Net Frameworkをあまりしらないので、C#勉強してからF#かと思ったりもしたが、
やはり遠回りかなと思った。


再度、Lispかとも思ったが、Matzも言っていたが、習得コストが高い。


そうこうしているうちに、偶然気分転換で立ち寄った本屋で、Scalaの入門書があり、
ちょいと見てみると、ソースが、読みやすい。
あとで知ったことだけど、Rubyなんかと同じ、ALGOL系の書き方なんだそうな。
意外と、言語のとっつきやすさは、本質的な考え方というよりは、見た目なのかもしれない。


Javaで書かかれているので、なんとなく、中途半端な実験的な言語なのかと、漠然と思っていたが、本格的な言語だった。
(本格的というのは非常に意味不明な表現だけど、特に変な制約はなさそう。)


JVMで動くので、どういった環境でも動くし、しかも、Javaのライブラリもかなり使えるよう。
JrubyとかJythonよりも親和性が高い??ようだ。
JrubyとかJythonと違い、もともとがJVMで動くことが想定されているから、当然か。


JavaRuby と学んできた者としては、ちょうどいい言語が見つかった。
非常に読みやすいし、Javaの経験も生かすことができる。
Ruby on railsのような、LiftというWebフレームワークもあるようだし。


最終的には、
Scala/Lift on GoogleAppEngine とかやってみたい。


さらには、BIoinformaticsの計算、Scalaで種々のアルゴリズムの実装をやってみたいと、目論むのであった。


オブジェクト指向プログラマが次に読む本 ?Scalaで学ぶ関数脳入門

オブジェクト指向プログラマが次に読む本 ?Scalaで学ぶ関数脳入門