群飞开发技术门户

做您身边的学习顾问

注册
热点:

您现在的位置是:主页 > 网站开发 > python >

Ruby优于Python之处(面向hackers)

时间:2012-01-16 15:20   来源:未知   收藏  复制分享 点击:

   粗略的看,ruby和python很是的相似,都拥有不错的社区,年夜量的类库,都是动态说话。但如不美观要在之间做一个取舍?你会怎么看呢?

  我说说我的观点:

  哲学纷歧样

  Python强调的是代码气概的统一,一件工作只有一种做法,年夜而似乎加倍利于团队合作;而Ruby走了另一个极端,因为说话设计的很是美妙,做一件工作可以有更多的选择,所谓条条通衢通罗马。如不美观你问一个hacker,他必然会告诉你,他不喜欢被限制。至于团队协作的问题,那就看你的团队都是什么人组成的,如不美观都是一帮hacker,那自然会有一些和谈,巨匠在这个和谈的基本上工作,分歧的模块间按照和谈“通信”便ok了。但如不美观你的团队斗劲“保守”,那就选择Python吧。如不美观我build一个新的团队,我就必然选择hacker。可以举荐巨匠去看一下黑客与画家。

  对象系统更彻底

  好比一个数组对象的长度,在Python里只能len(array),或者array.__len__()。而在Ruby里,一切皆对象,你可以array.size或者array.length。细节抉择成败。

  元编程撑持更猛

  你可以在任何时辰,动态的改削任何Ruby的class,这得利于Ruby实现OO时构建的eigenclass(Ruby对象系统其实值得好浩揭捉究,可以参见我以前的一篇博客)。而这在Python里做起来是很坚苦的,甚至是不成能的。Python对于导入的class或者模块,只能以过程式的体例,进行 XXX.new_method赋值,而Ruby可以和import前的写法一致,是声明式的。虽然Open class轻易惹人不成控的bug,但他也可以hacker更多的空间,更多对已有代码的节制,用得适当可以使代码加倍简短,加倍可读。好比:10.years.ago,这让hacker写起来很兴奋!这加倍适合做DSL。

  匿名blocks发飙

  Python可以用lamba来实现,但可恶的是代码必需是one line的,这典型没有考虑block的威力。而Ruby的每个体例都可以接管一个匿名block。那匿名block有什么威力?Javascript Ninja必然年夜白。对于非Javascript Ninja,简言之,可以直接使用block传递给一个体例,体例可以操作block发生域的变量,如不美观还无法想到益处,最直接的就是去学好 Javascript。

  任何表达式,体例,函数都有一个返回值

  如不美观你熟悉Functional Programming,你就知道,任何元素都应该有一个返回值(好比if表达式也会以最后的结不美观作为返回值),结不美观往往由一系列的函数挪用抉择,一个函数的输入往往是另一个函数的输出。这点Python是做不到的。

  更快和更注重实效的堆集

  rails3.1就快出来了,琅缦沔拥抱了jQuery,拥抱了sass coffeesrcript,还内置撑持了http stream。这些在django等Python的web framework琅缦慊有获得实时的纺暌钩。而且rails生态系统里,rails的进化是社区敦促的,一个新特征必然是加倍合理的解决了今朝web开发的问题,而非理论或小我英雄主义。取之于平易近,用之于平易近。

  以上是我对这两门说话的一些简短的设法,将滥暌剐新的设法再插手。不想引来Pythoners的口水,如不美观你感受我的不雅概念有问题,不用拥护即是。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%

更多相关资讯

最新评论 进入详细评论页>>
发表评论
已有条跟贴(点击查看)
只允许会员评论,请先 登录注册
自动获取登录的用户名请自觉遵守互联网相关的政策法规,文明发言。