`
nooalou
  • 浏览: 66520 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

好评一下Groovy

    博客分类:
  • java
阅读更多
与ruby相比Groovy虽然客户群最小,但这是由于它的历史比较短。不过,它具有Ruby和Python所没有的一个独特优点:Java开发人员熟悉它的语法,并且可以引用大量java现成的类库(这是我个人以为相比ruby的最大优势)和与java无缝衔接。该语言旨在为Java提供较高级语法,并且引入动态元素,那样Java开发人员就能提高工作效率,不像Java那样累赘多余。Groovy的另一个优点是,它作为单一的Java归档(JAR)文件来部署,那样它就可以轻松集成到比较大的Java应用里面。这样一来,开发人员就可以利用现有的Jave代码,同时获得动态语言的好处。

也许对于保守一点的开发人员,对于未来DSL群雄并举中谁能获胜,我将要站在哪个队伍中拿不准的时候,我就更倾向于Groovy。

因为Groovy更靠近java及上面提到的强于ruby的优势。

不过一点疑惑,当初sun为Jruby的投资是否是不冷静之举,还是另有原因?待时间来最终揭开种种疑惑。
17
5
分享到:
评论
25 楼 freej 2011-11-10  
如果非要学一种基于JVM的先进语言的话,还不如学习Scala。
24 楼 sword721 2008-07-23  
语言之争根本无意义.
groovy/grails的社区确实不够活跃.国内相关的介绍和资料也是相对非常少.关注grails也有一段时间了,现在的版本还是不错的,希望大家能持续关注.
23 楼 eckelcn 2008-03-16  
我认为Groovy因为被认识为Java的补充,而不是替代为好。
22 楼 geszJava 2008-02-26  
语言之争...没啥意思.
各爱各的去.
rails很有市场?这只是当前的情况.
我受不了的是ruby怪异的语法和无休止的魔法.做人何必活得那么累呢?
ruby好吗?我们经历过好几次不得不用perl来写东西的痛苦了.
换成groovy需要这样嘛?
21 楼 shiren1118 2008-02-23  
robbin 好像对现在的groovy了解的太少

而且grails完全可以替代ssh,而且很多特性更为实用,可以说是对以前的再思考。我感觉除了起点高点,其他都可圈可点
那么高的起点,它不适合大项目吗?





非常赞同lordhong观点:
sun对jruby的投资是为了吸引ruby程序员,纯市场开发目的,和技术无关。
我认为sun走错了这一步,他们其实可以大力发扬groovy。。。
20 楼 qichunren 2008-02-23  
我选择,我喜欢!
19 楼 dellsoft 2008-02-20  
顺便刚才看到了一篇文章,

http://www.jroller.com/ff/entry/groovy_good_bad_and_the

Groovy 1.6 将会有3倍的提升相比 1.5
Graeme Rocher say

Its a dynamic language, it is never going to be as fast as Java as it is another of abstraction above the JVM.

Groovy 是动态语言,它永远不会想java一样快,因为它是在Jvm 的抽象

That is not to say it is not going to improve, Groovy 1.6 will see a number of performance enhancements and on current benchmarks is sometimes up to 3 times faster than 1.5

这不是说,它不会提高,Groovy 1.6将会有一系列的性能提高,将会比1.5快3倍

But again you have to ask yourself what is fast enough? And what is the right tool for the job? Java is a great language for writing plumbing, Groovy is a great language for writing application code. This is what you do with Grails where most of the core is in Java and hence very performant.

再次问你自己,什么是只够快 ,什么是合适的工具适合工作
18 楼 dellsoft 2008-02-20  
看到有这么多人相应,至少说明现在大家越来越多的关注Groovy了,Groovy1.6性能将会有提升
17 楼 dennis_zane 2008-02-19  
怎么说呢,在groovy1.0之前我就关注了,在groovy和ruby之间简单地比较了下,很显然,那时的Ruby比groovy成熟太多,Groovy的语法特性实在没有吸引我的新东西,况且有rails这个因素,选择Ruby也是想跳出java换下思维。Groovy现在的发展不知道如何,不敢乱弹,不过Groovy显然必须寄宿于JVM,而Ruby的选择就很多:c ruby、jruby、IronRuby。就JRuby和Groovy之间来选择,JRuby有sun的团队持续不断地改进,这么短时间就发布到1.1RC2,而Groovy的团队显然没有这么活跃,功利角度我也更看好JRuby。
16 楼 山风小子 2008-02-18  
对于Robbin的评论,在下有以下几点不敢苟同:

1,“作为Java程序员来说,如果你用Grails编程写大一点的项目,就会很恐慌,因为IDE退化成文本编辑器了,大量的代码没有任何提示,检查和帮助,这种感觉很糟糕。”
不知道Robbin是否用过JetGroovy这个IDEA插件,该插件不管对Groovy还是Grails的支持可谓十分全面。

2,“但是groovy没有好的IDE支持,社区资源缺乏,Grails框架很不成熟,几乎是一个半拉子。而且程序员自己会觉得从Java转到Groovy上面没什么难度,心理上没有足够的克服困难的准备,所以更加容易遇到挫折。”
对于Groovy没有好的IDE支持,第一点我已经阐述过自己的观点了
而Grails框架目前还不是很成熟倒是事实,但没有任何框架是一蹴而就的,相信RoR也走过这段坎坷的道路。而“而且程序员自己会觉得从Java转到Groovy上面没什么难度,心理上没有足够的克服困难的准备,所以更加容易遇到挫折。”,我就更加不敢苟同了,如果说学习比较容易友好的东西都学不好,而且是因为自己的心理方面的原因,那我担心此人前途岌岌可危。

3,“从Java这种静态编译语言到动态脚本语言之间,我觉得是存在很大的思维上的鸿沟的,真要下定决心用动态语言,与其把着一个半生不熟的groovy,还不如干脆一点的ruby,否则痛苦的还是自己。”
您学习Groovy是在2006年开始学习Ruby之前,那时Groovy1.0Final都没发布呢,请看看现在的Groovy吧。

“BTW: 我当时认识一个Groovy的contributor,听他说groovy team很不活跃,感觉groovy前景和ruby没有办法比。”
我也认识一位Groovy的commitor,他对Groovy的前景充满着信心。
15 楼 nooalou 2008-02-18  
呵呵。。。

兄弟们,我们先不论谁好谁坏,客观存在的事实是:
1,ruby目前的确火热起来,这也我们学习它的理由。
2,Groovy的优势,尤其是亲java的特点也确实存在,我们不排除它以后也会火热,因此一部分人看到这一点,转而学习Groovy也可理解。
3,动态语言似乎的大势所趋,无论上面哪种,或者其他DSL学习一两个没坏处。
4,Groovy目前还存在欠缺,但这也是ruby以前走过的路,也是所有语言在流行之前必须要经历的痛苦过程,因此我们在冷静对待此事的同时,可以批判的学习,毕竟技不压身。

最后,希望javaEye的兄弟们,多多利用这块学习的沃土,掌握更多技能。

此问题讨论是无休止的,还是现在就着手学习为上,实践中体会的更深刻



14 楼 ShiningRay 2008-02-18  
Groovy是不错
问题是,Ruby和Rails更有市场
13 楼 agile_boy 2008-02-18  
呵呵,Robbin老大也在此陈述了其对Groovy的失望,其实每个人对语言的关注点都是不同的,因此得到的结论也不同。
象Robbin喜欢Ruby,而且在应用和实施方面也有所建树,但未必就能说明Ruby更适合企业应用。
象我这样的老古董,其实很简单,就是觉得Java的生命力还可以,因此也希望得到更像Java的东东,而且还能不落伍于当前流行的动态语言。
不过Groovy的性能还真有待提高啊!
12 楼 lordhong 2008-02-18  
我的想法是可以在java的基础上学习动态语言的特性,closure,curry,expando,等等。其实ruby,python,javascript,groovy,actionscript几乎都差不多,掌握了一种之后,学习其他语言应该会很快的。
11 楼 robbin 2008-02-17  
讨论语言发展的前景不能够脱离现实环境的支持程度和社区发展的状况,VB这种没有什么技术前景的编程语言照样是全球最流行的语言,并且将继续流行下去,仅仅因为VB在办公自动化市场的既成事实。ruby虽然1993年就发布了,但是一直到2004都是默默无闻的,在Rails出现以后,ruby社区才壮大起来,历史积累并不多,起步不算比Groovy早。

Groovy从现在的状况来看,定位是很尴尬的,它只能依附于JVM平台,应用场合非常有限:大型企业应用项目,直接基于Java,不会考虑Groovy;小型web开发项目,用Java虽然开发效率不算高,但也可以接受,保守一点就直接SSH框架了,激进一点就RoR了,即便折衷一点还有jruby on rails,用Groovy的理由是什么?或者只能说Groovy是诸多选择当中的选项之一罢了。至于DSL领域,并不是每个动态语言都可以做DSL的,ruby语法有这方面的优势,而python就明显不行,Groovy还没有看出来有这方面的潜力。

我当然不反对别人学习Groovy,事实上我在学习ruby之前,的确是曾经考察过Groovy,但结论是我个人不太看好Groovy而已。
10 楼 nooalou 2008-02-17  
21:46

对于robbin的说法,我有自己的一点不成熟看法:
弱类型导致习惯IDE的Java程序员无所适从

ruby在经历了10多年的历程才有了今天的“成熟”,当然目前的成熟度还远不如java,而groovy相比ruby还要年轻。我觉得我想要讨论的是一个大前提,是一个目光更远的未来的假想,假如在IDE,社区繁荣度同等情况下,Groovy和ruby会为我们带来什么?同学们会如何取舍?因为我觉得这是早晚的事。当然,还需要大家对社区的积极贡献才能有推动力。
另外:基于eclipse3的groovy插件已经面世,我近期较忙还没有机会一试,也许会值得期待。

动态语言灵活而强大的语法令Java程序员无所适从
这其实是动态语言和Java规则的重大不同导致的落差另Java程序员无所是从,有些茫然。但就象ruby社区丰富的资源已经为此做好了充分的准备一样,一但我们选择了Groovy同样要做好心里准备,短时间内更是如此。就象“fangzhouxing”所说的一样。我觉得谁是大盘绩优股,谁的长线更具价值,同时规避短线利润诱惑,这是要考虑一下的。呵呵。我可不是在说ruby的坏话,多一个选择多一条出路嘛。

至于成就感嘛,我觉得你说的有道理,毕竟ruby和java迥然不同,但与java同族也许这正是Groovy日后的潜在优势,也许在开发大型项目及利用已有java资源(这里指所有标准类库,开源项目和已实施完的项目)上更多的会看到Groovy的身影。这可能出于JVM考虑,出于和其它厂商接口的实现考虑,出于实施风险的考虑等。因为大一点的项目不会只有一家厂商,只用一种语言写完,但如果Groovy+java都不敢用,谁会用ruby+java或ruby+c!也许我们这些热衷于新技术的兄弟们敢,因为我们了解ruby,我们了解Groovy,但我们的老板不一定敢。

Groovy社区目前的确不够热闹,我几乎有空就去逛。不过,相信随着oracle的支持,以及众热衷贡献者的努力,Groovy会有一个不错的明天。

我只是希望javaEye能为大家提供更高端、更前卫同时更全面的技术交流环境。因为这里是我非常喜爱的社区。
9 楼 robbin 2008-02-17  
BTW: JavaEye不存在吹捧ruby,贬低groovy的现象。作为网站来说,哪方面的人比较多,哪方面的需求比较多,我们就得多开一些这方面的版面。
8 楼 robbin 2008-02-17  
或者简单的说:

Java转到groovy的成本,和Java转到ruby的成本是一样大的。但是付出同样的时间和精力,掌握了groovy和掌握了ruby相比,得到的回报差距太大。
7 楼 robbin 2008-02-17  
传统的Java程序员未必会喜欢groovy。我在06年学习ruby之前,曾经短时间的学习过groovy,当然就对groovy非常不感冒,所以放弃了groovy,开始学习ruby。

对于Java程序员来说,Java语言的优势是什么?是强类型的静态编译带来的IDE强大的代码辅助功能。在Eclipse/IDEA里面写Java代码,IDE能够让我们如虎添翼,无论是代码提示,类型检查,源代码跟踪还是代码概览,一应俱全。有了强大IDE的支撑,程序员有种很安全的感觉,我相信现在没有哪个Java程序员能够脱离Eclipse/IDEA用文本编辑器写Java代码了。

1、弱类型导致习惯IDE的Java程序员无所适从

作为Java程序员来说,如果你用Grails编程写大一点的项目,就会很恐慌,因为IDE退化成文本编辑器了,大量的代码没有任何提示,检查和帮助,这种感觉很糟糕。当然ruby程序员也有类似的问题,但是ruby程序员一向习惯了脚本编程,不像Java程序员在Java和groovy中间来回切换那么大的心理落差。

2、动态语言灵活而强大的语法令Java程序员无所适从

Java是一个语法简单的静态强类型语言,对于习惯了Java思路的程序员来说,面对动态语言的灵活性,会非常不习惯,甚至觉得不可思议,从编程思路上来说,存在很大的差异。

Java程序员转到ruby/groovy的时候都要面临这两个问题,但是对于ruby来说,情况要好很多:ruby的IDE现在已经非常强大,ruby社区资源丰富,Rails框架发展成熟。更重要的是,程序员转换一种编程语言,自己已经做好了足够的心理暗示来面对编程语言的困难。

但是groovy没有好的IDE支持,社区资源缺乏,Grails框架很不成熟,几乎是一个半拉子。而且程序员自己会觉得从Java转到Groovy上面没什么难度,心理上没有足够的克服困难的准备,所以更加容易遇到挫折。

从Java这种静态编译语言到动态脚本语言之间,我觉得是存在很大的思维上的鸿沟的,真要下定决心用动态语言,与其把着一个半生不熟的groovy,还不如干脆一点的ruby,否则痛苦的还是自己。

BTW: 我当时认识一个Groovy的contributor,听他说groovy team很不活跃,感觉groovy前景和ruby没有办法比。
6 楼 fangzhouxing 2008-02-17  
希望eclipse groovy plugin 能尽快成熟起来.

相关推荐

Global site tag (gtag.js) - Google Analytics