技术开发 频道

Ruby为什么比Python成功?



    二、 Ruby的优势
    1. 比Perl更强大,比Python更面向对象
    “比Perl更强大,比Python更面向对象”,这是Ruby创始人Matz设计Ruby的初衷。
    Python既支持面向过程的编程也支持面向对象的编程,而Ruby则是完全面向对象。
    在Ruby中,任何东西都是对象,包括Python中的基本数据类型;每个过程或函数都是方法。
    例如,取-3的绝对值,在Python中,是这样的:abs(-3)。
    而在Ruby中,则是这样的:-3.abs。这种OO的方式,显得更加直观。

    2. 强大的语法功能
    单就语法的简单性而言,Ruby不及Python。但解决一些较复杂的问题,Ruby强大的语法功能,有助于降低问题的复杂度。
例如:
    Ruby以“块”的方式来实现列表内的条件、循环语句,比Python的更灵活、更具通用性。
    Ruby具有类似Lisp的彻底的函数方式的条件、循环语句等。
    Ruby的迭代器功能可以将流程控制结构抽象化。

    3. 强大的字符串处理、正则表达式功能
    Matz认为:Ruby > (Smalltalk + Perl) / 2。
    Ruby类库是对Perl语言功能的面向对象方式的重组,因为借鉴了很多Perl的东西,使得字符串处理、正则表达式这块,Ruby同样强大。

    4. 不会僵住的“胶水语言”
    同样是“胶水语言”,Ruby比Python更灵活。
    使用过一段时间的Python,你会发现,Python比较依赖第三方的东西。相比较,Ruby则更依赖自身。例如,Ruby可以使用(UNIX的)绝大部分的系统调用,单独使用Ruby也可以进行系统编程等。

    有优势,Ruby就一定可以成功了?Python同样也有很多优势!对,还得看当时所处的环境。

    三、 时势造英雄
    这点还得回到RoR的崛起。
    Ruby,1995年12月正式发布,2000年进入美国;2004年7月,RoR正式发布。
    RoR的出现时间,值得玩味。
    在下面的“Java语言受关注程度趋势图”上,可以看到,2004年7月前后,Java处于一个相对“衰退期”。



图2 Java语言受关注程度趋势图

    这是个偶然?当然不是!
    提到Java,大家应该都会想到J2EE。
    J2EE应用程序的广泛实现是从1999、2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是因其开发效率、学习难度和实际性能的问题,在实践中没有获得完全的成功。作为J2EE核心技术的EJB(2.x),更是因其高昂的学习代价、极低的开发效率和极高的资源消耗,备受指责。

    在这样一个大背景下,2003年,Spring框架诞生了。
    Spring的设计思想在于“使J2EE开发更加简单”。这个设计思想,在包括Java领域在内的众多软件开发领域引起了广泛关注。软件开发者们开始思考,如何让开发向着一个更简单的方向发展。 
    RoR在这一时期出现,无疑是顺应了这样一个潮流。
    可以这么说,是历史选择了RoR,当然也选择了Ruby。

    遇到合适的机遇,还不够,俗话说得好:“众人拾柴火焰高”。

    四、 众星捧月

    Ruby的出现,受到了两大主流平台Java和.NET的极力追捧。
    2006年9月,SUN雇佣了JRuby的主要开发者Charles Nutter和Thomas Enebo;一年不到,2007年6月14号,JRuby 1.0正式发布。SUN在其Java IDE NetBeans 6.0 M10中,更是集成了对Ruby/JRuby的支持。反观Python的Java实现——Jython,则没有这么幸运,发展至今,它并没有得到SUN的支持。

    而Microsoft,也在2007年7月,推出了Ruby的.NET实现——IronRuby的预览版。
    相信SUN和Microsoft对Ruby的竞相推崇,必然推动Ruby的进一步发展。

    基于以上几点,笔者认为Ruby的成功不是偶然,并且相信这样的成功还会持续下去。对于Python的未来,我们也将拭目以待。

0
相关文章