写点什么

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

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

关注

评论

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

使用和风天气 API 10分钟搭建天气预报数据看板

蒋川

API 天气api

自己动手写Docker系列 -- 5.5实现容器停止

Go Docker 4月月更

快速尝鲜:RabbitMQ 搭建完就得用起来

阿Q说代码

RabbitMQ springboot 4月月更 消息确认机制

分布式session之RedisSession的探索

Rubble

redis 4月日更 4月月更

架构实战营-模块二作业

,lazy

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

一文了解垃圾回收算法中的引用计数算法

宇宙之一粟

垃圾回收算法 引用计数 4月月更

微信朋友圈的高性能复杂度

大眼喵

「架构实战营」

华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询

华为云开发者联盟

数据库 华为云 GaussDB(for Influx) 子查询 InfluxQL

阿里二面:携程配置中心Apollo服务端是如何感知配置变化的

root

Go服务错误堆栈收集降频策略

SFLYQ

后端 高并发 Go 语言 日志采集

Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

xuri

golang Excel Apache POI Go 语言 Excelize

B 端 SaaS 产品自动化事件设计 - 规则表达式

龙国富

自动化 SaaS 正则 B端 规则表达式

架构训练营模块 2 作业

小马

「架构实战营」

微信朋友券的高性能复杂度

CityAnimal

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

架构实战营作业 - 模块二

haibin369

「架构实战营」

Linux驱动开发-编写PCF8591(ADC)芯片驱动

DS小龙哥

4月月更

架构实战营 - 第 6 期 模块二课后作业

乐邦

「架构实战营」

[Day11]-[动态规划]让字符串成为回文串的最少插入次数

方勇(gopher)

LeetCode 数据结构和算法

模块二作业:微信朋友圈高性能复杂度分析

杨波

「架构实战营」

spring-cloud 链路追踪

Rubble

4月日更

十年磨一剑,墨菲安全正式发布开源项目murphysec

墨菲安全

开源安全

微信朋友圈架构复杂度分析

Trent

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

Geek_bc9c8d

模块二:微信朋友圈高性能复杂度分析

jiaoxn

「架构实战营」

直播预告|MobTech携手中国信通院共话数据治理建设实践

MobTech袤博科技

数据安全 火山引擎 信通院 MobTech袤博科技

Test

haibin369

《手写Mybatis》第4章:Mapper XML的解析和注册使用

小傅哥

小傅哥 mybatis 工厂模式 建造者

为啥JS/TS里都会有"use strict"

华为云开发者联盟

js ts 严格模式 use strcit 使用严格

微信朋友圈高性能复杂度

鱼恨水

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

Kevin

「架构实战营」

PiFlow 发布企业级分布式关系型数据库 OceanBase 组件

OceanBase 数据库

oceanbase OceanBase 开源

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