写点什么

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

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

关注

评论

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

【LeetCode】基于时间的键值存储Java题解

Albert

算法 LeetCode 7月日更

密码你真的了解吗

卢卡多多

7月日更

实时音视频技术全栈攻略|寻找C站宝藏

liuzhen007

音视频 7月日更

性能测试框架对比初探

FunTester

性能测试 接口测试 测试框架 测试开发

领域驱动设计到底在讲什么?

escray

学习 极客时间 7月日更 如何落地业务建模

Ta想做一粒智慧的种子

白洞计划

我为什么要学习业务建模?

escray

学习 极客时间 7月日更 如何落地业务建模

Linux之find命令的参数详解

入门小站

Linux

PowerShell 正则表达式

耳东@Erdong

PowerShell 7月日更

网络攻防学习笔记 Day70

穿过生命散发芬芳

网络攻防 7月日更

你以为的你以为未必是你以为的

Bruce Talk

敏捷 随笔 Agile 引导和教练

ACM金牌选手整理的【LeetCode刷题顺序】

编程熊

Java 面试 算法 面经 笔试

架构实战营 模块八课后作业

iProcess

架构实战营

Kats-Facebook最新开源的时序分析工具

好孩子

京东智造云:在世界人工智能大会上,听到的工业智能生长的声音

脑极体

🏆【CI/CD技术专题】「Maven插件Docker系列」使用Maven插件构建Docker镜像的方法

码界西柚

Docker maven 7月日更 Plugin

Apache Flink 漫谈系列 —— 概述

云祁

flink 7月日更

架构训练营模块 1 作业 - 1班助教

听闻

【Flutter 专题】90 图解 Dart 单线程实现异步处理之 Future (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Go 学习笔记之 结构体

架构精进之路

Go 语言 7月日更

性能框架哪家强—JMeter、K6、locust、FunTester横向对比

FunTester

性能测试 接口测试 测试框架 测试开发

模块八作业

Presley

Hadoop 入门教程

若尘

大数据 hadoop

公司内部使用的数仓开发规范

白贺BaiHe

数据仓库 开发规范 数仓规范 7月日更

全面了解Java并发编程基础!超详细!

程序员的时光

Java 并发编程

在线脑图思维导图生成工具

入门小站

工具

模块一作业

Always

架构实战营

推荐系统的未来发展(三十三)

Databri_AI

价值观 推荐系统

暑假期间快手将重点整治平台:短视频平台如何完善内容审核机制

石头IT视角

只更新代码,然后发布版本:基于 Serverless Devs 原子化操作阿里云函数计算

Serverless Devs

Javascript 的工作原理:引擎、运行时和调用堆栈概述

devpoint

JavaScript V8 7月日更

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