作者:Robbin 来源:JavaEye   酷勤网收集 2008-03-11

摘要
  对于ruby程序员来说,这种追求编程人性化的哲学理念会潜移默化影响程序员,让他不知不觉把代码的可读性越写越好。对于程序员来说,谁不想coding for fun呢? 而当你品尝到了coding for fun的乐趣,又怎么会轻易抛弃?

孟岩最近写了一篇博客:

Ruby 1.9不会杀死Python

这篇文章很有点标题党的意思,所以在JavaEye论坛很快被水掉了,只好锁贴:

http://www.javaeye.com/topic/153651

但我个人对于孟岩的观点是不敢苟同的。首先我并不同意所谓魔幻语言和简约语言的分类。其实Martin Flower论述过这个问题,他是用“人性化接口”和“最小接口”来区分编程语言的风格化差异的,请看这篇文章:

http://martinfowler.com/bliki/HumaneInterface.html

其实不用我多说,Martin论述的挺充分了。强把Ruby和C++归为魔幻一类,其实并不准确,因为Ruby的魔幻语法和C++相比,最大区别在于:

C++的魔幻语法会导致代码的可读性变差,而Ruby的魔幻语法会导致代码的可读性大大提高。

不论是matz本人,还是整个Ruby社区,Rails社区诸多开源项目的作者,抑或整个Ruby和Rails开发者社区,在一个编程哲学问题上是高度统一的,这就是:

强调程序员的快乐编程,追求人性化编程,在代码的可读性上面有偏执的追求,拒绝难以阅读的代码和难用的API。也就是所谓的coding for fun!

所以你看无论是Rails,rake,rspec,甚至移植自lucene的ferret,都鲜明的体现出来这种特点,就是API简单好用,让你写的代码像英文文章,自然流畅,轻松愉快。要是哪个Ruby框架的API复杂晦涩,在Ruby社区简直没法混,大家根本不买他的帐,这也是为什么Ruby应用于DSL领域这么热的根本原因。

对于ruby程序员来说,这种追求编程人性化的哲学理念会潜移默化影响程序员,让他不知不觉把代码的可读性越写越好。对于程序员来说,谁不想coding for fun呢? 而当你品尝到了coding for fun的乐趣,又怎么会轻易抛弃?

所以Ruby受程序员欢迎的根本原因还是在于它是一种能给你带来编程乐趣的语言。
评论
blackanger 3 天前
Martin Fowler told us :
Humane interface designers try to identify what are the most common uses of a class, and design the interface to make these uses easy.

这就是我们为什么喜欢Ruby的原因,别争了。
leonardleonard 1 个月前
语言只是表现形式的不同和优势的不同而已。
gritlimu 2 个月前
什么时候不用变成那才叫快乐,呵呵
helloworld 2 个月前
我觉得语言要能够长久,首先是不能有排它性。要能够调用别人,也能够被别人调用。其次是性能考量,性能关键不在于解释器或编译器的好坏,而在于设计语言的时候有没有考虑到硬件的发展。拥有了良好的设计才有可能优化编译使其得到很好的硬件执行性能。
helloworld 2 个月前
我倾向于多种语言建模,如果一种语言全部做掉,即使能够,也太庞大了。
多种语言建模的基础语言是C,这是由于硬件所决定的。但现在C的这个地位也在被动摇,同样是因为硬件的发展。
在应用中我们有不同的需求,有计算的,图像分析的,界面表达的,规则描述和数据处理的等等,如果都用一种语言去实现可能性不大,有些东西要直接用不相关的语言表达可能和用汇编写程序一样困难。因此我们有了不同语言和相应的编译器或解释器,最终,这些语言是适合表达的,而执行最终转换成机器码。
Ruby不管有多好用,设计的初衷不是面向问题领域的,而是面向效率考虑的。
rrsy23 2 个月前
语言,总是在变化啊,人类语言不是吗?
计算机语言当初汇编时代出现高级计算机语言,人类多兴奋?
语言与公司一样有发展期,成熟期,衰退期。未必真的衰退而是相对其他与奥运年的成熟期?
所以今天的ruby就是10年后的python或是java
今天的ruby也许是10年钱的java
njwisatqh 2 个月前
说的不错,编程快乐:)
chinapkw 2 个月前
ruby 是让人愉快的语言
dennis_zane 2 个月前
还别说,就有人就喜欢dirty and quickly地干活,perl这样的语言还是很有市场
axgle 2 个月前
Ruby很好,很强大,很快乐
rubynroll 2 个月前
我是搞嵌入式系统的,非常喜欢用ruby,所以“ruby是因为rails才吸引人”的说法对我不成立。
其实除了rails,ruby可以开展拳脚的地方很多,特别是在日常工作中需要自己写一些小工具的时候,ruby特别引诱人。
回到话题,我认为ruby吸引人的主要原因是ruby本身的语法非常自然,“最小惊诧”原则是明显起到作用的。如果说到吸引人的细出,可能closures是最大贡献,至少对我来说是closures使我使用ruby的。
要说不足,就是MRI可移植性还不够,特别对于嵌入式系统,目前除了在embedded linux上可用,对于资源更少的系统ruby就无能为力了,相反,python则在这方面有很大优势。
swachian 2 个月前
不过魔幻/简约分法和可读变好/变差的分法倒让我想起了Stevens对perl的评论:
I don't use perl--I consider it an unreadable write-only language.

魔幻的说法显然有个误区,就是认为好写的语言必定不好读。
swachian 2 个月前
要是没有rails,我是不会接触ruby的,呵呵,所以个人认为在web开发方面Python即使被杀死也主要取决于rails而不是ruby。

是否被杀死,关键看领域的,也就是使用的场合。
比如,js除了语言动态性这点做得完全正确之外,要不是在浏览器场合、在DOM领域却是独一无二的,它的语法和api设计谁会乐意去用它。

不过倒真的希望ruby能够把shell语言给统一起来。杀死Python对ruby也不是什么好事情。至于对搞应用开发的,那绝对是坏事一件了。
Goodtiger 2 个月前
说白了还是一种语言,关键还是应用的场合。
爱死不活 2 个月前
确实如此,编程快乐

分类: 编程语言 程序人生 修炼之道

上一篇:也说“对程序语言的认识”   下一篇:编程语言:功能越强自由越少?