Xtend 是 Eclipse 推出的一门静态类型的编程语言,它会编译成易于理解的 Java 代码。Xtend 源于 Java 并对它做了许多改进。它对于 Java 就像 CoffeeScript 对于 JavaScript:代码更简洁,可以帮助开发人员减少样板代码。此外,Xtend 还提供了一个基于 Eclipse 的 IDE,并且实现了与 Eclipse Java 开发工具的紧密集成。
近日,Java 开发和软件架构网站 jaxenter.com 发表了一篇文章,探讨 Xtend 的优缺点。
本文认为,可以实现与 Java 的零问题互操作是 Xtend 最值得夸耀的一点。这一点是其它 JVM 语言,像 Scala、Clojure 和 Groovy,都缺乏的。Xtend 能做到这点,是因为它有与 Java 相似的类型系统,因此在 Java 和 Xtend 代码之间就不会出现任何“阻抗失配(impedance mismatch)”。本质上讲,这意味着 Java 代码和 Xtend 代码可以互相调用。更重要的是,熟悉 Java 类型系统的人学习 Xtend 会很简单。
其次,它是一门更简洁的语言,可以帮助开发人员减少样板代码。下面是《Xtend 用户指南》中的一个示例:
@Property String name
对于上面这行代码,Xtend 编译器会生成一个 String 类型的_name 字段,并生成相应的 getter 和 setter 方法。
此外,Xtend 允许开发人员使用 lambda 表达式。它会将 lambda 表达式编译成匿名内部类。这非常适合需要点击监听功能的 Android 开发人员。而且,自 2011 年出现在 Eclipse 版本序列中之后,它已经证明,对于 Android 开发人员而言,它是一门方便的语言。有一位评论员甚至将它称为 Android 的 Swift。Xtend 联合创始人 Efftinge 表示,“用 Xtend 编写的 Android 应用程序和用 Java 编写的一样快,但可读性更强”。
但是,Xtend 现在还很不完善,其中一个最大的缺点是不支持 IntelliJ IDEA。还有一个问题是,构建 APK 时需要额外的编译步骤,这使得一个 Android 应用程序需要大约 20 秒才能编译完整个项目。