写点什么

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

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

关注

评论

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

Monibuca 中的内存复用

不卡科技

GC go语言 流媒体开发 内存池 Monibuca

机器学习洞察 | JAX,机器学习领域的“新面孔”

亚马逊云科技 (Amazon Web Services)

机器学习

不容错过的基础设施专场!今天4点,关于全场景质量协同平台T-One的介绍 | 第86-96期

OpenAnolis小助手

开源 基础设施 操作系统 龙蜥大讲堂 T-one

沙漠觅绿洲——华为HMS生态强势赋能伙伴成功掘金中东非

最新动态

华为云盘古气象大模型研究成果在《Nature》正刊发表

新消费日报

用Vue3编写一个简单的组件

互联网工科生

Vue 3 slots

深入理解 Python 虚拟机:字节(bytes)的实现原理及源码剖析

EquatorCoco

Python 虚拟机 字节

prometheus Histogram 统计原理

蓝胖子的编程梦

Grafana Prometheus #Grafana #Prometheus #监控

新兴技术诞生,国产操作系统崛起| 社区征文

梦笔生花

操作系统 国产开源 年中技术盘点

文创商城项目实战

猫九

前端开发需要了解的工具集合

树上有只程序猿

星辰天合公司产品完成阿里云PolarDB数据库产品生态集成认证

阿里云数据库开源

polarDB PolarDB-X PolarDB for PostgreSQL

软件测试/测试开发丨Python常用数据结构-集合Set

测试人

Python 程序员 软件测试 测试开发

直播软件开发知识:实现感知网络质量功能

山东布谷科技

源码 软件 软件开发 直播 源码搭建

打工人都在用的AI工具

不在线第一只蜗牛

人工智能 工具 ChatGPT

企业利用bi商业智能工具有哪些改变呢?以瓴羊QuickBI为例

对不起该用户已成仙‖

AWS云VS阿里云 横向对比

WuKongCoder

云计算 阿里云 AWS EMR

华为云“盘古气象”登上Nature!

新消费日报

软件测试 | 测试设计技巧—游戏类

测吧(北京)科技有限公司

测试

JavaScript 函数

猫九

Git教学

猫九

git 学习

KaiwuDB 亮相 2023 可信数据库发展大会

KaiwuDB

KaiwuDB 2023可信数据库发展大会

对线面试官-Redis(六 如何保证 Redis 高并发 主从复制原理)

派大星

Java 面试题

[BitSail] Connector开发详解系列二:SourceSplitCoordinator

字节跳动数据平台

C++中vector自定义大小方式

梦笔生花

代码随想录训练营Day08 - 字符串(上)

jjn0703

专利技术系列 001 | 鹏云网络分布式系统脑裂问题解决方案

鹏云网络

云计算 分布式系统 分布式存储 分布式系统脑裂 软件定义存储

华为云代码托管CodeArts Repo:保护企业核心代码资产安全

华为云PaaS服务小智

云计算 华为云 代码托管 华为开发者大会2023

es笔记五之term-level的查询操作

Hunter熊

elasticsearch

从php5.6到golang1.19-文库App性能跃迁之路

百度Geek说

golang App 百度文库

如何用大模型 Prompt 解决行业场景问题?大厂中文教程来了!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

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