Better Java

最近は、Ruby, Perl, そいして Scheme(Lisp)ばかり書いていて、久しぶりに Javaを書く と とても疲れる ^^);

https://duke.dev.java.net/images/wave/Wave.jpg

LispやLLからみて、Javaに足りない機能として 高位関数(≒ Rubyのブロック)などが上げられる・・・


しかし、それ以上に、私が疲れるのは 配列と Array List などの動的な配列ライブラリーの存在である。
配列は、一度大きさを決めたら大きくも、小さくもできない融通の利かない構造なので、すぐ Array Listを使い始めるのだけれども、なぜか Array List をソートするライブラリーがJDKの中にはない!( ありました 、修正) 配列の機能と Array List(Collection Framework)の直行性が完全ではないので 疲れる。
また初期値の代入なのでもかなり(修正) すこし面倒で、どうしても配列とArrayListの併用になってしまう。


私もこの仕事が長いので、Javaに配列やプリミティブがあることの理由は十分に理解できる。Javaが生まれた 1990年のCPUはまだまだ 非力で、全てのデータをオブジェクト、全てのデータ構造を動的 にする事が出来なたっかのだと思う。その選択は、Javaの発展を支えた要因の一つであったと思う。
また、Javaの用途の一つとしてミドルウェアやシステムの中核に近い部分を記述するのには、今でも性能は重要なファクターだと思う。


しかし、現在アプリケーション部分を記述するのには、全てがオブジェクト、全ての構造が動的でも良いと思う。
だれか、そういう シンプルなJava というか、Java の進化形言語を作ってくれないかな?

文法、型宣言等は現在のJavaと同じでプリミティブはなく全てオブジェクト。配列も現在のJavaように見えてその実装は ArrayList になってる。 JRuby/Scalaのように 既存のJavaライブラリーは呼び出せる。