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-