写点什么

JVM 语言 Xtend 优缺点速览

  • 2014-08-19
  • 本文字数:859 字

    阅读完需:约 3 分钟

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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-19 03:592599
用户头像

发布了 256 篇内容, 共 96.2 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

二分查找树

工程师日月

二叉树 5月月更

架构实战营-第一周

Asura

linux之sudo使用技巧汇总

入门小站

Linux

☕️从 Java8 到 Java17 的新特性(四):Java11 的新特性

看山

Java Java11 LTS

Java 8 开始新增的 Optional 类 - Optional 对象中的异常

HoneyMoose

☕️从 Java8 到 Java17 的新特性(三):Java10 的新特性

看山

Java Java10

☕️从 Java8 到 Java17 的新特性(八):Java15 的新特性

看山

Java java15

C++中字符三兄弟(WCHAR、CHAR、TCHAR)

liuzhen007

c c++ 5月月更

在线文本列表交集计算工具

入门小站

工具

在线TSV某一列提取下载

入门小站

工具

记一次简单易上手的内网渗透实战

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

零基础学Java第二节(运算符、输入、选择流程控制)

编程攻略

Java学习 5月月更

☕️从 Java8 到 Java17 的新特性(九):Java16 的新特性

看山

Java java16

加入MOVE,一起体验Move2Earn的运动乐趣

股市老人

万字长文!一文搞懂InheritedWidget 局部刷新机制

岛上码农

flutter ios 前端 安卓 5月月更

☕️从 Java8 到 Java17 的新特性(五):Java12 的新特性

看山

Java Java12

【愚公系列】2022年05月 二十三种设计模式(十六)-迭代器模式(Iterator Pattern)

愚公搬代码

5月月更

ArrayList源码分析-迭代器

zarmnosaj

5月月更

Java 8 开始新增的 Optional 类 - 检查 Optional 的值

HoneyMoose

☕️从 Java8 到 Java17 的新特性(六):Java13 的新特性

看山

Java Java13

数据库连接池 -Druid 源码学习(七)

wjchenge

Druid 数据库连接池

☕️从 Java8 到 Java17 的新特性(十):Java17 的新特性

看山

Java java17

Flutter StatefulBuilder 示例

坚果

5月月更

JavaWeb JDBC

Emperor_LawD

javaWeb JDBC 5月月更

☕️从 Java8 到 Java17 的新特性(二):Java9 的新特性

看山

Java Java9

☕️从 Java8 到 Java17 的新特性(七):Java14 的新特性

看山

Java java14

druid 源码阅读 7——keepAlive实现方式

张大彪

【刷题第 11 天】26. 删除有序数组中的重复项

白日梦

5月月更

四、容器安全风险分析

穿过生命散发芬芳

云原生安全 5月月更

Java 8 开始新增的 Optional 类 - Optional 中的方法

HoneyMoose

贝叶斯简介

5月月更

JVM语言Xtend优缺点速览_JVM_马德奎_InfoQ精选文章