那些JVM 上试图取代Java 的语言们

jopen 10年前

Java 的保守陈旧与新特性的缺乏正在使越来越多的人转而寻找其他方案。既想使用更现代的语法,又割舍不下成熟的JVM 和 社区积累的人们,开始在JVM 创造一个个新的语言。Clojure 和 Groovy, Jython 这样的函数式或者动态语言,虽然也在某些领域吸引了不少用户,但是更多人想要的是这样一种静态强类型语言:

  • 支持lambda表达式、First-class functions、高阶函数等函数式编程的支持
  • 类型推导
  • 运算符重载
  • 对null 值运算更好的支持
  • collection/object literal
  • data Properties ,取代繁琐的getter/setter
  • 增强的switch,match expressoin
  • Named arguments tuple
  • 语法简洁

Scala

scala 其实并不是一种新语言,他已经有10年以上的历史。Scala 的初衷是结合函数式编程,然而近年来对Java Community Process 感到绝望,渴望一个better java 的程序员们将它作为了一个替代品。Scala 本身也存在这类型系统过于复杂,语法魔幻,喜欢奇技淫巧,学习难度高,编译速度慢的问题,这阻碍了scala 的进一步发展流行。

Ceylon

Ceylon 是 Red Hat 下SpringSource 的作品,领导者是大名鼎鼎的Gavin King。他有感于Java发展迟缓,Scala 过于复杂,而开始了Ceylon 这个项目。这几个语言中Ceylon 的语法是最为规整和良设计的,但是其出现较晚,也不如scala 和 Xtend 成熟和流行。

Xtend

Xtend 是Eclipse 基金会下开发的一种语言,也是这几种语言中语法跟Java 最像的。Xtend 的源代码会被先翻译成Java 源代码,然后再进行编译。值得一提的是Xtend 为Android 开发提供了一个slim 的运行库,只有200多k, 而scala 的lib 已经有10多M 了。

Kotlin

Kotlin 是Jetbrains 推出的一种语言,也是有感于Scala 过多的函数式特性和复杂度而另起炉灶。Kotlin 有着更接近于scala 的语法,其目标是实现一个不复杂的scala.

原文链接: http://www.dongliu.net/post/5771822402371584