Java开源没能阻挡Ruby前进的脚步(1)

发表于:2007-06-11来源:作者:点击数: 标签:
带着这个疑问我们采访了Java咨询专家,上海炯耐计算机软件有限公司总经理, JavaEye技术社区创始人范凯,请他谈一下Ruby现在的发展状况: java script:if(this.width>498)this.style.width=498;' onmousewheel = 'javascript:return big(this)' height=322 al
带着这个疑问我们采访了Java咨询专家,上海炯耐计算机软件有限公司总经理, JavaEye技术社区创始人范凯,请他谈一下Ruby现在的发展状况:

记者:我知道您是Java企业咨询专家,自然也是一个Java的狂热者了,对于Ruby在中国还不是很成熟,而且能借鉴的相关经验还很少,我想知道您的JavaEye社区,当时出于什么原因考虑用Ruby开发而不用Java呢?

范凯:在目前的主流web开发技术例如J2EE,ASP.netPHP,Python,Ruby当中,基于Ruby语言的rails框架是做网站开发速度最快的工具了,可以达到J2EE框架开发速度的5-10倍,并且程序代码量也只有使用J2EE框架开发的1/5以下。因此使用Ruby来开发JavaEye网站,能够把网站的开发周期缩短5倍左右,也就是说,如果用Java开发JavaEye网站需要5个月时间的话,那么使用Ruby仅仅1个月就够了(而事实上我们也只用了1个月加1周的时间开发出来网站)。另外由于代码量的大幅度减少,网站整个的维护工作量也大大降低。因为使用Ruby带来的开发和维护上面的好处实在是很诱人,能够几倍幅度的降低我们的网站开发周期和维护成本,那何乐而不为呢?

目前Ruby在国内应用很稀少,也找不到什么可以借鉴的经验,我们在开发过程中遇到的各种各样的问题都是自己摸索过来的。不过对于我们本来就是资深开发人员,又运营高端技术社区来说,这些都不是什么障碍,Ruby无论如何,还是比Java要简单,只要适合我们,什么技术都可以拿来用,对于高水平的开发人员来说,用什么编程语言都一样,精通Java的去搞Ruby,完全没有什么障碍。

记者:有很多人认为Ruby挑战Java地位,您怎么看待这种现象?

范凯:从目前的状况来说,Ruby还挑战不了Java的地位,从可以预见的将来,Ruby也不太会取代Java的地位。这是因为:

1)Java能够成为应用软件开发的主流,是有很多因素综合作用导致的,而且也有一个历史机遇的问题。当应用软件开发方式从C/S转向B/S的时候,Java抓住了历史机遇,造就了目前全球大多数应用软件厂商都基于Java开发软件这样一个既成事实,Java的整个全球商业价值太高了,优势太大。并且从Java自身的语法角度来说,也比较适合目前软件外包产业的大规模分工协作。此外Java并没有固步自封,在开源社区和商业厂商双重强力推动下,Java自身仍然在快速的进步,生命力很顽强。

2)Ruby目前只是在web开发领域比Java有很强的开发效率的优势,但并没有Java那么齐全的产品线,从基础软件到Web应用软件,从桌面到嵌入式开发,无所不包。

3)Java是主流的工业级别的编程语言,就单个程序员个体的编程效率来说,远远不如Ruby,但是很多软件公司,特别是软件外包往往是几十人,上百人大规模团队协作开发,甚至异地大规模协作,在这种情况下,个体的编程效率并不重要,重要的是团队之间协作和模块独立分割以及组合,Java能够很好的满足这种软件开发模式的要求。但是Ruby很显然并不适合这种软件开发模式,Ruby更加适合小规模团队(一般少于10人),采用敏捷开发方式,高效率的开发软件。

但是Ruby取代不了Java,并不意味着Ruby就不值得去使用。特别是对于开发团队规模比较小,对软件开发速度有比较高要求的情况来说,Ruby肯定是更好的选择。

记者:因为各位读者对Ruby了解的很少,也很陌生,能否从技术的角度上给我们介绍一下Ruby有哪优势和不足?

Ruby的优势主要有:

1) Ruby是一种动态面向对象语言,具有很多强大的面向对象的高级特性,例如open class(对象的类别可以在程序运行期被动态的改变),duck typing(由对象行为决定对象类型),meta programming(元编程),block和closure(块和闭包)等等,可以轻松创造出来Java语言很难实现的功能,因此可以极大提高编程效率,减少代码量。 

2) Ruby更加贴近英语的自然语言,描述和表达能力很好,语法扩展能力很强,因此被用来作为DSL(领域专用语言),例如Ruby的构建工具rake就是一种DSL。而Java则不具备这样的能力,从而不得不借助使用XML来描述各种配置信息。

3) 基于Ruby语言的rails框架,除了充分利用了Ruby语言强大的语法能力之外,rails框架自身也有很多理念非常领先的创新性技术,例如简化的ORM框架ActiveRecord,Database Migration,以及支持REST特性的URL Route等等。在这些方面,Java的主流框架在技术创新能力上被远远甩到了后面。

4) 除了技术因素之外,基于rails框架来开发web应用,最大的优势就是开发速度快,一般认为达到使用Java的5-10倍速度,另外代码量很少,这是Ruby吸引很多开发人员的主要原因 

5) 使用Ruby on rails开发web应用,其入门门槛和学习成本要远低于使用Java,一个基础扎实的程序员通过一个月学习就可以熟练使用rails开发,但是学习三个月,都未必能够熟练运用主流Java框架来开发。


共2页: 1 [2] 下一页

原文转自:http://www.ltesting.net

...