- ruby的case可以匹配很多器械:范围/数组,对象,正则表达,python没有case/switch而应用if/else比较逝世板点
- python的缩进很漂亮,固然有时会造成些许麻烦。ruby的end蛮难看的,所以大年夜家都被逼当one liner(打趣)
- 感到上ruby比python更OO,当然这也可能是因为python不倡导用那些改变对象内部构造的‘手段’造成的错觉
- python有list comprehension, ruby没有:(
- python有真正的keyword argument, ruby用hash模仿,当然实际用起来没什么差别
- python的self很憎恶,ruby没有那种繁琐的器械
- reflection,ruby内置了很多办法,比如object.methods,而python把这些信息存在特别的字典里。差不多
- ruby的block功能很强,python的lambda只能返回单一值
- ruby的open class已经声明远播,可以玩出2.days.ago如许的花样,python似乎没法直接修改内置类也否决这么做。
- python须要用@classmethod润饰声明类办法,ruby是内建
- ruby有单子办法,也就对对象零丁定制,python不知道有没有类似概念
- ruby有method_missing机制,python可以应用__getattr__截获不决义办法(from qiezi)
- ruby应用单持续+mixin,python应用多重持续,不过python也有mixin
- ruby有attr_*系列语法helper,省却本身写一堆setter/getter, python的property办法照样得本身写setter/getter
- ruby和python都应用duck typing,不过python也有一套显式的interface机制(大年夜zope3并入内核了么?)
- ruby的函数调用括号是可省的,稍微少敲几下键盘。python默扰绫腔括号也不带参数的话返回函数本身的一个引用。
- 我不清跋扈python的meta programming能到什么程度,只好等大年夜牛来说说了。只是认为pythoner不常用那个,也许认为会把法度榜样逻辑搞得晦涩不明。
- ruby大年夜perl持续了一部分难看的器械,比如许多预定义的$x常量
- ruby内建正则表达,便利一点
- ruby的yield是用来call block的。而python的yield是用来给generator输入输出值的。
- python的库给我感到定名规范有点不同一,有些办法用snake_case有些则用CamelCase,也许是库太多了遗留下的汗青问题
- python的三引号很漂亮,ruby的<<-XX…XX太难看了,也可以用%q{…}担保多行文字(from qiezi)
- ruby的类库设计中爱好给办法添加别号,便利记忆。
另: ruby官方网站也供给了一些根本的比较。
六、两种说话的资本和进修曲线比较:
总体的印象,用一个不大年夜恰当的比方:如不雅Python是Java,那么Ruby就是.net。我们知道,Java世界异常复杂,异常多样性,任何一个需求,都邑有很多开源项目,他们用不合的思惟来实现,机能特点迥异,到底选那个,老是令人犯难。如今Python也是如斯,而因为Python开起事度远远低于Java,导致Python的相干项目比Java还要多得多。
三、《ruby和python的比较》之更正
资本上,两者社区都很强,有趣的是,如今Java社区存在被Ruby同化的危险,至少我订阅的几个Javablog聚合中谈Ruby比Java还多。Ruby的社区较为集中,Python则比较分散。我总困惑Ruby的日本用户较多,但因为不懂日文,很难确认这个设法主意。对于一个母语非英语的开创人,我老是有点恐怖,怕很难解得他,怕很难获得最新消息等等,固然这个担心今朝看来并无须要,不过,谁知道会怎么样呢!
Ruby之所以如今忽然变得热点,和rails这套架构是分不开的。推敲Ruby,就要推敲到Ruby on rails。rails供给了一套异常好的web开辟框架,开辟效力异常高。Python固然有很多类似的架构实现,但并没有出现一个可以或许一统江湖的架构。Python的zend固然完全,但更偏向于web办事器,不克不及用来和rails比较。
可以用netbeans的ruby插件或eclipse的ruby插件
Ruby比pyton更轻易上手。大年夜说话特点看,Ruby有很多有意思的创造,比如说block,但大年夜范围的应用这些好玩的器械让法度榜样变得纷乱。Python语法强调简单,然则因为太灵活,简单得太过分,于是传统法度榜样员经常会看到一些令人大年夜吃一惊的表达方法。我不知道这应当算长处照样缺点,至少我认为语法过于灵活,轻易导致不合法度榜样员的代码风格差别过大年夜,增长了进修成本。
大年夜架构上看,二者固然实际上相差甚远,但最后表示出来的结不雅反而很类似。Ruby是纯粹的OO说话,而Python是函数和OO混淆型。固然Ruby也能用函数风格的编码方法,但实际上是模仿出来的。他们的┞封个差距对于通俗的法度榜样员影响并不大年夜,毕竟看起来差不多。
总体来说,如不雅长短专业人员初尝开辟,Ruby是合适的。对于专业的法度榜样员,我照样建议选择Python。
对于将来成长,我认为Python的成长可预感,会较为安稳。Python已经属于一个社区,而非一小我,但Ruby因为各种原因,Ruby的作者maze的意志仍然会对Ruby的成长造成较大年夜影响。Sun控制着Java,但因为sun的资本强大年夜,且组织了jcp进行兼顾,所以Java成长很不错,但Ruby能不克不及作到这一点,还须要时光来证实。
七、大年夜Python到Ruby
UliPad 支撑代码着色、智能补全、代码调试、Python类浏览、代码片段、Ftp功能、目次浏览等等强大年夜功能,其 Doc 目次下的文档更是异常丰富,是你编写 Python 的绝世好副手!
类似点
和Python一样,在Ruby中,…有一个交互提示 (叫做 irb).你可以在敕令行中攫取文档 (经由过程ri 敕令来替代 pydoc).没有特别的停止一行的符号(新行除外).文字可以用多行,就像Python中的三个引号.List用[],Dict用{} (Dict在Ruby中叫“hashes”).Arrays的工作方法雷同(2个Array相加成为一个加倍长的Array,然则想如许a3 = [ a1, a2 ] 归并,将产生一个包含数组的数组).Objects是有固定类型和动态转换的.一切都是object,变量名只是一个指向Object的指针.固然关键字不合, 然则exceptions的工作方法不变.你拥有嵌入文档的对象 (在Ruby中叫做rdoc)。
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 看到这条信息后,他们急速联喷鼻魅这位市平易近,具体懂得他的诉求,并向辖区交警懂得该路段的具体情况。>>>详细阅读
本文标题:Python和Ruby两大语言全方位对比
地址:http://www.17bianji.com/lsqh/37397.html
1/2 1

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