作者:不详 来源:JavaEye   酷勤网收集 2008-03-25

摘要
  目前为止好的Ruby程序员比起他们的Java同行来说仍然凤毛麟角。人员数量上的匮乏将使得使用Rails开发的成本增加,而Java开发组却有着一群普通程序员使成本趋于平衡。我知道一些大公司准备开始使用Rails。这是个好消息,但是要成为主流仍然有很长的路要走。

早些时候,当Christian Sepulveda写了一篇有趣的贴子“为什么Rails将会占据统治地位?”。这是一篇在Rails社区中传颂的赞美诗,但对此我却不能认同。

我是一个Ruby和Rails的超级“粉丝”,并运用在我的日常工作和个人项目中。然而我看不到它们会在不久成为主流,或是用Christian的话来说“Ruby/Rails 将取代java成为企业开发中的语言和平台。”

其他的竞争者已经失败了

Python和它的框架Zope/Plone,Twinsted现在是Django和Turbogears是企业开发中的竞争者。同时也是Google四种开发语言中的一种。可除此之外,有没有更多的认可?python的工作数量并不多,而Ruby的工作数量甚至还不及Python的。我知道在增长数量上ruby的曲线很惊人,但即便如此那要到多少年后,ruby才能遮住Java的光芒。

企业——强大的开发语言——不需要

Ruby伙同它那咄咄逼人的Rails一起,一起成为挑战者。但它的情况和Python相似。简单的来讲Ruby语言对主流开发很强大,Python也同样强大,Lisp的情况也一样。

导致强大语言失败的原因很简单,因为大型企业不需要。大型企业不需要雇佣那些“明星”级的程序员(而正是他们才能把强大语言表现的淋漓尽致)。大型企业需要那些能互相沟通的开发者,哪怕雇佣50个这样的家伙也不是问题。你可以在google上查一下“java团队的平均人数”得到答案。

Java和设计模式适合一大群普通的开发者。请记住,我只关心开发团队的人数而不是实施团队的。

使用java,你可能缺少使用“函数作为一等公民”的便捷。你不能像在Ruby中打开一个类改变其中的默认行为。这对元数据编程来说是个限制。限制总和安全交织在一起。这就是很多开发者摈弃java的原因,这也是为什么它对大多数普通开发者非常有用。(你会注意到我使用的词汇,“普通开发者”,“一般程序员”。并不是说java开发者中没有绝顶高手,但是绝大多数的开发者还是普通水平)

使用门面/适配器/观察者模式,能让高级程序员能够摆脱单个程序,把代码舒适的组织起来,并不会破坏任何地方。半数的问题在编译器就能够被发现,其余的则可以通过静态分析工具来解决。而动态语言哪?它们没有那些安全的保护伞。

你一定会提的Ruby/Rails的开发氛围吧。我知道,我们有插件和gems。然而最大的缺失是在学校的教育。年复一年,Java通过各种职业学校和高校培养了大量的毕业生,他们往往只懂java。多数学校,ruby并不在它们的课程中,或者说还不是主流。在起跑线上ruby已经输了,更别说是4年后他们毕业后开始找工作。

Christian总结说“经济决定了软件需求,经济也同样会让Ruby和Rails占据统治地位。”我同意这句话的前半段,至于后半段中经济起决定作用,看起来还不是那么让人信服。目前为止好的Ruby程序员比起他们的Java同行来说仍然凤毛麟角。人员数量上的匮乏将使得使用Rails开发的成本增加,而Java开发组却有着一群普通程序员使成本趋于平衡。

让我来看另一番景象。假设一天晚上DHH出现在每个企业的CIO的梦境中并说“明天开始使用Ruby和Rails”,他们醒来并开始寻找ruby程序员。然后哪?由于程序员严重缺少对Ruby的知识,为了满足需求他们不得不使用其他的语言。主流?啊哈哈哈。

我知道一些大公司准备开始使用Rails。这是个好消息,但是要成为主流仍然有很长的路要走。要成为主流,意味着要赢得非科技企业的心。那些企业的应用都是你从未看见或是听过的。他们不需要奇特的技术,交际网络或者是RESTful风格的APIs。几百万的美金合同都等待着来实现,当然是用Java的。

那么应对策略哪?

为什么Ruby/Rails的开发者不堪余力的想成为主流哪?这又是一个老生常谈的话题了。如果Ruby成为新的Java语言了,早期的开发者突然间有了5年多的开发经验其余的人也有了两年时间。这就是为什么那么吸引人了。成为主流意味着那些非科技公司中的企业,需要用12万年薪雇佣一个高级程序员,而他也要比3万年薪雇佣3个初级程序员高效的多。

Paul Graham在2006 RailsConf上发表的“Power of the Marginal”仅仅过去了2年。之后发生了什么?为什么我们仅仅对那些外围细节如此感兴趣反而阻碍了成为主流的步伐?

Ruby和Rails部分吸引人的原因是因为它们处于技术的前沿。一场“R2EE”的运动正拉开大幕。然而时间会审视每一个新的语言和框架。Scala on Sails.Javascript in Jail.Erlang with Extra-terrestrials.你想什么就是什么。

 PS:再重生一遍,我个人丝毫没有冒犯Christian Sepulveda——这篇文章是争锋对那些任何认为Ruby/Rails快速能够成为主流语言的人——我只是碰巧看到他的帖子。

 评论

andycui 2008-03-25 11:45
ruby语法太怪异了,根本记不住,而且靠一个rails框架就想超越java平台,可能性为0,企业不需要那样的敏捷!ruby要是真的好,那在它刚出现的那几年就可以红了,为什么非得等到rails出现才貌似很火呢?更何况,如果说rails好的话,在java平台上也完全可以做出这样的框架来,另外,拿rails跟java比,根本就没有可比性嘛!一个是框架一个是语言,疯牛马不相及的东西。
如果是ruby跟java比,那更加不行!
aniken 2008-03-25 10:55
一种框架,一种语言占统治地位的年代已经一去不复返了,rails也休想!
cosina 2008-03-25 10:31
java跟rails所涉及的范围根本不是一个层次上的 ! 就某个角度上而言: 你可以拿grails与其比拟!
Frederick 2008-03-25 09:53
我用过ruby,但是从一开始就讨厌它。讨厌它的语法结构和开发习惯。等有天ruby成为主流了,我想我也应该已经到了快退休的年龄了,而且我相信取代如不要的更新颖的东西也出来了
天才阿昭 2008-03-25 09:05
首先是rails选了ruby是错误的
如果选JAVA或C++,会好得多
因为RUBY选择了一个类VB的语言系
hellosoft 2008-03-25 09:01
我个人看好 它的敏捷性, 快速而且灵活多变,适合当代企业多变的特点。
lgx522 2008-03-25 08:35
RoR现在的当务之急是找准定位。

Java的基本立足点是跨平台(包括各种智能设备)、标准化和“大而全”,所以必然会成为有“大而全”和大团队合作需要的企业首选。

PHP则是因定位准确,且一直坚持群众路线,才成就了Web界的霸主地位。这一点搞RoR的同道们一定要学习。

RoR运行效率不如前二者,开发效率与PHP相当,易用度不如PHP,普及度不及前二者。一定要想办法在企业中小应用上做做文章(以个人看法,可以与ASP.NET抢一抢),否则难有作为。
rockjava 2008-03-25 08:35
真的很讨厌ruby的语法格式,看起来很不爽
lishali12345 2008-03-24 23:55
一切走着瞧了
呵呵
世事难料
自己走好,不要迷失就好了
学习永远都是快乐的,所谓的待遇也就那样吧!
我是用心在学编程,将来也将用心做,生活在第二位,学习第一,因为学习很快乐!
icanfly 2008-03-24 20:29
我还是不太看好RUBY/RAILS,应该不会在主流的大型企业开发中取代JAVA,他应该取代的是一些用JAVA开发的中小型应用(这些应用用JAVA开发实乃用不着,费时费力)。推荐看看ROBBIN的“为什么RAILS不会取代JAVA平台”。
avaj 2008-03-24 19:10
说的有道理
fnet 2008-03-24 17:58
如果Ruby和PHP让我选,我选PHP,也许我会看Ruby方面的书,但我一定会用PHP做实际开发
indexchen 2008-03-24 16:49
没有大公司支持,没有开发健壮企业级应用的库和框架,要追java很难
sp42 2008-03-24 15:55
我觉得RUBY最大的问题是根本性的问题:他的样子不是C语法系的,
换句话说,VB与RUBY。。。至少看起来比较相似的。。一个充满END的。。。(我不想END啊)

分类: .NET技术 网页设计 交互设计

上一篇:自反+递归 实现评论的无限引用   下一篇:如何提高网页的效率(上篇)——提高网页效率的14条准则