网易首页 > 网易号 > 正文 申请入驻

编程语言大对决!Ruby和Python谁更可读?

0
分享至

  新智元报道

  编辑:Joey 桃子

  【新智元导读】计算机编程语言Python和Ruby谁更易懂可读,网友们展开了激烈论战。

  也许很多人认为,编程只要被计算机读懂就可以了。

  但是对于调试人员,或者维护人员来说,也得需要易懂可读。

  总之,越是容易理解和阅读的代码当然越好了。

  这不,关于编程语言Python和Ruby谁更可读,网友都吵翻了。

  很多网友站队Ruby,这是为什么呢?

  Ruby大战Python

  其实,Ruby和Python几乎没有区别。

  如果一个Python程序员打开了一个Ruby代码库,他不需要外部资料也能轻松弄懂它。

  反过来Ruby程序员也是如此。

  然而,Ruby程序员不太可能像Python程序员浏览Ruby代码库那样轻松地浏览Python代码库。

  接下来本文将告诉你原因。

  先让我们先用Python来创建一个类「博客文章」。

  我想要打印这篇博客文章的标题,在Python中有两种方法可以实现:

  第一种是简单的打印属性(attribute)。

  第二个是在我们的类中添加一个 __str__ 方法:

  这样我们就能更轻松地打印标题了。

  那如果我想要改变这篇博客的标题呢?

  同样很简单。

  让我们看看同样的步骤在Ruby里表现如何。

  类运行同样很轻松。

  让我们来试着打印这篇博客的标题。

  oops!出现了未定义的方法(undefined method)。

  在Ruby中,无法像在Python中那样访问实例变量。你需要一个getter。

  你也不能直接设置属性——你需要一个setter:

  现在我们再试着运行看看。

  到现在Python和Ruby的可读性似乎都不错,等等,让我们看看下面的测试。

  在Python里,我们可以通过BlogPost.count或post.count访问帖子的数量。

  而在Ruby中,我们可以访问post.count,但我们不能像在 Python 中那样访问 BlogPost.count。

  由于这是一个类变量,我们需要能够从类本身访问它。

  现在我们可以使用BlogPost.count了,但我们不用post.count,因为它可能与常规实例变量混淆。

  现在我们只能从BlogPost 类中访问count,那我们可以设置类变量吗?

  让我们试试看。

  OMG,我们从来没有为这个变量定义过setter。

  放到Python里怎么样?

  有用了,我们甚至可以在类里完成这一操作。

  那么有人就要问了,Ruby的对象更直接吗?

  我认为在 Ruby 中更容易看出类和实例属性之间的区别。

  Setter 和 getter 允许您清楚地指定哪些属性是可读和可写的。

  您可以通过不实现 setter 来保护您的类属性。在Python中,很容易意外写入count属性——这会破坏你的程序。

  默认情况下,post.count 和 BlogPost.count 都返回属性的值,但如果它只能从类中访问,则更容易注意到它是类属性。

  文章最后的结论说,显然Python和Ruby都比PHP或Java更容易阅读,但Ruby更近了一步,它写出来的代码让你一眼就能看明白。

  网友争论

  
关于Python和Ruby谁更可读,网友们在评论区展开了激烈的讨论。

  单独看,我认为Ruby比Python更具可读性,并且容易理解。实际上,Ruby代码并非如此。一旦有人开始进行高级元编程,你就想杀了他然后把他给埋了。

  使用Ruby编写的Web应用开发框架Rails在很大程度上可以通过自主设计、良好的文档,以及已经编写问题答案的大量用户群来摆脱这些困境。

  网友大赞,这确实反映了我真实的经历。Ruby是一门非常一致的语言,但我认为人们真正迷恋 Ruby 的是元编程,也包括我自己在内,很快你将需要在大脑中掌握大量上下文来理解所有正在发生的「魔力」。

  有人就对其进行了反驳。

  我精通的Python,直到现在我仍然无法在Ruby中做任何有用的事情。其实,Python比Ruby更具可读性、易懂。

  我同意,对于这两种语言的新手来说,Ruby的@和@@可能会使阅读起来有点困难,而且对我来说似乎更冗长,Python获胜。

  还有网友直接搬出了Ruby设计者Yukihiro Matsimuto曾说过的话,

  我没有让Ruby对于每个人来说都很完美,因为每个人感受不同。没有一种语言可以完美地适合所有人。

  对于Guido van Rossum来说,最完美的语言可能是Python。

  我希望看到Ruby能够让世界上每个程序员变得高效,享受编程,并且快乐编程。这是Ruby语言的主要目的。

  有网友认为这篇文章就是在讽刺。每次比较之后,当他们说Ruby更易读时,我都以为他们是在开玩笑,直到看到了多重继承这部分。

  要说,Python和Ruby真正受欢迎程度,那绝对是Python获胜。

  就拿GitHub在2021年底发布的年度报告来看,除了霸榜的JavaScript,Python是第二受欢迎的编程语言。

  Ruby的受欢迎程度也是近年来连续下降。

  从应用广泛程度上来看,Python的应用范围更广。

  除了web开发外,Python还被广泛用在服务器后端的高性能服务器实现,各种密集运算,全文检索,各种文本处理,系统管理等等。

  那么,Ruby的应用仅限在web开发领域。

  再从薪资待遇上来看,

  根据在线社区Glassdoor的数据,Ruby开发人员的平均年薪应约为76,540美元,或每月大概6380美元。

  Python开发人员的平均年薪为92,000美元,相当于每月近7670美元。

  这么来看,Python开发人员薪水要比Ruby的高,每月多出来1000多美元。

  不管怎么说,Python和Ruby更像是拼音输入和五笔输入的感觉。Python语言更简单,适合初学者,而Ruby的语法更丰富,要求更高。

  那么,你觉得这两种语言哪个更易懂可读?

  参考资料:

  https://confuzeus.com/posts/python-ruby-readability/

  https://news.ycombinator.com/item?id=32158800

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
结婚7年,林志玲终于摊牌,远嫁日本原因曝光,远比你想的更复杂

结婚7年,林志玲终于摊牌,远嫁日本原因曝光,远比你想的更复杂

悦君兮君不知
2026-05-08 16:50:03
网友神预判!五一前夕下单24件衣服,直言一周之后定会全部退货

网友神预判!五一前夕下单24件衣服,直言一周之后定会全部退货

孤芳自赏的小李
2026-05-09 07:35:33
AI基础设施投资风向转变:AMD、英特尔与美光飙涨,英伟达光环渐褪

AI基础设施投资风向转变:AMD、英特尔与美光飙涨,英伟达光环渐褪

华尔街见闻官方
2026-05-09 15:47:18
理想新车突然官宣:5月15日,全新上市

理想新车突然官宣:5月15日,全新上市

科技堡垒
2026-05-08 11:10:56
体内有癌,睡眠先预警!有这3种睡觉习惯的人,更容易得癌

体内有癌,睡眠先预警!有这3种睡觉习惯的人,更容易得癌

凤凰卫视
2026-05-08 14:53:07
中国印度携手硬刚国际足联?印媒隔空声援央视:世界杯只值1000万

中国印度携手硬刚国际足联?印媒隔空声援央视:世界杯只值1000万

念洲
2026-05-09 12:40:15
84年耿飚一句话惹怒邓小平,彭真深夜紧急召见:你摊上大事了

84年耿飚一句话惹怒邓小平,彭真深夜紧急召见:你摊上大事了

文史明鉴
2026-03-28 16:32:25
不管有钱没钱,尽快扔掉家里的这7样东西!不是瞎说,有科学依据

不管有钱没钱,尽快扔掉家里的这7样东西!不是瞎说,有科学依据

家居设计师宅哥
2026-05-04 12:45:59
茶颜悦色,装不下去了

茶颜悦色,装不下去了

中国新闻周刊
2026-05-07 22:15:57
我提离职9分钟就批了,同事涨薪20万却被挽留,我默默交接完工作

我提离职9分钟就批了,同事涨薪20万却被挽留,我默默交接完工作

时尚的弄潮
2026-05-09 05:21:57
独行侠招募开拓者副总就任独行侠总经理,球迷齐呼:独行侠完了

独行侠招募开拓者副总就任独行侠总经理,球迷齐呼:独行侠完了

大漠风光
2026-05-09 15:41:37
热搜上引众怒“河北某夜市最不堪入目的一幕”:人性可以多丑陋?

热搜上引众怒“河北某夜市最不堪入目的一幕”:人性可以多丑陋?

小椰子专栏
2026-05-09 13:25:28
香格里拉虎跳峡精华路段装上护栏?网友质疑干预自然景观,旅游从业者讲述,景区回应

香格里拉虎跳峡精华路段装上护栏?网友质疑干预自然景观,旅游从业者讲述,景区回应

潇湘晨报
2026-05-09 15:49:26
先访华再访日?美方故技重施不奏效,这次把特朗普拿捏得死死的!

先访华再访日?美方故技重施不奏效,这次把特朗普拿捏得死死的!

潮鹿逐梦
2026-05-08 18:04:52
朱媛媛去世不到1年,52岁辛柏青被“逼”再婚,吴越的委屈藏不住了

朱媛媛去世不到1年,52岁辛柏青被“逼”再婚,吴越的委屈藏不住了

LULU生活家
2026-05-09 15:59:55
中国车企首登全球汽车行业创新排行榜榜首

中国车企首登全球汽车行业创新排行榜榜首

大象新闻
2026-05-09 15:14:08
特朗普直接掀桌了,以色列下绝杀令!中方的预判果然应验了

特朗普直接掀桌了,以色列下绝杀令!中方的预判果然应验了

春之寞陌
2026-05-04 18:35:55
菲律宾万万想不到!精心安排在"仁爱礁"的破船 ,却助力了中国

菲律宾万万想不到!精心安排在"仁爱礁"的破船 ,却助力了中国

泠泠说史
2026-04-11 20:01:18
7年败光2亿!邹市明冉莹颖共同发文:二人最终还是迈出了这一步!

7年败光2亿!邹市明冉莹颖共同发文:二人最终还是迈出了这一步!

拳击时空
2026-04-16 06:04:48
到了初中你会发现:补课真补不出学霸,学霸都是自己悟出来的

到了初中你会发现:补课真补不出学霸,学霸都是自己悟出来的

好爸育儿
2026-05-07 16:31:02
2026-05-09 16:36:49
新智元 incentive-icons
新智元
AI产业主平台领航智能+时代
15168文章数 66851关注度
往期回顾 全部

科技要闻

美国政府强力下场 苹果英特尔达成代工协议

头条要闻

香港富豪孙女被绑架 绑匪拿到2800万后逃跑8人花11万

头条要闻

香港富豪孙女被绑架 绑匪拿到2800万后逃跑8人花11万

体育要闻

成立128年后,这支升班马首夺顶级联赛冠军

娱乐要闻

50岁赵薇脸颊凹陷沧桑得认不出!

财经要闻

Meta疯狂拥抱人工智能:员工苦不堪言

汽车要闻

轴距加长/智驾拉满 阿维塔07L定位大五座SUV

态度原创

家居
数码
亲子
教育
健康

家居要闻

菁英人居 全能豪宅

数码要闻

想玩新007?你的显卡准备好了吗

亲子要闻

什么牌子的奶粉好?君乐宝奶粉以靠谱品质回应宝妈牵挂

教育要闻

“你管这面相叫聪慧明理?”宝妈写小作文偏袒小儿子,被网友群嘲

干细胞能让人“返老还童”吗

无障碍浏览 进入关怀版