Life Goes On

まあまあだけど楽しんでる方です

Scala は関数型言語ではない

http://enfranchisedmind.com/blog/posts/scala-not-functional/
via http://d.hatena.ne.jp/camlspotter/20090515/1242349686

最近、気になっている話題だったので、頑張って読んでみました。
ちょっと煽り気味の文章だし、明らかな間違い(カリー化の話)とかもあるけど、要点は以下の2つだと思います。

オブジェクト指向JavaScalaOCaml ― (Haskell) → 関数型
みたいな図式は、まぁだいたいそんなもんだろうし、どこまでを関数型と呼ぶかは人によりけりだと思うのですが(僕は遅延評価と部分適用がないと関数型とは認めませんよ:p)、Scala が関数型の要素を取り入れたのは、どうなのかなと思うのです。
いや、Java っていちおうエンタープライズ向けってことになってて、100 人以上のプログラマを集めて開発したりするわけじゃないですか。で、100 人以上のプログラマに対して関数型ってのは、敷居を高くすることはあっても、なかなかメリットを得られないんじゃないかなと。僕は楽しいですけどね、100 人で Scala、100 人で Haskell
結局、何が言いたいかというと、ScalaJava の後継というのとは違うと思うようになったということです。
たぶん Java の後継は、もう少し抽象度が高くなって、短く書けるようになった、純粋手続き型言語じゃないかな(オブジェクト指向である必要もないかも)。
ちなみにそれぞれの言語の認知度を見てみると‥‥日本では HaskellOCaml も健闘してるけど、世界的にはやっぱり JVM が強いんだなぁ。

日本語のページ
java  に一致する日本語のページ 約 8,570,000 件
scala   に一致する日本語のページ 約 635,000 件
haskell に一致する日本語のページ 約 627,000 件
ocaml   に一致する日本語のページ 約 277,000 件
ウェブ全体
java  の検索結果 約 396,000,000 件
scala  の検索結果 約 25,000,000 件
haskell の検索結果 約 8,210,000 件
ocaml   の検索結果 約 1,810,000 件