《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

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:592545
用户头像

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

关注

评论

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

【Elasticsearch 技术分享】—— ES 常用名词及结构

程序员小航

Java 搜索引擎 elastic ES Lucene Elastic Search

Python代码调试指南

wangkx

Python Python基础

6. 二十不惑,ObjectMapper使用也不再迷惑

YourBatman

json Jackson ObjectMapper

“深化产教融合·共育数字人才”全国产教融合信息化高峰论坛·江苏站成功举办

InfoQ_967a83c6d0d7

Java中的一些限制

xiaoxi666

顺时针遍历矩阵,提高系统高并发350倍,React Native原理浅析 组件设计原则 安全架构 防火墙ModSecurity John 易筋 ARTS 打卡 Week 14

John(易筋)

ARTS 打卡计划 组件设计原则 React Native 高并发优化

ARTS打卡Week 11

teoking

架构师训练营 - 第 8 周学习总结

红了哟

详解责任链模式

大头星

代理模式详解

大头星

关于Aborted connection告警日志的分析

Simon

MySQL MySQL错误日志

浅谈 GET 和 POST 区别

叉叉敌

面试 post GET

MacOS抓包工具Charles

叉叉敌

ios charles 抓包

大数据技术思想入门(三):分布式文件存储的流程

cristal

Java 大数据 hadoop 分布式

你期待的薪酬是多少?

escray

学习 面试

Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存

newbe36524

Docker 云计算 微服务 .net core ASP.NET Core

rockchip的yocto编译环境搭建

良知犹存

Linux yocto rockchip

看智微智能互动录播系统如何建设“三个课堂”

InfoQ_967a83c6d0d7

disruptor 高性能队列最佳选择

柿子

队列 disruptoer 高性能队列

速看!今天我才知道,UUID还分五个版本

麦洛

Java uuid

一家估值20亿美元的公司,竟然没有办公室?

Atlassian

远程办公 Atlassian Jira

1.Flink任务之间通信开销-6

小知识点

scala 大数据 flink

要刷LeetCode了,才发现自己连时间复杂度都不懂

大头星

算法 LeetCode

ARTS打卡(20.08.17-20.08.23)

小王同学

我与游戏相伴【自我访谈2】

叶阳夏烟

系列 游戏 访谈录 剧情游戏 仙剑奇侠传

想不出来问题的你

escray

学习 面试

想问面试官什么问题么?

escray

学习 面试

从Vessel到二代裸金属容器,云原生的新一波技术浪潮涌向何处?

华为云开发者联盟

Docker 容器 云原生 k8s Vessel

架构师训练营第十一周作业

Melo

Docker 安装及配置镜像加速

哈喽沃德先生

Docker 容器 微服务

utf8字符集下的比较规则

Simon

MySQL 字符集

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