写点什么

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

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

关注

评论

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

跨平台移动APP开发进阶(一):mui开发注意事项

No Silver Bullet

App 跨平台 2月月更 mui

如何快速开发 Serverless Devs Package ?

Serverless Devs

Serverless

Web Components 系列(五)—— 详解 Slots

编程三昧

前端 组件化 2月月更 WebComponent

第十节:SpringBoot中的日志管理

入门小站

spring-boot

Web Components 系列—— 详解 Slots

CRMEB

模块二作业

blazar

「架构实战营」

深入浅出 ESM 模块 和 CommonJS 模块

局外人

JavaScript node.js 前端 前端开发 模块化

架构实战营模块二作业-微信朋友圈复杂度分析

炎彬

「架构实战营」

iOS开发备战金三银四·突击大厂的算法与底层原理复习方向

iOSer

ios iOS面试 iOS底层 金三银四跳槽 算法面试

跨平台应用开发进阶(三): uni-app 实现资源在线升级/热更新

No Silver Bullet

uni-app 更新 版本升级 2月月更

模块 7 作业

miliving

给 zsh 自定义命令添加参数自动补全

mzlogin

Shell zsh

基于 SAP BTP 平台的 AI 项目经验分享 | 社区征文

汪子熙

人工智能 机器学习 AI 新春征文 2月月更

程序员,如何避免无效会议?

蜜糖的代码注释

2月月更

在线ASCII Banner艺术字生成工具

入门小站

工具

项目遇到突发问题,如何给上级做汇报?

石云升

项目管理 项目经理 2月月更

springboot druid 数据库连接池连接失败后一直重连

Jeremy Lai

无人管的 InfoQ 每周精选

scruel

InfoQ

iOS开发·备战2022金三银四-runtime原理与实践: 消息转发详解篇

iOSer

ios runtime iOS面试 ios开发 金三银四跳槽

微信朋友圈业务架构分析

Geek_1b4338

#架构实战营 「架构实战营」

验收测试驱动开发后记

Bruce Talk

敏捷 Agile User Story

自省与反思(一)

懒时小窝

反思 反思总结

Go 语言入门很简单:String

宇宙之一粟

Go 语言 2月月更

蜜罐中利用jsonp跨域漏洞和xss漏洞的分析

H

网络安全 安全漏洞

[架构实战营] 模块九作业

Geek_0ed632

「架构实战营」

简析Web3 架构:前端、后端和数据

devpoint

区块链 dapp Solidity Web3.0 2月月更

华为云IoT体验:基于IoT平台构建智慧路灯应用

乌龟哥哥

2月月更

DevOps进阶(二):DevOps 发展史

No Silver Bullet

DevOps 2月月更

《人月神话》第十九章阅读笔记:20年后的《人月神话》

panda

人月神话 概念完整性 阅读笔记

渗透利器 | 常见的WebShell管理工具

喀拉峻

网络安全

微信朋友圈高性能复杂度分析

「架构实战营」

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