Javaの進化

Javaが1.5からさらに進化するにはどうするかと言うことに関して、僕の主張は型推論クロージャくらいじゃないか、というものだった。型推論に関しては、LinkedList<Integer>とか書くのが面倒だから、varとか書いておけば勝手に型に変換されるようにしちゃえばいいんじゃないか、というもの。だけれどもEclipseに頼ってしまえば別に問題がない説。
クロージャに関してはおそらく文法拡張が甚だしいので、Java1.5のようなコンパイラが頑張るくらいじゃどうにもならない説。あるとすれば、クロージャクラスを作って、extends Closureとかやってみたりとか。それとも、Closure<Integer, Integer>という型にすると、Integer -> Integerのクロージャにして、Closure<Integer, Closure<Integer, Integer>>としたらInteger -> Integer -> Integer型にしてしまうということも考えられるかなあ。でも、そうであってもクロージャを作るのは並大抵の文法拡張じゃすまないのは間違いないので、おそらくJavaは1.5より大幅に先に進むことは無いんじゃないかなあ。もし先に進むとすれば、別の言語と言うことになって、現状の実行系じゃ動かなくなるんだろうなあ。Javaが今後先に進んだとして、後はライブラリの拡張くらいか。
なんでこんなことを考えたかと言えば、ICPCがどうなっていくんだろうかなあとふと思ったから。ICPCの使用可能言語は、現状はC, C++, Javaだけであって、パラダイム的にあまり大きな差が無い。Cは明らかに記述力でC++Javaに劣る(とか書くと何を言われるか分からないけれども)し、C++Javaも親戚みたいなもの(これも突っ込まれやすいけど)だし。
確かに機械語レベルでは手続き型パラダイムになるわけで、それで記述できるものを・・・という考えはある意味正しいと思う。関数型だとすごく簡単に出来るけれども、という問題もありうるだけに。とはいえ、そういった問題と言うのはすごく少ないと思う。っていうか、関数型だと書けるけども手続き型だとめちゃくちゃ難しいという問題はまず無い。単純に手続き型だとめんどくさい、と言う問題は結構あるけども。
だとすれば、やはりここは関数型言語を使用可能言語にしてもらおうか、と思ったのだけれども、出来る人間とそうでない人間の差がますます広がる気がするのでやめておきたい所存。今のままが平和な気がする。Haskellなんかを認めた日には、今でも絶対に勝てないような人たちが、「新世界の神となる!」とか言い出しかねない。