[瞭望]RoR 在国内难以建立大型应用

RoR框架因其高效及优雅的设计备受好评,但在中国IT市场却面临推广难题。作者详细探讨了RoR的优点,包括出色的领域驱动设计、高效的开发速度等,并分析了其在实际商业环境中遭遇的挑战。
这段时间,在使用RoR框架来实现PPA项目。通过这段时间的使用,对RoR有了比较深入的了解,为它的那种卓而不群所折服,所钦佩。但是,也正是因为它的特立独行,我才深深的为它的将来惋惜。
从电影行业中,我学到了两个词,“叫好”和“卖座”。RoR就处于一种叫好不卖座的尴尬境地。初看上去,这两个词本来应是联系在一起的事物,但现在为什么要特意分开来呢?
我初始对RoR产生兴趣,是因为martin fowler的文章、活动以及csdn的热力推荐,可是martin的文章中多是介绍ruby语言本身的,我不是那种特聪明到拿到了语言就会想好怎么去用它的人,但我又是那种追求实战的人,所以,使用RoR做真实的系统开发,是我的必经之路。作为一个框架,能够在设计之初,分清楚test和production以及 dev之间的差别和联系,能够近乎完美的建立与领域对象向匹配的ActionRecord实现,能够在模型中建立类似自然语言的关系描述,能够在模型层而不是在展现层加入验证,能够如此简洁的加入各种类型的测试支持,能够将缺省实现和特殊状况(如遗留系统)完全分开,能够提供并保证如此高效的开发速度。。。。
这一切,以及省略号后的一切,足以为它带来足够的掌声,也绝对没有辜负优快云的各位仁兄对它的厚望。“叫好”,是理所应当的。
那你就会问了,你还有什么不满意的?是不满意它的效率吗?
不,不是,要知道我早期是一个C++的程序员,我也曾用效率的眼光来责问或者质疑过java以及J2EE项目的效率。我得到的答案是:“没有关系,现在的硬盘、内存和cpu越来越大或者越来越快,不够用可以加硬件,做集群嘛”。所以我看到孟岩的某篇关于RoR效率的blog之后,我就想起了这段话。或许,孟大侠也听过类似于我听过的相同言论吧。 现在,java阵营中如果有谁拿效率来评说RoR的缺点,在我听上去,非常幼稚。
是不满意它的框架分层或设计原理吗?
当然不是,我对它能如此近的实现“领域驱动设计 DDD”欣喜不已,在它面前,我再也不用因为配置文件,因为数据库和领域模型不匹配而苦恼了。我赞赏还来不及呢。更有甚者,我在部门内的一个小范围的培训,居然引发了大家对平台框架的新思维的讨论热潮,这也足够让我们对它侧目了。
是因为它是建立在日本人写的语言的基础上吗?
当然不是,那种狭隘的民族情节,背后隐藏的是自己的懦弱与虚伪。如果我们真的如我们说的那么爱国,就放弃这种无所谓的比较和排斥,把精力放在自己的语言、框架、中间件、服务器等方面的研发上,什么时间中国人自己造出了响当当的(而不是东拼西凑的--其来源我就更不必说了)世界一流的东西,我们再去贬低别人好不?不过估计如果真有了那么一天,说不定我们还会很谦虚呢,因为素质真得提高了嘛。。。。
那么,你不满意的是什么?
说上去,是个很不是理由的理由,但是,如果你了解中国的IT现状,你就会明白,我说的是真的。那就是,尽管它快,它高效、它优美,但是,它低廉。
软件价格为什么居高不下?就是因为那么多的标准(甚至是杂乱的标准)背后,代表了若干涉众的利益。软件公司要存活、硬件公司要存活、客户(注意不是最终用户,这两者是有区别的)希望的,自然不用多说。你拿开源的或者非常廉价的东东,怎么会让大家都满意呢?
洗去铅华,再回首,我们居然过不了利益这一关,再优秀的东西,在利益面前,都会显得那么虚弱。我在网上听到或者看到了那么多关于RoR的讨论,但是说白了,那些都是技术人员的观点,真正的主宰方向的人是不会说话的。我们可以回想一下,J2EE在它的强力攻势下,除了更多的技术方案和技术标准,除了让我们有更多苦恼和麻烦,还给我们带来了什么?你的技术人员的成长的快感?这种快感会维持多久?你难道不是更关心你的钱袋吗?为什么ms的sqlserver和.net 打不过db2,oracle、websphere、weblogic?是因为技术力量的悬殊吗?为什么JDO加入标准的过程会那样的曲折?
这就是我说的“不卖座”。
如果,你想在一个基本上没有利益冲突的范围内快速开发系统,RoR绝对是一个不错的选择。但是如果
你想说服软件公司都换RoR来做开发,那是门都没有的。但如果换不到软件公司的通过票,想有大型的企业应用,难啊。除非,你所在的软件企业,用那些昂贵的软件和硬件的价格签了单,然后私底下用RoR快速做个开发,给用户布上,蒙那些不开眼的。不过好像我说的这种方案,不会傻到有人去做吧?难道你真以为客户是傻子?
Java是一种具备卓越性能与广泛平台适应性的高级程序设计语言,最初由Sun Microsystems(现属Oracle公司)的James Gosling及其团队于1995年正式发布。该语言在设计上追求简洁性、稳定性、可移植性以及并发处理能力,同时具备动态执行特性。其核心特征与显著优点可归纳如下: **平台无关性**:遵循“一次编写,随处运行”的理念,Java编写的程序能够在多种操作系统与硬件环境中执行,无需针对不同平台进行修改。这一特性主要依赖于Java虚拟机(JVM)的实现,JVM作为程序与底层系统之间的中间层,负责解释并执行编译后的字节码。 **面向对象范式**:Java全面贯彻面向对象的设计原则,提供对封装、继承、多态等机制的完整支持。这种设计方式有助于构建结构清晰、模块独立的代码,提升软件的可维护性与扩展性。 **并发编程支持**:语言层面集成了多线程处理能力,允许开发者构建能够同时执行多项任务的应用程序。这一特性尤其适用于需要高并发处理的场景,例如服务器端软件、网络服务及大规模分布式系统。 **自动内存管理**:通过内置的垃圾回收机制,Java运行时环境能够自动识别并释放不再使用的对象所占用的内存空间。这不仅降低了开发者在内存管理方面的工作负担,也有效减少了因手动管理内存可能引发的内存泄漏问题。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值