下一个伟大的JVM语言是什么?
JavaOne 2010大会上,Joda Time开源API项目领导人Bill Venners认为:
首先,我们要看看Java问题出在哪里?哪里又是正确的,将来我们的方向在哪里?
首先我们要看Java问题在哪里,比如暴露的初始类型 数组以及检查出错等,这些我们肯定不会放入这个新语言(新语言不再有初级类型如int 和array等非对象化类型)
新语言应该向哪个方面发展?较好的方案是模块化,模块化虽然已经引入Java,但我们编译输出的不再是class文件,而是模块,我们可以将模块加入系统,系统能够检查所有方法的字节码确认版本是否改变。
那么在现有的候选语言Groovy, Scala, Clojure, 和Fantom,哪个更合适呢?
Clojure是一种Lisp语法,对于Java开发者比较难以掌握,很难成为下一个大语言。
Groovy可以作为填补Java空白的一种脚本语言,在构建脚本方面有自己定位。
Scala和Fantom 他们都是静态类型,但是他们将类型系统带往相反方向,Scala只是太复杂了点,增加太多东西,它给你太多吊死自己的绳子。相反,Fantom有很多优点易于学习,但因为是一种弱类型,许多额外类也不是太足够成为下一个大语言。
我们回到问题原点,Java是否可以成为下一个伟大语言,但是问题是我们已经难于加入太多东西,因为它已经满了。但是如果我们向后实现Java的不兼容版本将会如何呢?
我们加入闭包特性,移除检查出错checked exceptions,删除对象是空的出错,做一些微小调整也许可以实现很大不同。如果我们沿着路线走回去也许真的不一样。