作家
登录

Python和Ruby两大语言全方位对比

作者: 来源: 2017-09-13 17:06:15 阅读 我要评论

方才开端学Python的时刻,就据说过一句“Python是主流动态说话中最慢的”,后来才知道,说那句话的人根本没把ruby放在眼里。如不雅把ruby也算进主流动态说话里,那么就会出现一个比Python还慢了一个多半量级的说话了。

ruby风行么?是不是要走向PHP?php是个好器械,然则问题在于他只能作WEB编程,限制了PHP的应用范围,稍微须要系同一点的器械就要借助于C。而如今的ruby似乎也就是走着这条路。直到有一天,有人爆料”ruby是可以做客户端编程的”,博得大年夜家一片好奇。何况如今的ROR可否代替什么照样个未知数。大年夜Java WEB开辟中解救出来的人们也并不都是走向了ruby。

四、评《选Ruby照样选Python?》

Python和Ruby的设计哲学确切有很大年夜的差别,这个问题,我就不评论哪个更好了,各有所爱吧。至于效力,Ruby永远不要推敲跟Python比拟。Ruby是伪线程,并且根本没有应用多核CPU的可能,直接pass。而Python应用native

thread,仅仅因为部分模块不是threadsafe的而参加了GIL来限制应用多核CPU,而在我比来的测试中,在应用Twisted的异步线程之后,已经可以很好的应用多核CPU的计算才能了。履行效力上也不是一个数量级,本身尝尝就知道。

拿Java比较Python,可见作者创造力之强悍,哈哈。开源项目是很相符达尔文的天然选择的,难道Ruby的开源项目少倒成了长处了?别的,在Python中我也没见除了WEB。framework之外有什么项目有太多的反复。举个例子,pypcap就已经根本镌汰了pcapy了。

初期入门,Ruby更轻易,但一旦达到必定复杂度,那么Ruby的难度骤然加大年夜。Python入门不轻易,复杂的时刻也不会太苦楚。rails有入门简单,深刻难的问题。rails生成的目次是做什么竽暌姑途?o/r mapping若何实现的?若何把数据大年夜web中传递到数据库的。这些都是Ruby法度榜样员日夕要面对的问题。Python则不会如许,如不雅搞不清跋扈这些,大年夜概根本没办法开端。集成度太高的快速开辟对象都有这个特点,无论是VB、Delphi,照样.net,有若干应用了半年以内的开辟人员可以说清跋扈工程目次下面所有的文件的用处、每个文件中的语法?我信赖很多很有经验的用户也未必说的清跋扈。

谈到资本,Ruby还有很长的路要走,所以提到两边都很强的时刻,麻烦不要太并列化了。至于Java社区的人偏向于学Ruby,我小我认为只是被Java熬煎惯了的开辟人员眼光太狭隘所致。说话是对象,面向对象也是对象,纯粹的面向对象并不见得高超到哪里去,Python也有函数式编程的支撑,作者怎么没有提到。别的,Python的很多做法是以开辟效力为第一目标的而不拘泥于各类情势,甚至为很多智力有限的人所广泛诟病的C++中的多持续,Python也可以支撑。问题不在于支撑了什么让你不爱好的器械,而是让尽可能多的人用上他们爱好的器械。别的,一向被Ruby开辟者所认为的Python不敷OO的一个例子就是取一个序列的长度,Python应用len(x)的办法。这个问题,如不雅Ruby开辟者认为x.length就可以算是OO的话,那么Python也大年夜可以直接应用x.__len__()来获取长度。大年夜用办法来封装属性的Java角度讲,谁更OO一些呢,哈哈。

Ruby是一个日本人的作品,呵呵,这个就不多说了,不爱好日本的国人有很多,在此我仅在技巧层面就可以把Ruby贬低下去,无须用非技巧的器械了。

关于Ruby on。rails,Ruby社区确切把几乎所有的精力都集中于此。然则这只能表示出Ruby的幼稚,事实已经证清楚明了,ROR的很多模仿者已经推出无数的高等功能,远远跨越了ROR,没有代替ROR只是出于先工资主的不雅念。如不雅如今的Ruby,忽然掉去了ROR又会是什么样子。至于作者提到的zend,居然用来跟ROR比拟,有如以卵击石,我学过Python的2种WEB框架,日常平凡也比较存眷Python和Ruby的各类器械,然则zend这个器械,我是没有据说过的,不知是不是作者的作品,哈哈。如不雅必定要在WEB框架上有个较劲的话,你可以用django,Quixote,mod_python之类的来比较一下。django,一个典范的ROR模仿品,还在成长,然则已经有很多优于ROR的功能了,而机能上远优于ROR自不必说。应用Quixote的douban.com是所有应用Python和Ruby网站中流量最大年夜的,并且在雷同硬件设备的情况下比ROR实现速度快了一倍还多,要知道去除WEB办事器等等的各类平等损耗之后,这可是要快上一个数量级的器械。至于mod_python,据说www.gnu.org用的就是这个。如不雅Ruby还想开源的话,那么就永远活在Python的暗影琅绫擎吧。

至于上手的速度,各小我有不合的情况,不作评论。至于灵活性所带来的器械,仁者见仁,就不要评论了。作者谈到Python的入门不轻易,真不知Ruby有个多么轻易。我初学Python时,第11天就用Python写了一个词法解析器,至今仍然在我博客上可查。所以,入门难度这个器械,每小我照样本身去尝尝为好,不必听别人怎么说。

提到ROR生成的目次有很多器械,要良久才可以都懂得,这确切是IDE的综合症。在Python下,比较典范的例子是TurboGears,如不雅你欲望懂得全部应用法度榜样的运行方法,你可以大年夜核心cherrypy开端进修,然后开端应用TurboGears就没有什么可不懂得的器械了。在这个角度上,ROR没有选择。再者,如今ROR可用的一种连接WEB办事器的方法scgi,昔时也是Python的作品,又是一个在Python的暗影下活着的小器械。

将来的成长么,背注一掷的Ruby还很难说,但既然是背注一掷,风险照样蛮大年夜的。而Python么,我也认为真的会安稳的成长,然则后来Micro$oft的参加,让我们都难以预感Python的将来到底有多大年夜了。我们再回头谈谈作者一向憎恶的Python的多样性,在我看来Ruby可以超出Python的器械屈指可数,而Python跨越Ruby的器械,天然是Ruby难以超越的鸿沟。所以大年夜编程说话的多样性推敲,也就不建议大年夜家学Ruby了吧,少了一种选择,集合一些人气老是好的。

五、python和ruby,我选谁?

其实python和ruby异常接近,比大年夜多半其余说话要接近的多,所以爱好用啥就用啥(大年夜实话,固然也是废话)。语废喔赡差别固然有那么一点,大年夜部分是syntax sugar,我斗胆稍微列几个(python我也忘得差不多了,纰谬的大年夜家尽管来鞭尸吧),然则重要差别照样设计思惟上的:灵活vs明白. 我不认为两者在临盆力上会有什么差别,如不雅你熟悉的话。*留意,仅限说话本身的比较。


  推荐阅读

  河北首个数字化交通设施户籍化管理系统投入使用

51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 看到这条信息后,他们急速联喷鼻魅这位市平易近,具体懂得他的诉求,并向辖区交警懂得该路段的具体情况。>>>详细阅读


本文标题:Python和Ruby两大语言全方位对比

地址:http://www.17bianji.com/lsqh/37397.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)