Topic: Groovy/Grails的发展与回顾

  Print this page

1.Groovy/Grails的发展与回顾 Copy to clipboard
Posted by: 阿熊
Posted on: 2008-08-22 22:42

作者: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创建解决方案——可以更快的给市场发布他们的产品。
到了这个时候,按时程有一个休息时间,所有的人可以自由交谈和喝点什么。然后进入专家讨论,这些详细情况会在下一个礼拜补充进来。

2.Re:Groovy/Grails的发展与回顾 [Re: 阿熊] Copy to clipboard
Posted by: JiafanZhou
Posted on: 2008-08-24 08:38

seems not many people are studying and using Groovy/Grails, Smile

3.Re:Groovy/Grails的发展与回顾 [Re: 阿熊] Copy to clipboard
Posted by: kenlee14
Posted on: 2008-08-28 09:06

agreet with u,man
just a few friends using it
i found the first websit using grail/groovy
http://www.javaread.com
call for opensource & share
not bad.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923