论坛首页 编程语言技术论坛

Ruby的source code很难读

浏览 19589 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-19   最后修改:2009-07-19
最近在读CRuby1.9的source code,感觉code写的很烂。
到不是我的C有多好,只是同时也在读Python的code。
对比之下有差距。

最明显的两点:
1。 Ruby的src基本没注释。
随便打开一个Ruby的src file,比如gc.c 或者 thread.c, 从头浏览到尾,没几行注释。
类似的,找个Python的src file看看,该有注释的地方都有。

2。 Ruby的命名混乱。
变量名,方法名很多时候让人莫名其妙。更糟糕的是误导。比如gc.c里面定义了heaps_used,从名字上看会给你一个印象--已经被使用了的heaps的大小。(这里的used本身就是很泛泛的词)其实看了具体的实现就会发现,这里的used是allocated的意思,就是通过malloc取得了实际的内存。

Ruby对内存管理部分的命名也很郁闷。最小的单位是slot, slot的数组称为heap, heap的数组称为heaps。
看看Python是怎么命名的吧--最小的单位是block,block的集合称为pool, pool的集合称为arena。这样避免了*heap*这个被滥用的词。而且单从字面意思上也能看出层次。

鄙人英文一般,不看src是死活品味不出slot和heap怎么会有集合的关系。
   发表时间:2009-07-19  
不是你的问题,据说matz也承认很烂:)

语言设计上,我喜欢ruby。代码实现上,python比ruby强很多。
0 请登录后投票
   发表时间:2009-07-20  
日本人公认英文烂的,不过方法、变量起名这些“小问题”对我们这些非原生英文母语的人来说是个头痛的问题。
0 请登录后投票
   发表时间:2009-07-20  
我也是这么觉得的,看得云里雾里的。
0 请登录后投票
   发表时间:2009-07-20  
rainchen 写道
日本人公认英文烂的,不过方法、变量起名这些“小问题”对我们这些非原生英文母语的人来说是个头痛的问题。

一般说日本人英语不好 指的是他们的口语不好. 实际上他们的词汇量是相当大, 因为很多日语词就是英语的简单音译...
0 请登录后投票
   发表时间:2009-07-20   最后修改:2009-07-20
我不觉得,整个宏、数据结构、函数、变量的命名还是一致可读的

代码注释本来就是没有必要的

相反,对于CAPI部分,文档说明非常完整

0 请登录后投票
   发表时间:2009-07-20  
yawl 写道
不是你的问题,据说matz也承认很烂:)


第一次听说,给个出处
0 请登录后投票
   发表时间:2009-07-21  
potian 写道
yawl 写道
不是你的问题,据说matz也承认很烂:)


第一次听说,给个出处


2003 年 matz 做过一个讲演的幻灯片上有这个标题,但是跟代码烂好像是两回事,断章取义了。

http://www.rubyist.net/~matz/slides/rc2003/mgp00003.html
http://www.rubyist.net/~matz/slides/rc2003/mgp00004.html


这是全部 PPT
http://www.rubyist.net/~matz/slides/rc2003/index.html
0 请登录后投票
   发表时间:2009-07-21  
potian 写道

代码注释本来就是没有必要的

相反,对于CAPI部分,文档说明非常完整



“代码注释没有必要" 这种话还是很牛的。个人不敢苟同

CAPI的文档那是最低要求。
0 请登录后投票
   发表时间:2009-07-21  
...代码注释本来就不必要的,汗
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics