注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Study Desk

Share my desk with you!......

 
 
 

日志

 
 

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

2007-02-09 09:00:26|  分类: 计总会 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如果2006年Java开源被业界认为一种趋势的话,那么Ruby在2007新年伊始一跃成为十大流行编程语言,就绝对不容小视的,带着敏捷的 Web开发优势,Ruby在迅速的前进,甚至在蚕食Java领域,Java的开源没能阻挡Ruby前进的脚步,而且Ruby还在不断的扩大自已的战场,涉 及到了除Java之外的其它脚本语言,Ruby是靠什么样的优势打乱如今的语言阵营格局呢?

  带着这个疑问我们采访了Java咨询专家,上海炯耐计算机软件有限公司总经理, JavaEye技术社区创始人范凯,请他谈一下Ruby现在的发展状况:

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

  范凯:在目前的主流web开发技术例如J2EE,ASP.net,PHP,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框架来开发。

  Ruby的不足:

  1)从技术角度来说,Ruby解析器的性能比较差,远低于Java的JVM。不过对于Web应用来说,这个缺点没有什么影响:因为Web应用的瓶颈往往出现在数据库访问上面。另外Ruby的VM将可能在2007年底推出,届时ruby性能会有一个很大的改观。

  2)相对比Java丰富的各种第三方类库来说,Ruby的第三方类库显得非常缺乏,而且不成熟,特别是针对企业应用的各种第三方类库支持,空白点很多。这是目前制约Ruby在企业应用普及的最大障碍之一。相信随着时间的推移和Ruby的普及,将会有所改善。

  3)Ruby,特别是用rails开发的web应用在Windows操作系统上面得到的支持还很不够,传统上都是部署在Unix/Linux操作系统上的。Windows目前来说只能作为开发环境,而不能作为生产运行环境。

记者:Java在人们的期望中开源了,您认为开源后的Java将会有什么样的机会和挑战?

  范凯:Java开源的意义非常深远,仿佛解除了套在Java身上的枷锁,任何厂商都可以在遵循GPL的前提下自行改造Java和JDK。在未来 的一年当中,我们必将看到很多基于Java的有趣的产品和创意诞生。事实上我认为07年对Java来说,是至关重要的一年,这一年将奠定Java开源今后 的发展方向。

  记者:Java开源对于中国软件会有什么样的影响?影响到哪些方面?

  范凯:中国的软件行业从目前现状来看,对于Java开源社区的贡献和影响力都还很弱小,因此Java开源并不会对中国软件带来什么根本性的影响,如果一定要说影响,那么就是Java会更加普及,占有的市场份额会进一步扩大。

  记者:Java开源对于开发人员会有哪些影响?

  范凯:会有更多其他编程语言例如ASP.net的开发人员投入到Java的怀抱中来

  记者:能否预测一下Ruby的未来走向?

  范凯:Ruby语言在2006年得到了飞速的普及,从TIOBE的全球编程语言流行程度就可以看出,Ruby语言从2006年1月份排名21已 经上升到2007年1月份排名第10名。目前已经进入最流行的10大编程语言行列。假以时日,Ruby语言很有可能超过JavaScript、 Python和C#,成为最主流的几种编程语言之一。

  结语:综上所述采访,我们不难看出Java和Ruby不是两个相互对立的开发语言,对于Ruby和Java谁更具有优势的讨论意义已经不大,首 先从Java本身来讲,,Java有其自己的优势,并且 Java将会继续处于顶峰,并在企业应用上保持良好的表现,这一点毋庸置疑,并且已经得到了市场的证明。

  另外, Ruby有极强的文本处理能力,与Perl不分伯仲,同时,Ruby的语法简单,还有异常处理以及迭代器等构造使编程变得简单明了,这也正是我们所期待的下一代编程语言。

  如果单从某一种语言的角度来看,我们似乎并不能看出什么,但是如果站在更高的位置,从不同的角度全面的看待问题,我们不难发现,二者将会求同存异,各自发挥自己的特长,从而使我们能构建出更加强大的应用程序。

  Sun 收购JRuby的同时,Charles Nutter JRuby 的核心开发者之一, Thomas Enobo也加入了Sun。这似乎能够让我们把Ruby和Java联系在一起,Sun公司如果能够在JVM上做充足的投入,更好地支持动态语言, 拥抱新的事物,依托Sun公司的强大实力和其自身独特的优点,Ruby必将会有巨大的市场,同时,Ruby也需要一个过渡期,在市场中得到验证,让更多的 人去使用它,但就目前来讲Ruby已经从暗流涌动,开始扬帆远行!

  编后:Java开源不能阻挡,也不可能阻挡Ruby前进的脚步,从人们质疑它的存活度到现在一跃进入十大编程语言行列,这是我们每个开发人员都 没有想到的,Ruby在改变语言阵营的重新布局,而且Ruby在Web领域的应用范围已经越来越广泛,有很多的中小企业都采用Ruby做为自已主流的 Web开发平台,但是在这些卓越表现的背后,我也不能否认,Ruby离商业开发模式的道路还有一段距离,很多的软件公司还没有把它纳入新年的计划当中,所 以,Ruby登上开发行业的殿堂,呈现遍地开花的局面,至少在2007年还不会出现。

  评论这张
 
阅读(177)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017