分享
 
 
 

[摘译]为什么说Ruby是一种简单的语言?

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

前些日子在熊节先生的blog上看到一段文章“Why Ruby is Simple”,试着翻译了一下,译文如下(原文摘自《The Ruby Way》一书):

Ruby的一大优点就是简单。对于这一点我想引用一个思想家的话来说明——正如Antoine de St. Exupéry所说“所谓完美,并不是说不需要加入新的内容了,而是说没有什么应该被去掉的了。”

然而Ruby语言实际上也有它复杂的一面。那么为什么我还要说它是简单的呢?

如果你对宇宙感兴趣的话,那你应该听说过“复杂性守恒定律”——即,事实上我们不可能完全避免复杂性,不过我们却可以对它进行重新分配。

这就是问题的关键——复杂性不可能被完全避免,但我们却可以在某一阶段对它置之不理,视而不见。这也就是现在流行的传统的“黑箱”理论,一个“黑箱”可以在内部完成一个相当复杂的任务,但是对于外部使用者来说它却又非常易于操作。

就像爱因斯坦说的:“每件事情都应该尽可能的简单,但也不能过分简单。”

在Ruby当中我们会发现,程序员的想法可以以非常简单的形式表现出来(当然对于维护解释器的那些程序员而言,情况也许不是这样)。不过,Ruby也作了一些折衷的处理。毕竟在现实世界中,我们多少要做一点妥协。比如,在一段Ruby程序中每一个实体(entity)都应该是一个真正的对象(true object),然而在实际执行的时候,某些象整数(integer)这样的值却是以直接值(immediate value)的形式存储的。在计算机科学发展的数十年间,类似的折衷对我们来说并不陌生,为了获得能够运转起来的实际作品,我们往往会放弃优雅的设计。事实上我们总是以牺牲一种简洁性(理论的简洁性)为代价来换取另一种简洁性(实现的简洁性)。

“当你用一个较小的语言表述你的思想的时候,你会写出一大堆东西来。而当你用一个较大的语言来做同样事情的时候,你只需要写一点就够了。”Larry Wall的这一段关于Perl语言的评论同样也适用于英语(以及大多数编程语言)。比如生物学家Ernst Haeckel就曾经用“Ontogeny recapitulates phylogeny”这3个单词来概括他的工作,当然我们知道在这3个高度浓缩的单词背后,包含着大量具体而复杂的意义——而这也正是我们程序员要做的工作——我们应该让语言具有“内在的复杂性”,这样我们才能保持简单的表达方式,而把复杂的细节隐藏起来。

我个人对简洁性的理解是:如果你能用10行代码搞定一个程序,那就不要把它写成200行。

我相信简短通常来说是一件好事。对于程序员来说,一段短小精悍的程序更容易记忆,也更容易把握其整体思路。同时它还会带来一个好的“副作用”——写代码的时候,不容易出现bug。

当然我们也不能忘记爱因斯坦的警告。如果过于强调简洁性,那我们的代码最终也许会变成一堆没人能够理解的垃圾。信息论的研究结果表明:信息被过分“压缩”的时候往往会令人费解——如果你见过或者亲自用C、APL之类的常规表达式语言编写过程序的话,你就会体会到恶劣的编码方式带来的危害。简单,但不过于简单;让代码尽量简短,同时又保持可读性。这才是我们应该做的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有