写点什么

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

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

关注

评论

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

让GPT学会使用工具,拓展技能

蔡超

GPT ChatGPT LLM GPT-4 #LangChain

2022-04-22:给你两个正整数数组 nums 和 target ,两个数组长度相等。 在一次操作中,你可以选择两个 不同 的下标 i 和 j , 其中 0 <= i, j < nums.leng

福大大架构师每日一题

Go 算法 rust

MediaPlayer音频与视频的播放介绍

芯动大师

api 网关 MediaPlayer 三周年连更

跨平台应用开发进阶(五十四):Android APP调试工具:ADB

No Silver Bullet

android adb 跨平台应用开发 三周年连更 APP调试工具

职场进阶必须拥有的4种能力,你掌握了吗?

Jack

如何真正“不花一分钱”部署一个属于你的大模型

Zhendong

人工智能 PyTorch ChatGPT

100个Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序

海拥(haiyong.site)

三周年连更

Unity 之 超级实用的小技巧

陈言必行

Unity 三周年连更

深度学习基础入门篇[七]:常用归一化算法、层次归一化算法、归一化和标准化区别于联系、应用案例场景分析。

汀丶人工智能

人工智能 机器学习 深度学习 归一化算法

深度学习基础入门篇[六(1)]:模型调优:注意力机制[多头注意力、自注意力],正则化【L1、L2,Dropout,Drop Connect】等

汀丶人工智能

人工智能 机器学习 深度学习 正则化 注意力机制

Mysql主从复制

乌龟哥哥

三周年连更

Spring 的 IoC(控制反转)

HoneyMoose

如何使用 go-micro 写微服务应用

宇宙之一粟

Go 微服务 三周年连更

HTTP协议中Via的用法

阿泽🧸

三周年连更 via

线上多域名实战

越长大越悲伤

JavaScript 前端 CDN 域名

申请chatGPT账号

石云升

AI ChatGPT 三周年连更

ArkCompiler开发

坚果

OpenHarmony 三周年连更

iOS MachineLearning 系列(3)—— 静态图像分析之区域识别

珲少

寻找工作中焦虑的源头——系统思考实践

Bruce Talk

系统性思考

如何在 Java 8 中使用 Streams?结合多种案例剖析学习!

Java架构历程

三周年连更

.gitignore 详解

程序员海军

三周年连更

《皮囊》

后台技术汇

三周年连更

「Go框架」深入理解gin框中Context的Request和Writer对象

Go学堂

golang 开源 程序员 个人提升

音视频八股文(3)--ffmpeg常见命令(2)

福大大架构师每日一题

音视频 ffmpeg

16种国际版多语言点赞抖音分享点赞任务平台网站APP源码搭建

网站,小程序,APP开发定制

Orillusion荣获SegmentFault AIGC Hackathon 2023 线上黑客马拉松赛二等奖&最佳创意奖

Orillusion

开源 元宇宙 webgpu AIGC ChatGPT

为啥运维人员更喜欢 NeoVim 而不是 Vim?这8个原因或许是答案,命令对比一目了然!

wljslmz

Linux 运维 三周年连更

IPv6协议转换技术

穿过生命散发芬芳

ipv6 三周年连更

玩转Redis|学会这10点让你分分钟拿下Redis,满足你的一切疑问

浅羽技术

Java 数据库 redis 缓存 三周年连更

一文读懂Redis哨兵

京茶吉鹿

数据库 nosql redis哨兵

Android C++系列:数组在函数中注意事项

轻口味

c++ android 三周年连更

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