Java 程序员:JAVA 减肥 Xtend 捆绑 Eclipse IDE
Java
程序员在使用 Ruby
编程时会有一种解放的感觉,一种从 Java 那繁琐的语法环境进
入一个无拘无束、自由国度的感觉。随着 Clojure
和 Scala 等新语言的出现,这种对比的感
觉会越来越强烈。Ruby 在很短的时间里异军突起,很大的原因在于它的简洁和自由,比
如下面一句代码:
File.new("testfile") .each {|line| puts line[-1] }
如果用 Java 来写,不知道要写多少行。Bruce Tate 在《七周七种语言》这本书中谴责
Java
“
说: 我的手指在流血,因为我不得不打出这样多的代码;我的眼睛在流血,因为我
”
还要去读它们。 呵呵,说的很形象。
其实,Java
并不是诚心在为难程序员,它一直在改进。而 Eclipse 基金会推出的一种
叫做 Xtend
语言正是为了要简化 Java
的语法,减轻 Java 程序员的负担。
又一种新语言?不要担心。Xtend
更像是一种模板语言。它紧密的和 Eclipse IDE 捆绑在
一起,要使用它,你需要安装 Eclipse
的 Xtend 插件,Xtend
代码并不是直接编译成 JVM
字节码的,当你在 IDE
编辑、保存 Xtend
代码时,它会自动的编译成相对应的 Java 代码。
在上图的右边窗口里,你可以检查生成的 Java 代码是不是符合你的预期,并可以通
过它调试你的程序。
那 Xtend
究竟能帮助 Java 程序员做什么呢?面面俱到的介绍一种新语言是一种很复
杂的事,我也不想考验各位的耐心。这里只举例说明几个大家一眼就能看出这种语言存在
的价值的例子。
1. 类型推测
在 Java 里很多的表达式中,根据语句的右边的代码完全可以推导出左边的类型,比
如下面的 Java 语句:
//Java
List names = getTheListOfNames ()
而在 Xtend 语言里,你就不必再声明左边的类型,直接写成:
val names = getTheListOfNames ()
在 for 循环里可以写成这样:
for (name : getTheListOfNames ())