这段时间,在使用RoR框架来实现PPA项目。通过这段时间的使用,对RoR有了比较深入的了解,为它的那种卓而不群所折服,所钦佩。但是,也正是因为它的特立独行,我才深深的为它的将来惋惜。
从电影行业中,我学到了两个词,“叫好”和“卖座”。RoR就处于一种叫好不卖座的尴尬境地。初看上去,这两个词本来应是联系在一起的事物,但现在为什么要特意分开来呢?
我初始对RoR产生兴趣,是因为martin fowler的文章、活动以及csdn的热力推荐,可是martin的文章中多是介绍ruby语言本身的,我不是那种特聪明到拿到了语言就会想好怎么去用它的人,但我又是那种追求实战的人,所以,使用RoR做真实的系统开发,是我的必经之路。作为一个框架,能够在设计之初,分清楚test和production以及 dev之间的差别和联系,能够近乎完美的建立与领域对象向匹配的ActionRecord实现,能够在模型中建立类似自然语言的关系描述,能够在模型层而不是在展现层加入验证,能够如此简洁的加入各种类型的测试支持,能够将缺省实现和特殊状况(如遗留系统)完全分开,能够提供并保证如此高效的开发速度。。。。
这一切,以及省略号后的一切,足以为它带来足够的掌声,也绝对没有辜负CSDN的各位仁兄对它的厚望。“叫好”,是理所应当的。
那你就会问了,你还有什么不满意的?是不满意它的效率吗?
不,不是,要知道我早期是一个C++的程序员,我也曾用效率的眼光来责问或者质疑过java以及J2EE项目的效率。我得到的答案是:“没有关系,现在的硬盘、内存和cpu越来越大或者越来越快,不够用可以加硬件,做集群嘛”。所以我看到孟岩的某篇关于RoR效率的blog之后,我就想起了这段话。或许,孟大侠也听过类似于我听过的相同言论吧。 现在,java阵营中如果有谁拿效率来评说RoR的缺点,在我听上去,非常幼稚。
是不满意它的框架分层或设计原理吗?
当然不是,我对它能如此近的实现“领域驱动设计 DDD”欣喜不已,在它面前,我再也不用因为配置文件,因为数据库和领域模型不匹配而苦恼了。我赞赏还来不及呢。更有甚者,我在部门内的一个小范围的培训,居然引发了大家对平台框架的新思维的讨论热潮,这也足够让我们对它侧目了。
是因为它是建立在日本人写的语言的基础上吗?
当然不是,那种狭隘的民族情节,背后隐藏的是自己的懦弱与虚伪。如果我们真的如我们说的那么爱国,就放弃这种无所谓的比较和排斥,把精力放在自己的语言、框架、中间件、服务器等方面的研发上,什么时间中国人自己造出了响当当的(而不是东拼西凑的--其来源我就更不必说了)世界一流的东西,我们再去贬低别人好不?不过估计如果真有了那么一天,说不定我们还会很谦虚呢,因为素质真得提高了嘛。。。。
那么,你不满意的是什么?
说上去,是个很不是理由的理由,但是,如果你了解中国的IT现状,你就会明白,我说的是真的。那就是,尽管它快,它高效、它优美,但是,它低廉。
软件价格为什么居高不下?就是因为那么多的标准(甚至是杂乱的标准)背后,代表了若干涉众的利益。软件公司要存活、硬件公司要存活、客户(注意不是最终用户,这两者是有区别的)希望的,自然不用多说。你拿开源的或者非常廉价的东东,怎么会让大家都满意呢?
洗去铅华,再回首,我们居然过不了利益这一关,再优秀的东西,在利益面前,都会显得那么虚弱。我在网上听到或者看到了那么多关于RoR的讨论,但是说白了,那些都是技术人员的观点,真正的主宰方向的人是不会说话的。我们可以回想一下,J2EE在它的强力攻势下,除了更多的技术方案和技术标准,除了让我们有更多苦恼和麻烦,还给我们带来了什么?你的技术人员的成长的快感?这种快感会维持多久?你难道不是更关心你的钱袋吗?为什么ms的sqlserver和.net 打不过db2,oracle、websphere、weblogic?是因为技术力量的悬殊吗?为什么JDO加入标准的过程会那样的曲折?
这就是我说的“不卖座”。
如果,你想在一个基本上没有利益冲突的范围内快速开发系统,RoR绝对是一个不错的选择。但是如果
你想说服软件公司都换RoR来做开发,那是门都没有的。但如果换不到软件公司的通过票,想有大型的企业应用,难啊。除非,你所在的软件企业,用那些昂贵的软件和硬件的价格签了单,然后私底下用RoR快速做个开发,给用户布上,蒙那些不开眼的。不过好像我说的这种方案,不会傻到有人去做吧?难道你真以为客户是傻子?
查看本文来源