对于胡戈同学的“馒头血案”中的故事来说,那确实是血淋淋的事件发生,而且也是虚构的环节,所以我们可以当着娱乐(当然你要能反思一些东西也没人会管你)。而对于“春迷”们这次非组织、自发的维护Spring的运动并最终制度了“Spring轮子血案”的真实事件来说,让我们看到了一场比鲜红沸腾的热血还要可怕的血――冰冷的血,Web 2.0时代里的血,从红色变成了白色、然后又变成了黑色的血。
从开始的一些莫须有的批评,然后发展到非组织、自发公开对EasyJF的诋毁,然后发展到一些资格非常老的“春迷”开始拿性器官来说事;最后是利用自己的权力,删除了一位说了几句Spring“坏话”的同学的帐号及文章。
故事的开始是一些比较理智的“春迷”站出来跟我非常友好讨论,并纠正我《轮子理论》一文中的一些错误。下面是摘两句:
匿名:
“相当无聊,你以后做项目的时候先写一个JDK的类库好了,然后慢慢做...看你很喜欢发明轮子,干脆从钉子,螺丝,开始做好了. ”
Jonney(此君开始的表现是一个非常冷静也比较理智的春迷)
事情没有大家想的那么复杂,当问题变得复杂的时候,就得到问题的根源去寻找答案了。
有没有已经重复地发明轮子这是一个问题,有没有能力去发明一个轮子这是一个问题,对现有轮子去改造这个也是个问题……无所谓,无论是什么问题,只要它能解决开发中的难题就是正确的!!这也就是Rod Johnson所说的一切实事求是的“循证架构”的工作方式!!
当然其中,在众多“春迷”当中,最具有代表性的讨论应该是下面这位在Spring领域中有一定“成就”,资质及武学修为上都算是上层的“春迷”代表的谈话。因为这份讨论是公开的,因此,大家可以看到,我们的讨论幽默及风趣中,不时带有点八卦的性质,然而他却透露出了所发生血案的一些原因。
这个讨论是发生在一个同学写了一篇对比Spring与Jdon等框架中的代码分析的文章后面,当时文章后面满篇针对该同学的批判,我在后面插了一句,于是该春迷代表马上冒了出来。
大峡:
Spring也是人写出来的,没有什么神话的存在,人写的程序都会有问题,不要因为楼主想站出来那么客观的说了几句真话,大家就受不了。不过建议楼上的多帮忙测测国内的东西,有时间帮我们也测测,呵呵,结果可能会更加惨不忍睹,不过也得有人来测。看看本人愚作《玩玩Spring之Rod Johnson 与“轮子理论” 》,你会发现其实会忽悠人的不仅仅是我们中国人, http://www.blogjava.net/daxia/archive/2006/05/07/44855.html
江南白衣:
@大峡 你那篇东西就是我总是对寒寒这么火爆的前戏:)
还是那句,先搞定Spring到底做了什么,再来推倒和玩玩吧。你们是保持在一个一知半解的状态,一边把他神秘化神话化,一边进行胡乱的抨击.....真正的程序员根本不觉得Spring是神话,也不会胡乱的进行贬低。
比如你说Spring既宣传轮子理论,又有自己的Spring MVC,这个理由Rod已经解释过无数次了,不知道你为什么可以坚决听不到。
“Spring对于已有的优秀Project,自己不会重复开发轮子,比如ORM,而如果已存在的项目当时都不和Rod的要求,他就会在Spring里重新开发,比如Spring MVC”,这段话Rod在N个地方说过,应该不难找。
大峡:
@江南白衣
我那篇文章中具体贬低Spring的地方吗?希望江南大侠帮助可以指出来,谢谢。否则大家会误解的!我有一个坏习惯:强调的设计思想,而不是具体的技术或者工具。更确却的说,我不是一合格的coder。
“Spring对于已有的优秀Project,自己不会重复开发轮子,比如ORM,而如果已存在的项目当时都不和Rod的要求,他就会在Spring里重新开发,比如Spring MVC”。
这句话,换过说法就是:“绝不发明自己认为好的轮子,而只发明自己认为不好的轮子”,有两样吗?反正都是发明轮子。
唉,咬这种字眼没太多意思,反正大家都知道Spring与hibernate之间的暧昧,也知道Spring与webwork之间的一些瓜葛。本人愚作《玩玩Spring之IOC(一)》中也有提到一些。
江南白衣:
送佛送到西,学习Spring必看的一段总纲,Rod自己的<Introducing to Spring Framework>
“Spring 不重新发明轮子。因此你会发现Spring 中没有日志,没有连接池,没有分布式事务调度。所有这些东西都由开源项目(例如提供我们所有的日志输出的Commons Logging,或者是Commons DBCP)或你的应用服务器提供。同样的道理,我们不提供实体/关系映射层。因为有像TopLink、Hibernate和JDO 这样的优秀的解决方案。
Spring不直接与其他开源项目竞争,除非我们觉得我们能提供些新的东西。比如说,像其他开发者一样,我们从未就Struts感到满意,我们觉得MVC Web框架还有改进的余地。(随着Spring应用地快速推广,很多人也同意了我们的观点。)在其他领域,例如它的轻量级IoC容器和AOP框架,Spring有直接的竞争,但Spring确实是这些领域的先锋。”
连这段都不看,不知道你从哪里了解Spring的轮子理论的。
大峡:
@江南白衣
Spring不直接与其他开源项目竞争,除非我们觉得我们能提供些新的东西。这句话你慢慢读会发现问题的?MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了?
还有“随着Spring应用地快速推广,很多人也同意了我们的观点。”这句话,更是忽悠了,“很多人”是多少?是所有java web开发中的百分之多少?一半以上?0.3成?还是围着spring转圈的那群人?可以作一个抽样调查的。
江南白衣
@大峡
"如果Spring的MVC等能证明他本身也是发明轮子的话,我们再去想想Rod Johnson大叔说这话的动机,难免会让人往其他不友好的方面想。"
别说骂秃驴不是骂和尚,你整篇东西都是上面引文那调调。
大峡:
@江南白衣
“如果Spring的MVC等能证明他本身也是发明轮子的话,我们再去想想Rod Johnson大叔说这话的动机,难免会让人往其他不友好的方面想。”
这也是我写这篇文章的时候比较动激动的时候写的一句话。从不同的角度可以读出不同的东西。呵呵,当时那篇文章是否要这句话,可是作了很久的思想斗争的。一个人要做一件事情,反对的人肯定会找很多理由,而做这事情的人也会找更多的理由。
你应该看到,我说的是“如果”。我没有证明,我自己也无法证明,也没有资格来证明,等专家来证明。所以后面的结论在没有证明的情况下也不成立的。
所以那文中后面我加了这么一段:
“问:大峡,作为Spring的超级粉丝,我很负责任的告诉你,你是在钻Spring的牛角尖,拿“轮子理论”来说事,这是无理取闹,更是对Rod Johnson大叔的不敬。
答:从Rod Johnson大叔身上学习了很多东西,我敬重Rod Johnson大叔,也敬重科学技术,我所说的只是实事求是,您觉得不对的地方请予指正,万分感谢。”
江南白衣:
@大峡
“MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了。反正大家都知道Spring与hibernate之间的暧昧,也知道Spring与webwork之间的一些瓜葛。”
拜托,连八卦都没搞清就"反正大家都知道了", Rod与gavin之间早就粗口相向了,还暧昧个头阿。
大峡:
@江南白衣
Rod与Kevin之间早就粗口相向了,还暧昧个头阿。
--------------------------
哈哈。至少“曾经拥有”过吧,八卦的东西总归有点八卦。所以我没太把那八卦的事儿太当真。瓜葛又如何,暧昧又如何,反正受罪的不是他们............。
但“MVC Web框架还有改进的余地,orm这种比MVC重要得多的框架就没有改进的余地了”这句话,语法及语义应该都不存在问题。谁又能够保证,说不定那天Rod Johnson突然发现现ORM也有改进的余地了,大刀阔釜把spring现在有关jdbc封装的东西改一改,一个能代替hibernate的ORM就出来了呢。所以他的那句“改进的余地”,也只是给自己找的一个说法而已。实在想不通,就用这句话来解释吧:存在即合理。再科学客观一点:让市场及历史来证明一切吧。
从与该“春迷”代表所讨论问题来看,一切都非常中规中矩,让我也从心底里面佩服“春迷”们的知识及技术水平。就像我曾经经常跟朋友聊起就说,中国什么都缺,缺资金、缺环境、缺管理,但唯一不缺的是人才。这就是为什么要提倡先学学“发明轮子”的原因!
我想若是所有“春迷”都能这样来讨论,就不会发生那些可怕的血案了。
欲知后事如何,请看下回分解!
作为一名有了6年工作经历的程序员,我看重的是思想,是方法,而不是具体的语言。从微观一点来说,更看重的是商业逻辑的实现部分,而对于哪些辅助开发性质的框架或工具来说,掌握其核心原理,能达到精通一门,并能根据软件项目中用户需求或者项目需求,有选择性的使用即可。
当然,这些言论在我看来,纯粹属于无理取闹的评论!不过也受到一些影响,毕竟没想到写点技术上的东西也受到如此多的束缚。我动了“春迷”家的奶酷,或偷了“春迷”的什么东西似的。我何苦呢,好好写自己的程序,不要被扣工资,多挣点奖金就是了,生活也很滋润的啊。毕竟自己胆小啊,以至于本人到现在为止都无法继续写关于《玩玩Spring系列》的文章。
我想,我不写Spring了行吗?惹不起,我躲得起啊!