恰是因为Ruby解析器和Ruby类库的制约,Ruby的应用重要局限在Web开辟范畴,今朝Ruby的应用还无法延长到web开辟范畴以外的很多处所。据说豆瓣早期就推敲过Ruby on Rails,然则因为Ruby不克不及做其他工作,而Python可以大年夜包大年夜揽,最后放弃Ruby选择了Python。
4、在Web范畴Ruby是王者
跟着互联网应用更进一步渗入渗出到软件开辟的各个范畴,其实web开辟占全部软件行业开辟的比重也是越来越大年夜。尽管Ruby在其他范畴很受制约,然则在Web开辟范畴就是绝对的王者了。Rails框架的领先程度已经远远甩开了任何一个潜在的竞争敌手十万八千里。是以尽管Ruby可能有如许那样的问题,然则说到Web开辟,Rails几乎就是无可争议的独一选择。
而Python尽管十分周全,却偏偏在web开辟范畴不彰,web框架固然浩瀚,却没有一个真正可以挑大年夜梁,Django固然在Python社区比较风行,但很多方面也出缺点。如今的互联网应用往往都是多种说话混淆编程,Ruby在Web以外的缺点也可以用其他说话来弥补。
5、Python的担保理不如Ruby
尽管Python的第三方类库更高质量更成熟,然则Python社区缺乏Ruby Gem如许一个优胜的担保理软件和包宣布的网站。是以应用的构建显得不如Ruby那么便利,那么人道化。特别是在类库的版本进级上,就会碰到很多麻烦,不如Ruby Gem那么简单。
不过总的来说,Python和Ruby照样类似度极高的两种编程说话,即使两种编程说话都进修一下也不会浪费太多时光。如不雅我小我选择的话,会首选用Rails来构建web应用,再根据情况选择Python或者Java处理一些办事器后端的运算。总之,将来照样一个混淆编程的时代,我们须要多懂得一些编程对象,然后根据须要看菜吃饭才行。
至于嵌入HTML功能,Python里有C/Python双实现的Cheetah模板可用,据说托Zope的福,美国海军和法国当局在用,不知Ruby这个功能的成熟度若何?
文档、开源项目、库支撑,这些器械Ruby不要跟Python比,不是几个数量级的问题,何必貌似并列的排在一路。
Python确切没有把正则表达式模块内置到核心琅绫擎,然则却竽暌剐re这个标准库的支撑,当时的目标也是为了尽可能的把核心做到最小。我不太明白,应用标准库和内置有什么差别,甚至可以作为长处?且应用Python中的┞俘则表达式也不过是多个importre和调用时的几个字母罢了,省下的无数个end足以抵销这个问题了。
mod_ruby模块的出现时光很短,如不雅作者没有听过mod_python那就实袈溱眼光如豆了。我在一年前翻译mod_python3.2.8文档的时刻,mod_python已经很成熟了,以至于几乎所有的Python。WEB框架都支撑构建在其上来进步效力。然则,似乎mod_ruby的更新,每年也只有几回。mod_python更有gnu.org如许的重量级应用,不知mod_ruby有没有?
racc和doctools,请谅解我的眼光如豆,我google了一下居然除了你的┞封篇文┞仿还没找到几篇关于racc的中文内容,辗转之后才查到是一种类似yacc的对象。大年夜google的角度讲,racc的可用性我就不多说了。我不太明白一个yacc对象在日常编程傍边有多大年夜的实用性,然则既然作者提到了我就趁便找了个我只据说过名字,根本没用过的Spark。google的结不雅是”raccruby”:”pythonspark”=159,000:659,000。至于doctools,我更是无话可说,在google上只有15,800笔记录,我到如今都看不出这个器械是干什么竽暌姑的。所以找了个估计是类似的器械比较了一下,docutils,google的记录是25,400条。
”ruby的┞符个库都是类持续构造的”,小我认为是Java的糟粕,反倒是当成宝学过来了。或许这也是ruby来拯救Java法度榜样员的一项优势吧。
”根本数据类型和运算符都是可以重载的”,这个不是太清跋扈,不知Python中重载__add__之类的算不算。
”ruby重要的功能都是经由过程对象的办法调用来实现的,而不是函数”,Python中所有的器械都是对象,但并不都是类,不知这句还有什么意义。别的,推荐你不要太寻求什么彻底,照样实用这个词比较有吸引力。
Python没有严格请求单持续是给法度榜样员以灵活性。别的,关于接口,Python中只要定义了同名的函数就算是具有了雷同的接口,形而上学上升到了这个高度,我也有些含混了。至于接口,不要那么自负,ruby的所谓接口也不过是个mix-in。这个器械Python的几个大年夜项目中也有过实现,只是因为对Python意义不明显,所以才没有更多的应用。
关于lisp的函数式编程,Python中有很多内置支撑,如map、zip、filter等等,当然还有lambda。不要说支撑,我们谈实用。Pythoner中尚且有些人认为函数式编程影响了代码可读性而尽量避免呢。所以,你认为支撑什么器械之前,先想好如许器械算不算是个好器械。
”最大年夜的不足恰是因为ruby的强赶紧引起的”。这灸┞锋恶心,不予评论。
呵呵,ruby居然没有国际化支撑,真是个笑话,不知道当初那个小日本怎么想的?难道他英语过了四级?
“比Python库更完全的面向对象语法”。试问面向对象的目标是什么?再者,ruby可否像Python一样,绝大年夜多半标准库根本不须要查文档,只要猜测一下大年夜体上的名字,然后dir()一下,再help()一下就可以直接上手,用到第二次的时刻,因为模块内器械实袈溱太少,记忆太便利,就可以直接写出来的地步?别的,面向对象既不是什么银弹,也不是最先辈的软件工程思惟。
至于jython,如今也有了jruby,可能是作者的原文比较早的缘故吧。Python也有很多种实现,像是jython,ironpython, pypy,pyrex等等。Python的优良其实并不必定要经由过程用其他说话来实现才能表现出来。当然更不要说寄欲望于要Java来解救水火倒悬中的ruby了。别的么,有些ruby的缺点不要躲避:
ruby没有本地化线程,而是用的伪线程,根本无法应用多核CPU的优势。CPython应用了本地化线程,然则因为应用了GIL所以也是无法应用多核CPU优势的。然则Stackless的出现完全可以解决这个问题,并且stackless更是将Python进步到了并行计算的高度,这个高度的竞争敌手可所以Erlang,ruby天然不必窥测。个中的超轻量线程技巧可以确保一台很烂的机械上跑几十万的线程还很轻松。基于Twisted的异步编程方法也供给了一种选择。
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 看到这条信息后,他们急速联喷鼻魅这位市平易近,具体懂得他的诉求,并向辖区交警懂得该路段的具体情况。>>>详细阅读
本文标题:Python和Ruby两大语言全方位对比
地址:http://www.17bianji.com/lsqh/37397.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示