Groovy on Grails 交流活动

2008年InfoQ交流活动的胶片:

http://cid-5b1e02933669f469.skydrive.live.com/redir.aspx?page=browse&resid=5B1E02933669F469!105&type=5

 

活动宣传页:
 
Groovy on Grails 交流活动
 
2008年上半年,一次活动中的翻译稿。Groovy on Grails一些文章的翻译:
 
10个对于Grails的误解
 
通常情况下所谓“新”的东西出现总是会伴随着许许多多的流言与困惑,Grails也不例外,许多人也许会因为这个而放弃继续使用它。以下是一个简要的Grails流言列表:
“Grails只是一个Rails的拷贝罢了。”Grails确确实实引进并统一了一些Ruby On Rails不错的创意,Grails将它们中的一部分应用到了Groovy/Java世界里,但更添加了许许多多Ruby中根本不存在的新特性与新概念,而这一切所作所为对Groovy/Java程序员而言都是充满意义的。
“Grails对我来说并不成熟。”我想日益增长活跃的社区站点是对这一说法最好的驳斥了。Grails本身就封装了Hibernate、Spring和SiteMesh等几个早已扬名远播的技术框架,当然更别提那个已经熟透了的Java JDK了,还有别忘了,Groovy已经三岁了。
“Grails使用了一种解释型语言(Groovy)。”Groovy是在运行阶段被Java虚拟机编译成字节码的,它绝对不是解释执行的——从来都不是,并且以后永远也决不会是。我说了“永远”吗?是的,毫无疑问!
“Grails需要它特有的运行环境。”不!你只需要使用“grails war”命令将应用打包成一个WAR文件,并将其部署到你最喜欢的应用程序容器中即可。当然,在开发的过程你大可使用Grails绑定的Jetty容器,这样完全可以做到开发的零配置与无需容器重启的动态载入功能。
“我的经理是不会让我用Grails的,因为它不是Java。”你真该敲他脑袋几下(注)!Grails源码是由大约85%的Java语言完成的,它运行于Java虚拟机上,部署在你的servlet容器里。Groovy实为一个Java强大的扩充,并在开发效率上比Java强出几倍。你当然也可以写一些简单的Java类并将其对象持久化在数据库里,也可以像在Java中一样将源文件或JAR包引入应用程序,例如EJB、Spring bean等等。一般说来一种新的技术总会因为其代码生涩性而难以推销出售,但无论什么也无法比“嘿,我刚趁午餐时间花了一个小时搞定发布了我们的新应用——喏,这是网址。”这样一个有趣的场景更有说服力了。(注:看起来我是有些过于喜形于色和小孩子气了,其实我不是这样的。)
“Grails只适用于常规的增删改应用程序。”有很多注重于Grails增删改的应用脚手架的例子,但那些只能体现这一小部分功能而已。Grails是适用于各种方向web应用的框架。
“脚手架功能需要我在每次改变后生成。”“脚手架”即是可以自动生成控制器和视图之增删改代码的样板控制器。对控制器和视图的显式重建通常毫无必要,除非你不愿应用动态脚手架的功能。“def scaffold = Classname”就可以是你所需要的全部,它可以变戏法般地创建其它一切东西并在开发模式中自动重载。接下去,当然,如果你愿意的话,你可以生成个性化的控制器和视图代码。
“Grails和其它框架一样,最终总有局限性。”所有的Grails应用程序都有一个Spring bean上下文,你可以自由添加任意Java bean进去,并在你的应用程序中访问它们。Grails有一个精巧的插件架构,用户标签库可以轻而易举地由JSP标签库导入并改变而来。
“我没法找到Grails程序员。”任何一个Java开发者都可以很容易发展成一个Grails人员。开发Grails应用使用比标准Java少得多得多代码,让他们有更多时间休息吧,从此程序员清早起床的速度将会大大加快了。
“Grails会令你在女性中更受欢迎。”很抱歉,事实是截然相反的。你会更加热衷于编码而不再乐于时不时地去拈花惹草。是的,我们将把许多类似的忠告写入读我文件中,当然除了一个由于连续数小时泡在Grails里而导致离婚的潜在可能的案例。
为什么不来听听其他用户对于免FUD编程和双倍的web应用开发速度的谈论呢,Grails2007交流大会即将开始,门票正火热销售中。
[来自:http://www.anyware.co.uk/2005/2007/07/02/10-common-misconceptions-about-grails/]
 
Groovy On Rails这一名字并不被Ruby On Rails的创建者所认可
 
今天Graeme Rocher——Grails项目的带头人,收到了一封来自David Heinemeier Hansson——Ruby On Rails项目带头人的邮件,邮件中他对Grails第一版的发布表示祝贺,但也希望我们不要使用Groovy On Rails这个名字。
我们团队一致决定不再用Groovy On Rails这个名字了,但我对于这个请求依然抱有相当的疑问。我认为这个请求有些过分,特别在Ruby On Rails这个名字并未注册商标专利的情况下。我完全可以理解Ruby On Rails的支持者们想要保护他们的商标,但他们应该选择一种合法手段,而不是主动疏远别人。
再次申明,以上是我们团队的意见,也是我的意见。我们与Ruby On Rails社区依旧保持良好的交流关系,即便是在今天这样看起来有些气焰盛起的时候。我们将公布Grails邮件发送清单并通知大家官方名字的变更。
[来自:http://www.jroller.com/sdevijver/]
 
棒极了!Grails1.0发布
 
2008年2月5日
现在你登陆Grails网站的话你就可以下载到Grails1.0版本了,它是目前可获得的最好的版本,而且,正如你看到的那样,它已经率先在Codehaus服务器上应用了!Codehaus程序员们只用了很少的时间就让整个系统流畅运转起来,显然它在服务器上的负载表现很优异。
大多数人心理上能够理解1.0版本发布的重要性,它设定了一个东西的对未来发展进步的基准和起点。Grails 1.0版本拥有难以置信的极其丰富的核心特色,并且有一组正在日益壮大的开源插件来不断增强功能。
现在Grails 1.0有一个强大的ORM DSL来完成Hibernate幕后做的许多工作,包括索引生成,这里我们可以找到Hibernate的二级缓存。不必将自动编集功能吹嘘得多天花乱坠,但它确确实实能将JSON/xml请求以一种经得起讨论评估的形式将有效载荷分布到bean中去。
我们也将自动运行功能的网站测试框架作为一个SVN支持的范例放到Grails的持续一体化中去了。在服务器环境中确实也出现了一些初始困难,但是整个进程却在本地开展了,我们只是将一些简单的优秀测试应用加入了SVN,但重要的是,其中的某些网页测试脚本已经得到应用。
这将有效地形成一系列的“TCK”以确保Grails在1.0基础上的稳定性,此外,一组大量的Grails单元测试为持续整合平台的构建而稳定执行。我们要感谢这些广泛的单元网络测试所做出的不平凡的贡献。
Graeme所做的一切让Groovy SVN HEAD和Grails SVN HEAD握起手来,不断的集成确保了Groovy中任何的特性变化都能到Grails中尽早地有所体现,除此以外,他还给了Groovy团队一大笔股票以支持他们去进行改变的尝试。
我们无比无比兴奋地与Grails新用户谈论1.0版发布的消息!
[来自:http://www.anyware.co.uk/2005/]
 
初涉Groovy
 
人超越一切动物进化之根本乃源于强烈的好奇心与求知欲。
——Alfred North Whitehead
欢迎来到Groovy的世界。
也许你已经在博客或邮件中听说过Groovy了,甚至你都已有所了解。如果你的某一位同事指出,你写的满满一页代码可以用短短几行Groovy语句完成,那么你翻起这本书的原因就不该仅仅是因为它上口的名字。好,到底为什么要学Groovy呢,你又能从中获得些什么呢?
Groovy会让你很快就获得短期回报的,它令你将代码写得更简捷,替你自动地完成某些任务,甚至生成一些特别的脚本帮助你日常程序员式生活。当然,它也会令你获得长效的回报,它让你的代码从未有过地清晰易读,更重要的是,对它的使用一直是充满快乐的。
学习Groovy是一项睿智的创新工程。它带来了强有力的语言特性,比如闭包,动态载入,还有Java平台的元类型对象。在这一切过程中,你的Java技能却永不过时,因为Groovy正是建立在对Java平台的体验与熟知的基础上的。你可以选择这两套语言工具中的任一款,也可以将它们完美地契合起来。
如果你还在对Ruby阵营鼓吹可以在一下午时间内轻易完成一整套web应用的逻辑感到惊奇,Python支持者和Perl迷们却早已通过敲打几个按键搞定了一套服务器集群,或者是干脆把他们一系列项目代码重写了一遍,正慢慢回味这整个过程中语言特性的使用呢。而另一方面,Groovy创造的目的也正是为了在遵循Java对象模型和顺从Java程序员惯性思维的基础上扩展该语言的能力。
第一章将带你领略Groovy的背景并且为你准备一下必要的知识。而一切都是从这个Groovy的故事开始的:为什么要创造Groovy,它的设计是怎样的,它在语言大家族里面又处于怎样的地位呢?第二章将带你领略更多Groovy的才华,让你切切实实体会到它是可以令你的生活轻松不少的,无论你是Java程序员、脚本狂,还是敏捷开发者。
我们坚信,学好一门语言的必经之路是:实践。在出现一些可以被IDE广泛使用的插件,以及Groovy的最新信息发布之前,你可以用我们提供给你的一系列脚本来模拟编译、解释,界面化运行。
到这一章的最后,你就会对Groovy有一个基本了解,并且知道可以用它来搞什么东西了。
我们作者和评论家,包括整个编辑团队,衷心祝愿你在使用这本书学习实践Groovy的时候,能真正享受快乐。
在Groovy的处子年——2004年,一群Groovy的开发者聚集到了伦敦,James Strachan组织了一次中心演说,告诉了大家这个让Groovy诞生的创意。
就在几年前,Strachan夫妇还习惯性地等迟来的航班。一次,当Strachan夫人去购物,Strachan先生来到网上冲浪,他还是习惯性地访问了Python站点,并且继续尝试对Python的学习。在这期间,他萌发了一个想法:作为一个老练的Java程序员,他意识到几乎快成为他母语的Java实在是太缺少Python独具的活泼和有用的特性了,例如表达文法对普通类型的本地语言支持,还有一些动态行为。于是新想法产生了,他要为Java添加特性。
以上也引出了Groovy开发的最主要原则:特性丰富多样,与Java契合友好,将动态语言吸引人的优势与强支持平台的健壮性结合起来。
我们不想诋毁任何一种语言,因为每一门语言都是有其特定的适用场合和应用能力的,但我们对Groovy在语言家族中的发展充满信心。
也许有些语言会比Groovy具有更多的特性,也许有些语言能与Java更好地结合,但到目前为止,能将这两方面几乎完美地结合起来的,唯有Groovy:是的,没有一门语言可以向它那样提供与Java那么好的契合性却又同时具有如此多的现代语言之特性。
既然你已经知道了一些创造Groovy的意图,那现在就让我们来看看它具体是什么样的吧。
[出处:《Groovy In Action》作者:Dierk Konig]
 
2GX: 概要——Grails令人讶异的增长速度
 
呃,我正从2GX——Groovy/Grails体验大会回来, Jay Zimmerman 和一群热心的工作人员将其办的完美无暇。还有一个好消息,如果你错过了它,那么在秋季的加拿大San Jose还将举办一届。
参加这次令人瞩目的大会的共计约两百人,都无比热闹地讨论Groovy和Grails。我将“Grails现状”作为周四晚上的主题,从Grails1.0发布以来不断发展和技术的双重角度进行了分析。
我本不打算发布幻灯片,但一些与会人士向我索取幻灯片,以便于能从不单单的从技术角度,更能谈到发展和社区的角度,去说服经理们对Grails的使用。如果你也有相同的志趣,看看我的幻灯片吧,它的大意如下:
当我们发布了Grails1.0版本,Codehaus的访问带宽总量难以置信地上涨了40GB。面对新版本发布后每10秒钟数以千计的下载量,Codehaus好心的组织者Contegix决定再为我们提供增加额外带宽的服务器。
请看Grails邮件列表统计,这已经突破了先前的记录,在一月达到平均140条每日的数量,看来在二月,这个情况也会差不多。
根据Nabble的这个统计,Grails成为了Java web框架中最醒目的社区,并做出了巨大贡献:
更有进一步的Grails插件和生态系统社区的增长迹象表明,如今,Grails插件库中已有了超过47组用户贡献的插件,其中包含二百万行代码:
博客统计也说明了用户迅速的增长,一年前Grails的博客统计还几乎为零(搞不好仅有的那几篇就是我写的,呵呵),不像现在,技术专家们会经常讨论Grails。
显而易见的,要让Grails像Spring和Hibernate一样具有巨大的普及性,还有很长的路要走,但这些好消息都无一例外地说明我们正走在正确的道路上。
[来自:http://graemerocher.blogspot.com/]
 
大型Grails商业应用启动
 
全美最大并且是新闻公司(Rupert Murdoch等)旗下的卫星广播天空(商业上称BSkyB)公司,新发布了采用Grails完成的网站。
这个站点的完成需要充满热情工作,需要坚实的商议,干得好,伙计们!
这体现了一个大型Grails商业应用(至少我们在G2One公司可以谈论这个事情了,呵呵)的成功发布,此时已经有每月约186百万页的访问量了。非常高兴看到有那么多公司转而关注和使用起Grails来,但愿这个势头能维持下去!
[来自:http://graemerocher.blogspot.com/]

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接《四火的唠叨》

分享到:

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Preview on Feedage: