background image

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 ())