JVM语言Xtend优缺点速览(51)

发布于2019-04-21 20:25:39

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秒才能编译完整个项目。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。