阅读更多

9顶
2踩

编程语言

原创新闻 Groovy 2.1发布,完全支持“动态调用”

2013-01-28 10:44 by 副主编 wangguo 评论(8) 有7623人浏览
Groovy团队近日发布了最新的Groovy 2.1版本。


在Groovy 2.1版本中,引入了诸多新的特性:

  • 提供了对JDK 7 动态调用(invoke dynamic)字节码指令和API的完整的支持。
  • 通过特殊注解来辅助文档和专有领域语言,从而改善静态类型检查功能,此外,新增了静态类型检查器扩展
  • 提供了自定义编译选项
  • 元注解更灵活,与注解结合更优雅
  • 其他各种功能增强和改进
详细信息:Groovy 2.1 release notes

下载地址:http://groovy.codehaus.org/Download?nc

开发团队称,在2012年,Groovy已经被下载超过170万次,并与一些成功的Groovy项目(如GrailsGradleSpockGriffon等)一起构成了一个强大的生态系统。团队表示,会在未来不断改进Groovy的现有功能并增加新的功能,使得该语言得到长足发展。
  • 大小: 14.6 KB
  • 大小: 41.2 KB
9
2
评论 共 8 条 请登录后发表评论
8 楼 热带翎羽 2013-01-30 18:28
:http://groovy.codehaus.org
mmhotsky 写道
Groovy靠谱吗?因为没有足够的经验,始终没有在项目当中大规模的使用过,有用过的兄弟吗?谈下心得呗

商用项目用过,Performance木有问题!缺点是:IDE支持和“动态语言”带来的难以调试,必须使用TDD
7 楼 wushexu 2013-01-30 15:49
scala我也学习过。它是强类型,加上类型推断。一大能力是模式匹配,还有原生的并发支持(actor模式)。因是强类型,运行效率会比较高。并发支持groovy有gpars库,相当好,也不一定非要在语言级别支持。我是更喜欢无类型(不需类型声明)的动态语言,所以不用scala。scala学习起来会比groovy难些,在团队中使用也是要考虑的。
6 楼 skyfaint 2013-01-30 11:15
对scala的看法
1. scala或许在语言设计上非常优雅,这个我没有什么发言权。
2. 它支持各种语言

但是它的学习曲线太过陡峭,我试图推过几次,但是包括我在内的几个组员都不看好它,积极性不高。而且如果是在项目中采用动态语言的一个重要的原因一定是希望开发速度快,这个它反而又没有优势。相比而言jython, groovy学起来快,做起来快,和现有模块结合又好,scala更像是个叫好不叫座的东西
5 楼 skyfaint 2013-01-30 11:11
Groovy我用过,并且最终推入大型项目作为补充模块了,很不错,非常灵活提供的追加api很方便。他的closure也是随大流的结构,比还在襁褓里的jdk8的优雅多了。我觉得他的优点有
1. 方便的api和closure处理
2. 简洁的xml访问,用过java处理xml都知道这个解析有多恶心,groovy能通过xpath轻松搞定
3. 对循环的处理
4. 判断null和非null的及其后继逻辑简单实用

缺点
1. performance略有影响
2. 模块大的话还是死板一点的java好,动态语言在大模块和很多逻辑的情况下maintainance还是相对困难。不过这个不是groovy的问题
3. 部分老板对动态语言有排斥心理


4 楼 mainlove 2013-01-28 16:30
就没人研究 scala么
3 楼 mmhotsky 2013-01-28 14:06
感谢wushexu兄弟!以后有合适的机会,我会推动它在项目中使用
2 楼 wushexu 2013-01-28 13:15
mmhotsky 写道
Groovy靠谱吗?因为没有足够的经验,始终没有在项目当中大规模的使用过,有用过的兄弟吗?谈下心得呗

相当靠谱。开发效率高。
对JDK有很多方便的扩充。用groovy后几乎所有的*.util包都不需要了(包括org.apache.commons.*)。处理IO,XML,JSON都很方便。groovy.sql、AntBuilder很有用。
另外,并发库gpars很漂亮。基于Apache HttpClient的HTTP Builder用起来很爽。
不建议在计算密集型的代码里用(2.0之前版本)。支持动态调用后运行效率应该会有大幅提升。
1 楼 mmhotsky 2013-01-28 11:30
Groovy靠谱吗?因为没有足够的经验,始终没有在项目当中大规模的使用过,有用过的兄弟吗?谈下心得呗

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Groovy 2.1 的发布带来了多项新的功能和改进,这些更新旨在提升开发者的编程体验并增强语言的功能性

    The Groovy team is pleased to announce the release of Groovy 2.1.0. With over 1.7 million downloads in 2012, a strong ecosystem of successful projects like Grails, Gradle, Spock or Griffon built on ...

  • java调用groovy_Groovy小结:java调用Groovy方法并传递参数

    Groovy小结:java调用Groovy方法并传递参数@(JAVA总结)1. 场景描述在网上查了资料发现,java有三种方式调用groovy脚本。但是真正在实际的服务器环境中,嵌入groovy脚本往往需要满足下面的条件:可以直接调用groovy...

  • Groovy 2.0.6 和 Groovy 2.1 beta 版本发布

    Groovy团队近日发布了Groovy 2.0.6和Groovy 2.1 beta两个版本。 Groovy 2.0.6主要是2.0分支的一个bug...完全支持JDK 7中的动态调用(invoke dynamic)特性 Groovy并发框架GPars升级至1.0 @DelegatesTo注解:帮助I...

  • Groovy 2.0.6和Groovy 2.1 beta版本发布

    Groovy团队近日发布了Groovy 2.0.6和Groovy 2.1 beta两个版本。 Groovy 2.0.6主要是2.0分支的一个bug修复版本,建议2.0分支用户升级至该版本。 Groovy ...

  • Guillaume Laforge谈Groovy 2.1

    本文来源于我在InfoQ中文站翻译的文章,原文地址...在该版本中,Groovy添加了几个新特性:完全支持Java 7的invokedynamic通过特殊的注解来辅助文档与领域特定语言的类型安全,超越了传统的静态类型检查能力新增的编译自

  • groovy 兼容 java,升级Groovy 1.7 - 2.1不兼容

    我正在从Groovy 1.76迁移到groovy 2.1并且在运行一些Java代码时出现问题 .我在我的类路径上设置了java 7和Groovy 2.1 . Gradle正在运行,我的项目可以像以前一样运行所有单元测试并成功执行 .但是,我有一个java类...

  • boot中groovy替代java_springboot应用动态运行groovy脚本-附源码

    一、简介在springboot项目中,开发人员可以很方便的完成各种功能的开发和封装,提供流行的restful api接口。然而对项目功能的测试,...那么能否实现动态组合或运行spring容器中注册的各个bean的功能、动态运行bean的...

  • Android Groovy 调用(十)

    1. Groovy调用脚本 groovy脚本文件hello.groovy。 println "Hello World!" // Hello World! 输入groovy hello.groovy可以调用该脚本 也可像java一样先进行编译,生产hello.class文件。 groovyc hello....

  • java groovy jar包_java调用groovy实例

    1.maven引入groovy jar包org.codehaus.groovygroovy-all2.1.92.调用package com.test;import java.util.ArrayList;import java.util.List;import groovy.lang.GroovyShell;public class TestGroovy {public static ...

  • springboot 中使用groovy脚本的各种方式

    springboot中使用groovy脚本的各种方式

  • groovy代码动态加载运行实战

    class Calculator { //groovy语法 def discount(a,b){ def c = a * b } //java语法 int add(int a, int b){ return a + b; } //java语法 String addStr(Map map){

  • JAVA调用groovy闭包_Groovy中的闭包

    Closures(闭包)本节主要讲groovy中的一个核心语法:closurs,也叫闭包。闭包在groovy中是一个处于代码上下文中的开放的,匿名代码块。它可以访问到其外部的变量或方法。1. 句法1.1 定义一个闭包{ [closureParameters...

  • 基于Groovy实现Spring Bean的动态加载

    Spring对Groovy有着良好的支持,能把Groovy实现类作为Bean来使用,在前一篇Blog《Spring对Groovy Bean的支持》有详细的描述 http://my.oschina.net/joshuazhan/blog/137940 。基于Groovy Bean可以实现Bean的动态...

  • JAVA代码的热部署,动态语言Groovy使用的三种方式

    JAVA代码的热部署,动态语言Groovy使用的三种方式 一、概述 Groovy是构建在JVM上的一个轻量级却强大的动态语言, 它结合了Python、Ruby和Smalltalk的许多强大的特性. Groovy就是用Java写的 , Groovy语法与Java语法...

  • 外加热强制循环蒸发器装配图(CAD).rar

    外加热强制循环蒸发器装配图(CAD).rar

  • 数控车床纵向进给系统设计.zip

    数控车床纵向进给系统设计.zip

  • vault_side_off_ominous.png

    j

  • 爬虫 bangumi名称和评论数

    爬虫 bangumi名称和评论数

  • 基于SpringBoot的垃圾分类回收系统(源码+数据库+万字文档)526

    基于SpringBoot的垃圾分类回收系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览垃圾分类回收系统信息。 个人中心:管理个人信息,查看历史记录和订单状态。 运输管理:查看运输信息,垃圾回收的时间和地点。 公告管理:阅读系统发布的相关通知和公告。 垃圾回收管理:查看垃圾回收的信息,回收类型和进度。 垃圾出库申请管理:提交和查看垃圾出库申请的状态。 【管理员功能】 首页:查看垃圾分类回收系统。 个人中心:管理个人信息。 管理员管理:审核和管理注册管理员用户的信息。 用户管理:审核和管理注册用户的信息。 运输管理:监管和管理系统中的运输信息。 公告管理:发布、编辑和删除系统的通知和公告。 垃圾回收管理:监管和管理垃圾回收的信息。 垃圾出库申请管理:审批和管理用户提交的垃圾出库申请。 基础数据管理:管理系统的基础数据,运输类型、公告类型和垃圾回收类型。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以

  • 这篇文章是台湾大学(NTU)计算机科学与信息工程系(CSIE)2021年秋季学期算法设计与分析课程的第一份作业(Homework#1)的具体要求和题目描述 以下是主要内容的总结:

    内容概要:本文档是台湾大学计算机科学与信息工程系2021年秋季学期《算法设计与分析》课程的第一次作业(Homework#1)。作业包含四道编程题和三道手写题,旨在考察学生对算法设计和分析的理解与应用能力。编程题涉及汉诺塔、数组计算、矩形点对、糖果分配等问题;手写题涵盖渐近符号证明、递归方程求解、幽灵腿游戏优化、不公平的卢卡斯问题等。文档详细描述了每个问题的具体要求、输入输出格式、测试用例以及评分标准。此外,还提供了编程技巧和注意事项,如避免延迟提交、正确引用资料、处理大输入文件等。 适合人群:具备一定编程基础的本科生或研究生,特别是修读过或正在修读算法设计与分析相关课程的学生。 使用场景及目标:①帮助学生巩固课堂所学的算法理论知识;②通过实际编程练习提高解决复杂问题的能力;③为后续更深入的学习和研究打下坚实的基础。 其他说明:此作业强调团队合作和个人独立思考相结合的重要性,鼓励学生在讨论后用自己的语言表达解决方案,并注明参考资料。对于编程题,特别提醒学生注意输入文件可能较大,建议采取适当的优化措施以确保程序运行效率。

Global site tag (gtag.js) - Google Analytics