编程语言的可读性

最近我在网上看到一些人把各种脚本语言放到一起进行比较。脚本语言:PHP, Perl, Python, Ruby。我的第一反应,以及第二反应是:讨厌!我有我自己的偏好,从没向任何人说过。我喜欢可读性好的程序,程序里出现的任何的特殊字符(任何非数字、字母的字符)都会影响我的阅读速度。这让我思考起我们应该如何设计编程语言?我们语言设计是在进步还是在倒退还是在停步不前?

回到我刚开始写程序的时候,大概是40年前,那时的三大编程语言是FORTRAN、COBOL 以及后来的BASIC。FORTRAN(FORmula TRANSlation的简写)被数学家(我的数学专业的哥哥必须要学它)和科学家们使用。COBOL (其中的B 代表Business)被用于企业应用。BASIC是一种教学语言,在企业里广为使用。COBOL因为它的冗长的语法而受一些人痛恨,而同时却也被另外一些人所喜爱。但它至少是很容易理解的。看看下面循环的写法:

PERFORM VARYING WS-BOTTLE-NUM FROM 98 BY -1
               UNTIL WS-BOTTLE-NUM < 2
END-PERFORM

很像一个英语句子。跟C语言风格的语言(C#)比较:

for (WSBOTTLENUM = 98; WSBOTTLENUM >= 2; WSBOTTLENUM--)
{
}

哪一个更显而易见?除非你谎称自己没经验。

BASIC (这里是Visual Basic)某些地方可读性处于中等水平。

For WSBOTTLENUM = 98 To 1 Step -1
Next

步长——每次减少的数——很容易理解,至少我是这么认为。让我们看一些非常简单的东西。

k = i / 10;

这会让初学者抓狂。这是做什么的?我们这些程序员当然会知道,但对于初学者,这种指令操作方式会让他们困惑。你可以把它与相同功能的COBOL语言比较:

divide i by 10 giving k

有点长?不错,但一个初学者能看懂。我现在并不是在主张重新回到COBOL语言,诚然,相比起当时在纸片上打孔的时代,现代的集成开发工具和像Intellisence这样的功能让我们的编程变的容易的多了。可是,我还是要说,一些入门语言应该罗嗦一些——英语句子比“#号在这种编程语言里代表什么”要容易上手的多。

只是好玩,如果你想看一看各式各样的语言,可以访问99 Bottles of Beer这个网站。

这个网站收集了用各种不同语言编写的99 Bottles of Beer的歌词。目前已经有1434种不同的编程语言和语言变种来表现这首歌。

[英文原文:Readability in Programming Languages ]
分享这篇文章:

7 Responses to 编程语言的可读性

  1. Wengzc says:

    40年的编程经历都没改变作者作为一个天生的文学胚子的观点~我是觉得计算机要是能直接读懂我纸上画的那些奇怪符号那就太好了

  2. 阿蒙 says:

    能解决实际问题不就好了?

  3. fezhang says:

    楼上所言极是,特殊符号作为语言的象征,是一种图腾。所谓的可读性,是在大家有一定约定情况下减少隐藏信息,没有这种约定,写出来的代码谁都看不懂。这种约定会越来越简单,也许有一天编程语言的语法和现实生活中的语法差别没那么大。仅此而已。

  4. Marty says:

    语言设计出来是要全球各个语言的国家使用的,不单单只给英语国家用!文章里说的那些COBOL语言的简单明了之处,在非英语国家的人看来,就是特殊字符!所以说,还不如创造一些简单明了的字符来使用的话。
    这篇文章的视角实在是太小!

  5. 这个文章确实没啥意思 不过他推荐的网站太好玩了 99 Bottles of Beer ~

  6. ShiningRay says:

    讨厌·!
    好傲娇啊

  7. ntysdd says:

    恕我直言,我觉得例子中的C语言比COBOL好读多了,另外虽然无关紧要,全大写的英文句子会让我心情不好。

    难道作者认为”one plus one giving x”之类的比”x = 1 + 1″要容易读吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.