• 热门专题

Python和Ruby相互比较优缺点暴露无遗

作者:wy  发布日期:2019-01-13 08:33:00
  •   为何Python和Ruby总是放在一起呢?为何Python和Ruby要进行比较呢?Python和Ruby又有那些不同呢?相信大家对这些问题肯定带有很多疑惑,小编为大家因为这些问题找到了答案,希望大家可以认真阅读,在你的学习中生活中工作中明白些什么收获些什么。

      Python优于Ruby的地方:

      a) Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多

      b) 和Ruby相反,Python的哲学是“做一件事情有且只有一种方法”(There should be one-- and preferably only one --obvious way to do it.)。Ruby的信徒会觉得这样非常boring,但是我觉得这一点减轻了人们在开发时的认知负担和选择成本,对于提高开发效率是很有帮助的。同时,这个特点使得不同的人用Python写出来的代码不至于相差很大,这对于团队合作也是很有用的。(这点也导致了Python中是有公认的Best Practice的,但是Ruby中就很难找到一个公认的Best Practice)

      c) Python在面向对象上做的并不好,其实是把面向过程和面向对象杂糅起来了。(随着Python 3的发展相信这点会有所改观)我个人虽然感觉这样不太好,但是实际用的时候就会发现,不强调面向对象其实能够减轻程序员的认知负担,写起代码来会比较随心所欲,对于c程序员来说也更容易接受。(好吧,如果你觉得这点是Python的缺点,那么其实你也是对的~)d) Python开始慢慢走进大学一年纪的教科书,可以预见,未来的Python开发者阵营会继续不断壮大。(当然Ruby的阵营也会越来越大)

      e) Python解释器,特别是CPython,目前比现有的Ruby解释器快很多。这点Ruby的发明人Matz也是很想再重新写个Ruby的虚拟机,但是苦于要做的事情很多,不知道什么时候能完成。Ruby的运行效率目前来看实在太慢了些。(当然程序运行效率和代码是如何写的也有很大关系,想让Ruby程序尽可能快的话,除了一般的程序优化方法外,还要注意要多用built-in的东西,因为它们是用c写的,运行快)

      f) Python的语法比较简单,容易上手。

      说了这么多Python优于Ruby的地方,现在再来说说我觉得

    Python和Ruby

      Ruby优于Python的地方:

      a) 第一个印入我的脑海的优点是:有趣!当你开始慢慢学会使用Ruby后,你就会觉得Python的代码比较死板。这是因为Ruby从Perl中继承的一条哲学是和Python完全相反的:“每一件事情总是有多种做法”(Having more than one way to do the same thing)。所以程序员的创造力就完全被激发出来了。当你看到某个问题的一种前所未见又十分优雅的解决方案时,你会有一种混杂着强烈喜悦的惊讶的——写(优美的)Ruby能够激发人的灵感。

      b) Matz在设计Ruby的时候就想方设法让Ruby成为一个“人性化”的语言,力求使Ruby程序员感觉到使用Ruby是一件愉悦的事情。你能从Mixin、程序块、元编程、极具包容性的语法等等当中获得一种喜悦。

      c) 纯粹的面向对象,极其强大的元编程功能。Ruby是纯粹的面向对象。CSDN的范凯曾经说过:“你学习了Ruby以后,你就会发现,原来Java/C++所谓的面向对象就是TMD的山寨版本的面向对象,原来面向对象还可以这样玩啊”。Ruby的元编程能力还有宽松的语法使得使用Ruby可以很轻松的开发DSL(Domain Specific Language),这一点Python是搞不定的。

      d) Ruby on Rails!要不是DHH开发出了RoR不知道现在还会有多少人在用Ruby。毋庸置疑,RoR是快速Web开发的神器。为什么RoR那么牛?有一个很重要的原因就是RoR将Ruby的元编程能力发挥到了极致,“甚至到了一种变态的程度”(Matz语,见《松本行弘的程序世界》P.S.想要了解Ruby设计思想的话此书一定要读一读,起码是部分章节)

      e) Ruby吸收了很多语言(Lisp、Smalltalk等等)的特性,对于程序员来说了解一下Ruby对于开阔思路是很有帮助的,它能帮助你更好的看清你之前一直使用的语言的限制之处在哪。

      经过了对Python和Ruby两者的理论知识概括和基础目标设定,我们通过对Python和Ruby的优点和缺点讨论然后将两者进行比较分析,得出不一样的结论和想法。愿此篇文章能够给你帮助和解决你的问题。

延伸阅读:

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规
易中彩票注册599| 971| 896| 263| 359| 629| 857| 329| 209| 401| 554| 980| 521| 980| 824| 590| 188| 542| 209| 80| 635| 644| 686| 788| 419| 629| 455| 725| 926| 854|