论坛首页 Java企业应用论坛

祝贺Guice拿了Jolt Award

浏览 4019 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-10  
我对计算机界的八卦一向都不太敏感,也对很多所谓的“名人”不感兴趣。你说那章子仪,Britney好歹还能拿脸蛋,衣服,和衣服里面的东西来娱乐大众,一帮不知道哪来的猥琐男就写了点谁都能写的程序,又不是证明了歌德拔河,也不是火箭科学,有什么好追星的?

所以对Guice拿了Jolt也是后知后觉。不过在知道Guice是打败了Spring拿到的奖的,还是颇觉得欣慰了一下。

要说Guice也不是多完美,很多功能的缺失还是对使用造成了些障碍的。所谓的“EDSL”,或者马丁嚼了嚼前人吃剩的东西再吐出来给大众继续啃的“fluent interface”,给测试,扩展和阅读稳当都造成了很大的麻烦。(我的jparsec, rparsec系列也可以自称是fluent interface,比如你可以说foo.many.map {...}之类的,但是它的每一步本身都具有完整的语义,而且都统一地是一个Parser对象,而不是额外引入乱七八糟古里古怪的中间类型。)

不过,你看跟什么比吧。这Spring,号称open-source,但是奉劝你还是闭着眼睛用,千万别好奇心起,往里面看什么代码。那设计,那代码,叫一个乱,真是让人不忍心看下去。

作者也是一根筋,遇着要客户扩展功能的,必然是弄个什么MyChitterlingAware接口,然后instanceof到处用,然后跑到文挡里一丝不苟孜孜不倦地加上一章“如果实现了MyChitterlingAware接口,那么你就会自动得到我的原始的带着消化系统鲜活气息的大肠一段”;然后整个系统中谁也不知道到底有多少XYZAware的special case。

遇着不同的目标场景,必然是弄一个子类,什么"ChitterlingApplicationContext extends ClassPathApplicationContext", "SpicyChitterlingApplicationContext extends ChitterlingApplicationContext",而且如果某个MyChitterlingAware对象需要从appcontext得到东西,必然是要实现一个BeanFactoryAware,然后再判断"instanceof ChitterlingApplicationContext"。最后弄了一个非常sophisticated的类继承图,显得好专业呀;

遇着逻辑分支,比如singleton与否,必然是一个"if (isSingleton()) {...}";

就算眼馋人家用java写配制可以重构,也还是脑子不带转弯地拿xml那套写JavaConfig,代码看上去还是xmlish,一点也不pojo;

所有OO初学者能干的蠢事,似乎都一五一十一板一眼地干了一遍。

那个,你要说了,那为什么人家那么成功?“一站式”啊,不管啥玩艺儿,一股脑都给你塞进来,这个主意还是很有市场的;“vendor lock-in”啊。这么多应用,这么多框架,都依赖于ChitterlingAware,你说你能想不干就不干了?“竞争对手实在不争气”啊,那个什么ejb,吓跑了多少“我其实就想写点程序呀”的程序员?

现在好了,终于有一个decent的DI framework并且能够不被劣币给驱逐了。无疑这个成功相当程度上得力于Google这个名字,谢谢,crazybob,谢谢,Google。

   发表时间:2008-03-10  
这个消息固然可喜,但我觉得更可喜的是Google Guice的“一站式”解决方案已经出现了:Warp Framework,完全基于Guice的架构,向下封装了持久化层,向上提供了Web MVC层,有了这种一站式的框架,才能普及应用。
0 请登录后投票
   发表时间:2008-03-16  
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。
0 请登录后投票
   发表时间:2008-03-16  
skydream 写道
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。


难道google的adwords不是商业应用?不是大型应用?
0 请登录后投票
   发表时间:2008-03-16  
ajoo 写道
skydream 写道
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。


难道google的adwords不是商业应用?不是大型应用?


我所说的商业应用是指我们这些程序员/设计师,在自己的工作中开发的应用。

在公司的现实运作中,推广一个新东西是很难的,对于guice来说最大的阻碍在于spring巨大的声望和广泛的应用,对于很多刚刚开始接受spring甚至只是为spring而spring的公司来说,使用guice替代spring是一个非常不可思议的话题。

三年前,我在一番探索之后,决定用webwork替代struts,就遇到过类似的问题。当然当时webwork对于struts还是优势很明显的,尤其我抗起方便单元测试的大旗后顺利过关。

可以想像如果今天,我将一份使用guice替代spring用于新项目开发的方案提交给manager,将会遇到什么?下面的两个问题是一定的:
1. 什么是guice?
2. 为什么不是spring?

我总不能回答说因为我个人喜欢guice胜过spring吧?
0 请登录后投票
   发表时间:2008-03-16  
Warp的资料太少,用的人更少。
确实值得关注,但不推荐应用。
0 请登录后投票
   发表时间:2008-03-16  
guice还找不到应用到俺项目的理由……虽然俺是Z咖
0 请登录后投票
   发表时间:2008-03-16  
时间,让我们给Guice一些时间吧。它才1.0,后面的路还长着呢。webwork已经集成Guice了吧?随着功能的完善,会有更多优秀的框架选择和Guice集成的。它后面还站着一些相当不错的开发者,所以我一点也不担心Guice会取代逐渐没落的Spring。人生,不能总是到处发春啊。
0 请登录后投票
   发表时间:2008-03-17  
Guice?原来是和spring一样的框架啊?java里面的框架的确是非常非常的多,搞得现在太迷茫了。初学者都不清楚到底学哪一个好。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics