Groovy 2.3发布

2014 年 5 月 07 日

Pivotal 公司的 Groovy 项目经理 Guillaume Laforge 今天宣布 Groovy 2.3 已经发布,这是今年发布的第一个 Groovy 主版本,同时也是第一个官方支持的、能够在不久之前发布的 Java 8 上运行的主版本。

Groovy 2.3 新增加了“特征(traits)”支持,同时还提供了很多新的和改进的 AST 转换,例如 @TailRecursive、@Builder 和 @Sortable。新版本增加了一个新的支持 Path 的 NIO2 模块,极大地优化了 JSON 的解析和构建,支持闭包参数类型推断,增加了一个新的标记模板引擎,改进了 Groovysh 和 GroovyConsole 的易用性,增加了一个新的 GroovyAssert 测试工具,增强了 @BaseScript 类的能力,此外还包含一些其他的功能。

InfoQ 就该版本的发布采访了 Groovy 的产品经理 Guillaume Laforge。

InfoQ:首先祝贺你们又发布了一个伟大的Groovy**** 版本。你能跟我们介绍一下该版本的主要特性吗?

Guillaume: 该版本的主要亮点有两个,一是我们实现了“特征(traits)”,这让开发者能够更加优雅的组合行为,而不是单独地使用类和接口,同时能够更容易地促进重用。

作为一个示例,让我们看看下面这段在行为中使用特征的样板代码:

trait FlyingAbility {
String fly() { “I’m flying!” }
}

然后我们创建一个 Bird 类,该类实现了上面的特征并实例化了一个对象:

class Bird implements FlyingAbility {}

def b = new Bird()

通过下面的代码我们能够检查出 Bird 实例确实拥有一个新的 fly() 方法:

assert b.fly() == “I’m flying!”

这仅仅是一个简单的示例。

第二个主要特性是对 JDK 8 的支持。你可以在 JDK 8 上运行 Groovy 2.3,使用 Groovy 闭包替代 Lambda 表达式,或者在 Groovy 中重用所有新的 JDK 8 的 API(例如日期 / 时间等)。

InfoQ:对性能有哪些影响?

Guillaume: 我们确实对很多地方做了性能调整,目的是把一些慢路径转变成更快的路径(例如优化一些调用路径从而能够更高效地静态编译它们,或者在动态领域更好地利用“调用动态(invoke dynamic)”等)。我们对 JSON 的支持做了一个引人注意的、巨大的提升,无论是在解析还是在序列化方面, Matt Raible 最近在 InfoQ 上发布了一篇文章对此做了介绍

InfoQ:你们对正在提供或者使用的框架做了哪些变化?

Guillaume: 我们将很多依赖关系升级到了最近的版本,例如我们将用来生成字节码的 ASM 类库升级到了 5 版本,原因是该版本支持 Java 8 字节码的生成(例如 Lambda 表达式、接口默认方法等)。Groovy 分发包还自带了最近发布的 GPars 1.2,这是我们用来处理并发、并行和异步的类库。GPars 1.2 对很多功能做了提升,例如数据流处理方面(支持懒(lazy)任务,通过“ Promises ”更容易地实现 fork-join)。

InfoQ:接下来有什么计划?

Guillaume: 我们依然有很多事情需要做:我们正在从头开始重写我们的文档,通过测试构建过程中包含的所有代码示例让它变得“可执行”。文档的内容已经很丰富了,但是依然有很多部分需要填充。同时 Groovy 团队非常欢迎大家能够在这方面做出贡献。我们还打算重新修整我们的网站,提供新鲜的界面、新的文档和可读性更好的 API 文档。在长期计划方面,我们正在做的一些工作包括:

  • 一个新的、更加清晰的动态运行时(元对象协议)
  • 重写我们的语法。应该还是同样的 Groovy 语法,但是当我们决定引入新语法结构的时候,我们希望重写后的语法能够让 Groovy 的开发团队更容易地继续进化语言的语法。
  • 一些新的 Java 8 语法结构将很有可能会成为 Groovy 语法的一部分,包括对 JDK 8 API 进一步的增强。

如果你想了解与 Groovy 2.3 新特性相关的更多信息,可以查看发布说明

查看英文原文 Groovy 2.3 Released

2014 年 5 月 07 日 20:361256
用户头像

发布了 321 篇内容, 共 102.0 次阅读, 收获喜欢 6 次。

关注

评论

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

Java异常处理的9个最佳实践,看看自己是不是都用过?

geekymv

Java 异常处理

架构师训练营第五周作业

Geek_xq

一周信创舆情观察(12.14~12.20)

统小信uos

GitHub标星78.9K的算法宝典,让你分分钟刷爆LeetCode,更有“左神”精讲视频加持,金三银四offer手到擒来

云流

程序员 面试 算法 架构师

“关灯”看这出戏,依旧是百年至美

脑极体

关于自己的一个梦(控制)

Yuchen

情绪控制 心理 个人 控制感 自我思考

图解HTTP权威指南(二)| 连接管理

李先生

运维 HTTP SRE TCP/IP

乘百度AI之风,媒体从业者们这样登上智能云端

脑极体

python3参考秘籍-附PDF下载

程序那些事

Python 程序那些事 Python秘籍 Python数据分析

Hystrix-技术专题-基础运作原理

李浩宇/Alex

多线程之信号量(By C++)

赖猫

c++ 多线程

四面美团大众点评归来,分享一下我总结的面试题及解析:并发+spring+分布式+jvm+缓存+数据库

Java架构之路

Java 程序员 架构 面试 编程语言

架构师系列11 微服务架构的思考

桃花原记

skynet源码分析之网络层—Lua层

赖猫

c++ lua skynet

【Java入门】Array

HQ数字卡

Java 七日更

架构师训练营第五周总结

Geek_xq

今天,我们为什么应该读懂华为人工智能?

脑极体

游戏自动化测试——局内战斗

行者AI

测试

架构师训练营大作业1

邓昀垚

刘华:戏说Docker和K8s,一文让你成为懂王

刘华Kenneth

Docker 云计算 Kubernetes DevOps k8s

别找了,这份PDF是目前Java程序员最全面的学习文档,没有之一

Java架构之路

Java 程序员 架构 面试 编程语言

微服务:服务本身的设计、维护以及治理

积极&丧

领域驱动落地实现

星际行者

DDD 领域驱动

如何解决MySQL主从数据库没有同步的问题?

冰河

MySQL 高可用 主从复制

美团五面+滴滴四面,复盘总结117道面试题,大厂套路展露无遗

Java架构之路

Java 程序员 架构 面试 编程语言

够屌!看完“大牛程序员必修16课”足足让你超越80%Java面试者!赶紧冲!

比伯

Java 编程 程序员 架构 面试

花火交易所系统APP软件开发

开發I852946OIIO

系统开发

刨根问底,kafka到底会不会丢消息

爱笑的架构师

kafka 消息队列 Kafka知识点 消息中间件 七日更

2020 年美国程序员收入报告出炉,字节跳动上榜

多颗糖

程序员 招聘

TypeScript | 第五章:高级类型

梁龙先森

typescript 前端 七日更

真香~~看完看阿里P8大牛手写的450页文档总结,我精通Java并发编程了

Java架构之路

Java 程序员 架构 面试 编程语言

Groovy 2.3发布-InfoQ