Groovy/Grails的发展与回顾
作者: cornsomething
本文是这一年以来,在美国召开令人激动的 NFJS 系列会议的人们汇集在一起的东西。在几个礼拜之前,我非常幸运的在西雅图参加了我的第一次会议,并且在这个周末十分高兴的说说这方面的事情。这次的座谈会告诉我有很多的理由参与到软件开发中来。从上面的介绍,你可能认为今晚对软件开发有着极大的憧憬,是的,你猜对了。作为 250 左右的幸运儿,我们没有失望。
我们开始从 G2One VP 开始回顾Groovy/Grails,Groovy项目的领导者, Guillaume Laforge 首先告诉我们一些关于 Groovy 的历史,它开始于 2003 年,基于以下的目标:
·简化开发人员的开发
·和 Java 平台无缝集成
·尽可能的动态
五年以后,这个项目有:
·每个月超过 5 千的下载量,在发布一个新版本的时候最多有 1 万的下载量。
·超过 1 千的邮件列表描述。
·每一个月有将近 1 千的消息在 list 上。
·自从去年 Groovy/Grails 在 JavaOne 上谈到以后,一个礼拜就有 7 千个下载量。
随后, Guillaume 给我们讲述了一些有关 Groovy 的大成就。第一个就是有关“ Mutual of Omaha ”,有 5 万行 Groovy 代码,一半是业务代码、一半是测试代码。他们使用 Groovy 语言作为保险政策的一个风险计算引擎,有很多 Java 初学者和资深领域专家参与到项目中来。 Groovy 语言对于他们来说,主要的卖点是:
· Big decimal 计算(被 Groovy 语言默认支持)
·完美的 Java 集成
·闭包
以上的特点使用Groovy语言是一个编写商业规则表达式的理想语言。
对于那些还没有进入Groovy语言的人来说,还有一些如下的关键点值得你考虑:
·Groovy语言是类Java的语言
·它拥有平缓的学习曲线
·对于初学者和领域专家来说,它比Java简单
·你能把Java和Groovy代码混在一起使用
·它使用相同的字符串、正则表达式、安全/线程/OO模型
·它不是一个新的事物或平台
·并且没有重大的兼容性的问题
·在1.5版本,加入了Java 5的特性、 annotation 支持、泛型、 enums 等等
·同时也引入了 EJB3 、 JPA 、 Hibernate 、 sprint annotations 、 testNG 、 Junit4
最新版的 Groovy 语言—— 1.6 beta-1 版本将在下一周发布,比之以前的版本,这个新版本将有极大的性能提升,使得 Groovy 语言的性能超过其他的动态语言。
接着,我们开始回顾 Grails 项目,我们基于以下的场景开始:
·在 Grails 之前的 Web frameworks 使用起来是令人烦恼和痛苦的,太多的配置文档把你弄混乱,当测试改变时,你永远不得不重新发布。
· Ruby on Rails 是令人激动的。 Guillaume 这样说 Ruby :“有着一些伟大的原则,如契约代替配置,不重复自己( DRY )等等,但是却出现在一个非常规的平台上。”
· Grails 项目组希望人们通过使用 JVM 来保护他们在 Java 平台的投资
·他们采用“站在巨人肩膀上”的哲学,你可以看到,他们都使用了下列的一些开源技术
· Spring ( DI )、 Hibernate ( OR mapping ,处理遗留 schemas )、 Jetty 、 SiteMesh (用于页面布局和组件化)、 AJAX 库(富客户端实践)
Grails 1.0 在 2008 年 2 月发布,现在是每个月有 1 万 4 千个下载量。同时也有许多的插件可以获取,这些都是 Guillaume 提供的数据,并且他称 Grails 社区为“超活跃社区”。一些比较流行的插件的例子为:
· Searchable
·新的视图技术或者工具集成—— GWT 、 Wichet 、 YahooUI
· Web Services —— Axis 、 Xfire
·安全方面的集成
·面向企业级的—— JMS 、 LDAP 、 Mondrian 、 JasperReport
现在在插件 SVN 区已有超过 3 百万行的代码。
Grails 的成功故事和 Groovy 一样让人激动。特别是这样的事实—— SAP 集成了 Grails ,目的是为了在已经存在的基于 Java 网络复合平台上快速的写一个新的客户端,大量的 SAP 用户要求 Java 开发者快速的转到 Grails 开发平台。
天空电视台——英国最主要的电视节目提供商——使用 Grails 创建了一个新的 showbiz 网站,目标是每个月有 186 个百万级的页面刷新,到现在没有遇到过性能的问题。天空电视台现在决定使用 Grails 重写他们的主网站。
基于上述两个方面的目标,有一些非常好的问题和答复,如下, Q&A 由亮度显示:
Q: 你怎么看待在 JVM 上使用 Groovy 语言作为主要的开发语言?
A : Guillaume ——“ Groovy 意味着对 Java 的赞誉,而不是取代”,他接着说,“ Java 对于写高性能的代码是精彩绝伦的,因为动态语言永远会比静态语言慢。这样的观点是不错的—— Groovy 语言是好的想法的运动场,但最后需要 Java 来结束它”。
Q: 前面问题的反面——对于语言兼容有什么策略?
A : Guillaume 指出:“ 1.x 之间的版本是往后兼容,但是代码需要重新编译”。他们非常在意如果不是极端需要就不打断兼容性,可能在 Groovy 2.0 版本,为了获得一个较高的性能提升而需要打断兼容性。
Q: Grails 如何和 Ruby on Rails 区别开来?
A : “ Grails 不是 RoR 的一个克隆,不仅仅是将 Rails 的原理带到 JVM 上来。主要的不同是和 JVM 的集成,方法的更加先进,比较 Ruby on Rails 来说,甚至比 JRuby on Rails 都是这样。”
听着 Guillaume 的演讲,时间过的真快。中间也穿插一些爱好者通过网络连进来的一些简单演示,这些爱好者现在在他们项目组使用 Grails 创建解决方案——可以更快的给市场发布他们的产品。
到了这个时候,按时程有一个休息时间,所有的人可以自由交谈和喝点什么。然后进入专家讨论,这些详细情况会在下一个礼拜补充进来。
原文链接: http://java.dzone.com/news/groovy-grails-update-g2one-no-

Groovy/Grails的发展与回顾相关推荐

  1. 光阴似箭——绿巨人NVIDIA显卡发展简史回顾

    光阴似箭--绿巨人NVIDIA显卡发展简史回顾<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:off ...

  2. groovy+grails+gradle开发

    近期进了一家新公司,所用的技术栈就是:groovy+grails+gradle 技术介绍网上还是比较少的,我也是第一次接触: groovy: Groovy是一种基于JVM(Java虚拟机)的敏捷开发语 ...

  3. 写在Groovy/Grails栏目开通的话

    写在Groovy/Grails栏目开通的话 我从07年6月份开始接触Groovy,然后从12月份开始尝试Grails,到现在都有几个月了.几个月来,在摆弄2G的时时刻刻,会一些想法.很多时候,都想把这 ...

  4. 云化数据中心发展历程回顾及金融与运营商对云化数据中心技术的要求

    本文先带领大家详细回顾了云化数据中心架构发展的演变历史,描述了不同发展阶段云化数据中心使用的网络技术.再举例说明了2个特殊行业(运营商.金融行业)对云化数据中心网络的设计要求.结合不同行业的业务要求, ...

  5. 中国数学发展历史回顾

    ​    ​    ​120年前,1902年在江苏南京成立了"两江师范大学"(专科学校),只讲授算学(初等算术),不开设高等数学课程. ​    ​辛亥革命之后,1921年9月1日 ...

  6. 从FC到Wii 24年来游戏机CPU发展历程回顾

    作者:吴愧 从小学开始,游戏机就伴随着我走过一段快乐.辛酸的历程.宁愿早上饿肚子,也要省吃减用存钱买游戏卡,或者添钱换卡玩.好不容易有钱买到新的游戏卡,高兴得乐翻天,玩到饭都能都忘记吃.对于家里那些F ...

  7. AutoCAD发展历程回顾

    AutoCAD是由美国Autodesk公司于二十世纪八十年代初为微机上应用CAD技术而开发的绘图程序软件包,经过不断的完美,现已经成为国际上广为流行的绘图工具. AutoCAD可以绘制任意二维和三维图 ...

  8. 信息技术发展历程回顾

    第一台微型计算机其实是超级技术发烧友摆弄的玩意儿.但是随着AppleⅡ的"可视计算"软件(VisiCalc)于1979年首次推出,个人计算机开始走出实验室并走向商业应用.2年后,I ...

  9. groovy grails_在Grails战争中添加一个“精简”的Groovy Web控制台

    groovy grails 假设您已将Grails应用程序部署到服务器上–如何查找应用程序的配置方式? 如果您有来源,则可以查看Config.groovy , BuildConfig.groovy等( ...

最新文章

  1. 两个矩形重叠部分面积
  2. GitHub 私有仓库完全免费面向团队提供
  3. 巴什博奕(Bash_Game)
  4. 构建器模式_我喜欢构建器模式的三个原因
  5. recv, recvfrom, recvmsg
  6. 【LeetCode笔记】98. 验证二叉搜索树(Java、dfs、中序遍历、二叉树)
  7. php 高德地图计算距离,距离、长度、面积
  8. do...while循环
  9. linux mint安装类型,如何在Linux Mint 16中正确安装Ubuntu One
  10. python画二元一次函数图像_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
  11. 计算机类中文核心期刊
  12. crm系统是什么很棒ec实力_哪个CRM系统好
  13. F1摩托艇大赛(Shawn报道)
  14. 4.1-自动调整学习速率
  15. linux后门rootkit程序介绍
  16. AD转换为KiCAD的方法
  17. windows设置开机延时自启动程序
  18. Moto Defy刷机卡M无法进入RSD状态解决方法
  19. matlab网页运行
  20. Java 如何加载带密码的 PCKS8 PEM 私钥

热门文章

  1. linux convert命令安装及使用
  2. java webservice 示例_java webservice实例教程
  3. css里面的after_CSS中的after
  4. 杰里之解决开关机”POPO”声篇
  5. foxmail wine
  6. 德国康巴赫牵手德国Carl Mertens,力争全球“锅具之王”
  7. 两台计算机互联方案,没有互联网的环境中,如何做到两台电脑互连?
  8. 全场景多维度,高效数字智能化,大疆T40助力农业科技化发展
  9. Flutter入门系列(二)---Flutter的原理及美团的实践
  10. 海外LPWAN的王者是我,一文看懂Wi-Sun协议