layout: post author: zoomq title: D码点评:10 编程语言的可读性 description: ~ 麻辣评点,善意满盈 categories: gDgcoDe tags: gdg D码点评 dd wechat coding


http://99-bottles-of-beer.net/ ~这个网站目前已收集了1434种不同的编程语言和语言变种来这首歌的歌词!

Readability.png(PNG 图像,500x354 像素)

Readability in Programming Languages

转自: 编程语言的可读性 | 外刊IT评论网

最近我在网上看到一些人把各种脚本语言放到一起进行比较. 脚本语言: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这个网站.

是也乎

不禁想到了:

大妈当时的点评好象是: 但凡有节制的减少程序员心理负担的语言特性都是靠谱的...

其实,从一名程序猿角度而言,开发语言永远是我们无法逃避的G 点原因在:

呵呵...

本质上,代码写出来是给电脑运行的,无所谓可读性.

但是,悲摧的是! 目测,人类还无法设计出能根据人的意愿自动完成所有代码的系统来... 所以,代码首先要通过程序猿编写/维护/修订/调试/演进...才跟得上业务的变化,才能交给电脑运行.

所以,软件工程的效率,追到根儿上,还是人的效率, 而系统大了,肯定无法一个人完成所有的代码, 团队协作时,也不可能你的代码永远不会有其它人看! 所以,语言特性,能有节制的,引导/约束/制止 代码变得太过个性,除了作息本人,其它人很难看懂! 这样的开发语言,才适合团队协同,适合大型项目,值得认真学习使用...

进一步的,也可以推导出,如果一门语言,离开了 IDE 的各种自动辅助功能,居然无法人工编写代码了, 这语言就已经不是给人阅读的了,而是为 IDE 设计的了...

以上! 太多梗! 死死忍住不继续发挥了,有机会当面吐糟了...

Happy Hacking!

PS:

题图是 名为 Readability 的跨浏览器扩展,能一键将页面的文章部分提取成干净的页面, 其它一切都清取了!

非常实用!

也从另外一个方面指证了: 可读性 的一个指标:

当期活动 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

珠海GDG[11.23]珠三角技术沙龙HOA.5

和久违的珠三角技术沙龙的小伙伴,共同来GDG 分享!

内容(可能):

  1. Jeff小乐队 PyCon2013China 开场曲目内部练习
  2. iFanr 编辑一斌 有关跨界成长的体验
  3. 北理工学生有关 TI SensorTag 试玩体验
  4. Leo ~ 文学化编程再再再谈
  5. AngularJS 现教现用
  6. Web的未来-新语言和新技术
  7. ...

其它征集中...

筹备活动 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PyCon2013CHina 珠海场

请及时举报你身边的 华蠎行者! 举报热线: zoomquiet+pycon (AT) gmail.com



以上...


码不停提马上无虫 ;-)

|_|0|_|
|_|_|0|
|0|0|0|

加入 珠海GDG

  1. 注册 G+
  2. 关注 GDG Zhuhai
  3. 成为 GDG Zhuha开发者

通过 珠海GDG 可以:

    第一时间获知谷歌最新的技术,
    可以学到如何去谷歌平台上赚钱的思路和方法,
    可以认识很多有可能将来一起走上自己创业道路的人,
    可以学会把你的创新带向国际市场,
    参加那里的活动有经常和国际上的开发者们进行交流的机会...

PS:

若无意外,题图都是从原文提取或是通过 Google 图片搜索出来的, 版权属左, 不负责任 ;-)

PPS:

珠海GDG wechat/Blog 都是欢迎投稿的,只要追认内容吻合以下条件:

0. 有趣 ~ 至少是自个儿有兴趣的领域吧...
1. 有料 ~ 至少有点儿原创的东西吧..
2. 有种 ~ 至少不能是成功学吧!

有好物的,及时向大妈们吼: support@zhgdg.org

微信栏目

当前应该是:

    G术图书 (gb:推荐好书,书无中外)
    D码点评 (dd:麻辣评点,善意满盈)
    G说公论 (gt:时评杂文,新旧不拘)
    珠的自白(dm:大妈自述,每周一篇)
    海选文章(hd:得要相信,大妈法眼)

总之! 珠海的组委大妈们,决定开始坚持发文,方方面面细细同大家分享/交流

总之! 请大家告诉大家, 珠海生活中的技术社区 已经认真回归 微信,都来订阅吧!

订阅方法

GDG珠海 社区资源:


Author: Zoom.Quiet /mail / gittip / github