Ruby和Python的区别在哪

Ruby和Python的区别在哪,第1张

  也许很多人认为,编程只要被计算机读懂就可以了。   但是对于调试人员,或者维护人员来说,也得需要易懂可读。   总之,越是容易理解和阅读的代码当然越好了。   这不,关于编程语言Python和Ruby谁更可读,网友都吵翻了。       很多网友站队Ruby,这是为什么呢?  

Ruby大战Python

          其实,Ruby和Python几乎没有区别。   如果一个Python程序员打开了一个Ruby代码库,他不需要外部资料也能轻松弄懂它。   反过来Ruby程序员也是如此。   然而,Ruby程序员不太可能像Python程序员浏览Ruby代码库那样轻松地浏览Python代码库。     接下来本文将告诉你原因。   先让我们先用Python来创建一个类「博客文章」。   Ruby和Python的区别在哪,9a347026-0c2c-11ed-ba43-dac502259ad0.png,第2张   我想要打印这篇博客文章的标题,在Python中有两种方法可以实现:   Ruby和Python的区别在哪,9a417cee-0c2c-11ed-ba43-dac502259ad0.png,第3张   第一种是简单的打印属性(attribute)。   Ruby和Python的区别在哪,9a51e516-0c2c-11ed-ba43-dac502259ad0.png,第4张   第二个是在我们的类中添加一个 __str__ 方法:   Ruby和Python的区别在哪,9a5dfe6e-0c2c-11ed-ba43-dac502259ad0.png,第5张   这样我们就能更轻松地打印标题了。   Ruby和Python的区别在哪,9a74c590-0c2c-11ed-ba43-dac502259ad0.png,第6张   那如果我想要改变这篇博客的标题呢?   同样很简单。   Ruby和Python的区别在哪,9a85455a-0c2c-11ed-ba43-dac502259ad0.png,第7张   让我们看看同样的步骤在Ruby里表现如何。   Ruby和Python的区别在哪,9a942a48-0c2c-11ed-ba43-dac502259ad0.png,第8张   类运行同样很轻松。   Ruby和Python的区别在哪,9aa3f6ee-0c2c-11ed-ba43-dac502259ad0.png,第9张   让我们来试着打印这篇博客的标题。   Ruby和Python的区别在哪,9ab2ccc8-0c2c-11ed-ba43-dac502259ad0.png,第10张   oops!出现了未定义的方法(undefined method)。   在Ruby中,无法像在Python中那样访问实例变量。你需要一个getter。   Ruby和Python的区别在哪,9ac2d96a-0c2c-11ed-ba43-dac502259ad0.png,第11张   你也不能直接设置属性——你需要一个setter:   Ruby和Python的区别在哪,9acef6be-0c2c-11ed-ba43-dac502259ad0.png,第12张   现在我们再试着运行看看。   Ruby和Python的区别在哪,9aec85a8-0c2c-11ed-ba43-dac502259ad0.png,第13张   到现在Python和Ruby的可读性似乎都不错,等等,让我们看看下面的测试。   在Python里,我们可以通过BlogPost.count或post.count访问帖子的数量。   Ruby和Python的区别在哪,9afb00ec-0c2c-11ed-ba43-dac502259ad0.png,第14张   而在Ruby中,我们可以访问post.count,但我们不能像在 Python 中那样访问 BlogPost.count。   由于这是一个类变量,我们需要能够从类本身访问它。   Ruby和Python的区别在哪,9b159b64-0c2c-11ed-ba43-dac502259ad0.png,第15张   现在我们可以使用BlogPost.count了,但我们不用post.count,因为它可能与常规实例变量混淆。   Ruby和Python的区别在哪,9b255f22-0c2c-11ed-ba43-dac502259ad0.png,第16张   现在我们只能从BlogPost 类中访问count,那我们可以设置类变量吗?   让我们试试看。   Ruby和Python的区别在哪,9b449572-0c2c-11ed-ba43-dac502259ad0.png,第17张   OMG,我们从来没有为这个变量定义过setter。   放到Python里怎么样?   Ruby和Python的区别在哪,9b53f1d4-0c2c-11ed-ba43-dac502259ad0.png,第18张Ruby和Python的区别在哪,9b676f3e-0c2c-11ed-ba43-dac502259ad0.png,第19张   有用了,我们甚至可以在类里完成这一 *** 作。   那么有人就要问了,Ruby的对象更直接吗?   我认为在 Ruby 中更容易看出类和实例属性之间的区别。   Setter 和 getter 允许您清楚地指定哪些属性是可读和可写的。   您可以通过不实现 setter 来保护您的类属性。在Python中,很容易意外写入count属性——这会破坏你的程序。   默认情况下,post.count 和 BlogPost.count 都返回属性的值,但如果它只能从类中访问,则更容易注意到它是类属性。   文章最后的结论说,显然Python和Ruby都比PHP或Java更容易阅读,但Ruby更近了一步,它写出来的代码让你一眼就能看明白。  

网友争论

关于Python和Ruby谁更可读,网友们在评论区展开了激烈的讨论。   Ruby和Python的区别在哪,9b73a006-0c2c-11ed-ba43-dac502259ad0.png,第20张   单独看,我认为Ruby比Python更具可读性,并且容易理解。实际上,Ruby代码并非如此。一旦有人开始进行高级元编程,你就想杀了他然后把他给埋了。   使用Ruby编写的Web应用开发框架Rails在很大程度上可以通过自主设计、良好的文档,以及已经编写问题答案的大量用户群来摆脱这些困境。   Ruby和Python的区别在哪,9b90f138-0c2c-11ed-ba43-dac502259ad0.png,第21张   网友大赞,这确实反映了我真实的经历。Ruby是一门非常一致的语言,但我认为人们真正迷恋 Ruby 的是元编程,也包括我自己在内,很快你将需要在大脑中掌握大量上下文来理解所有正在发生的「魔力」。   有人就对其进行了反驳。   Ruby和Python的区别在哪,9ba0ba64-0c2c-11ed-ba43-dac502259ad0.png,第22张Ruby和Python的区别在哪,9bc2477e-0c2c-11ed-ba43-dac502259ad0.png,第23张   我精通的Python,直到现在我仍然无法在Ruby中做任何有用的事情。其实,Python比Ruby更具可读性、易懂。   我同意,对于这两种语言的新手来说,Ruby的@和@@可能会使阅读起来有点困难,而且对我来说似乎更冗长,Python获胜。   Ruby和Python的区别在哪,9bd35410-0c2c-11ed-ba43-dac502259ad0.png,第24张   还有网友直接搬出了Ruby设计者Yukihiro Matsimuto曾说过的话,   我没有让Ruby对于每个人来说都很完美,因为每个人感受不同。没有一种语言可以完美地适合所有人。   对于Guido van Rossum来说,最完美的语言可能是Python。   我希望看到Ruby能够让世界上每个程序员变得高效,享受编程,并且快乐编程。这是Ruby语言的主要目的。     有网友认为这篇文章就是在讽刺。每次比较之后,当他们说Ruby更易读时,我都以为他们是在开玩笑,直到看到了多重继承这部分。   Ruby和Python的区别在哪,9c03c096-0c2c-11ed-ba43-dac502259ad0.png,第25张   要说,Python和Ruby真正受欢迎程度,那绝对是Python获胜。   就拿GitHub在2021年底发布的年度报告来看,除了霸榜的JavaScript,Python是第二受欢迎的编程语言。   Ruby的受欢迎程度也是近年来连续下降。   Ruby和Python的区别在哪,9c17b4d4-0c2c-11ed-ba43-dac502259ad0.png,第26张   从应用广泛程度上来看,Python的应用范围更广。   除了web开发外,Python还被广泛用在服务器后端的高性能服务器实现,各种密集运算,全文检索,各种文本处理,系统管理等等。   那么,Ruby的应用仅限在web开发领域。     再从薪资待遇上来看,   根据在线社区Glassdoor的数据,Ruby开发人员的平均年薪应约为76,540美元,或每月大概6380美元。   Python开发人员的平均年薪为92,000美元,相当于每月近7670美元。   这么来看,Python开发人员薪水要比Ruby的高,每月多出来1000多美元。   不管怎么说,Python和Ruby更像是拼音输入和五笔输入的感觉。Python语言更简单,适合初学者,而Ruby的语法更丰富,要求更高。   那么,你觉得这两种语言哪个更易懂可读?     

      审核编辑:彭静

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/dianzi/2711552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存