IT技术博客大学习 共学习 共进步

编程语言的可读性

外刊IT评论 2011-09-25 13:33:14 浏览 4,965 次
本文是从 Readability in Programming Languages 这篇文章翻译而来。

    最近我在网上看到一些人把各种脚本语言放到一起进行比较。脚本语言: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种不同的编程语言和语言变种来表现这首歌。

建议继续学习

  1. 每个程序员都应该学习使用Python或Ruby (阅读 17,742)
  2. 敲击最多的键和编程语言语法 (阅读 7,305)
  3. 为什么Lisp语言如此先进?(译文) (阅读 6,404)
  4. 编程语言的选择很重要 (阅读 5,124)
  5. PHP很烂?我的看法 (阅读 4,501)
  6. php语言漫谈 (阅读 4,185)
  7. 几种计算机语言的评价(修订版) (阅读 4,141)
  8. 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发 (阅读 4,144)
  9. 为什么我喜欢Lisp语言 (阅读 3,923)
  10. 再谈非主流工业语言 (阅读 3,744)