戴克斯特拉先生是一位经常会被人们拿来引述的著名计算机科学家,人们谈论最多的是那些被他挑破的让人难以接受的事实真相。经常被人反复提到的一个就是他对BASIC语言的痛斥,但往往人们谈论这件事情时都忘了提到当时的背景——

对于一个之前接触过BASIC语言的学生,你基本上不可能教会他如何正确的编程:因为作为一个程序员苗子,他们已经脑残,无可救药。

戴克斯特拉先生的这番言论是来告诉大家“如何看出事实背后可能是对你有害的真相”——对有些事实人们广为接受,所有没有人思考它们,或不屑一顾,或 避而不谈。戴克斯特拉先生对于这个问题给出的答案被证明极具轰动性。他用这种方式非常有效的挑起了争论,时至今日我们仍在讨论。

人们经常会忘记,在1975年,那时的编程跟我们如今有很大的不同。戴克斯特拉先生斥责的Dartmouth Basic——这是一种享有荣耀的汇编语言,它不是我们如今使用的BASIC语言——

  • 变量名称只有一个字符,或外加一个数字
  • 尽管有For语法可用,但循环,break,以及其它逻辑都用无约束的goto语句实现。
  • 空格在表达式间可有可无。
  • 有子程序。子程序通过行号调用或通过return转向。
  • 所有的参数都通过全局变量来传递。
  • 26个用户自定义函数可以排列成FNA—FNZ,里面可以有一行代码。
  • if语句被限制在一行上。

这样的限制我可以继续列下去,但事实非常明显:你很难用它写出可读性好,易于理解的程序。我们如今想当然应该有的一些语言特征它都没有。这种状况一直等到BASIC之后的语言发展起来才结束,成为我们如今熟知的编程语言。

当我们在学习第一种编程语言时,你可能会一直在用其它语言风格进行编程(“你可以用任何语言写出FORTRAN风格代码”)。程序员的成长过程中最难的不是如何获取新知识,而是如何抛弃陈腐的旧习惯。

学会如何小心的堆起一滩烂泥,这对你写出结构化的程序不会带来任何帮助。即使今日,你也能很容易的发现有些人被教育了basic的现代变体——尽管他们对这种basic老祖先知之甚少。后继者对此有很大责任。

编程很难。荒诞的语言特征让它变得更难,这无助于初学者,同样也无助于专家。戴克斯特拉痛恨basic,其实你也应该痛恨它。残酷的是我们只记住了戴克斯特拉先生尖锐的批评,但却忘了他对计算机编程卓著的贡献——这完全是另外一个话题了。

为什么图灵奖获得者戴克斯特拉痛恨 BASIC 语言相关推荐

  1. 图灵奖获得者 Alan Kay:突破常规思维,创建下一代科研社区(附视频)

    2020 北京智源大会 本文属于2020北京智源大会嘉宾演讲的整理报道系列.北京智源大会是北京智源人工智能研究院主办的年度国际性人工智能高端学术交流活动,以国际性.权威性.专业性和前瞻性的" ...

  2. 1987年图灵奖--约翰·科克简介

    大家好,我是执念斩长河.今天讲述的是1987年图灵奖获得者约翰·科克.图灵奖奖励他为计算机体系结构和编译理论做出巨大的贡献.读完本篇博文大家可以收获的是: IBM360的设计与开发 指令系统的28法则 ...

  3. 【转载】陈宝权教授访谈图灵奖获得者Ivan Sutherland

    原文作者:武卫东,转自图灵社区 转载地址:https://www.ituring.com.cn/article/127792 10月22日到25日中国计算机大会(CNCC 2014)在河南郑州隆重举行 ...

  4. 6位图灵奖获得者、10多位院士在线“教学”,这套关于“人工智能下一个十年”的课程免费提供给你...

    2020 年 6 月 21-24 日,第二届北京智源大会将以线上直播形式盛大召开,本届大会邀请了包括 6 位图灵奖获得者.10 多位院士在内的上百位人工智能领域的顶级专家学者,围绕技术.应用.基础设施 ...

  5. 图灵奖获得者Yann LeCun:未来几十年AI研究的最大挑战是「预测世界模型」

    来源:机器之心 LeCun 认为,构造自主 AI 需要预测世界模型,而世界模型必须能够执行多模态预测,对应的解决方案是一种叫做分层 JEPA(联合嵌入预测架构)的架构.该架构可以通过堆叠的方式进行更抽 ...

  6. ACM图灵奖获得者:想从大数据中获益,先解决集成问题!

    文章讲的是ACM图灵奖获得者:想从大数据中获益,先解决集成问题!如今,大数据对所有行业都产生了深远影响:从医疗保健.汽车.电信到物联网.随着数据浪潮的持续,企业都在寻找更新的管理和分析方法.收集可行的 ...

  7. JAVA[Algorithm]--戴克斯特拉

    2019独角兽企业重金招聘Python工程师标准>>> 一.算法介绍: 戴克斯特拉算法(Dijkstra's algorithm)是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出.迪科斯 ...

  8. 计算机名人堂(历届图灵奖获得者)

    计算机名人堂(历届图灵奖获得者) 摘自  温研的专栏 图灵奖最早设立于1966年,是美国计算机协会在计算机技术方面所授予的最高奖项,被喻为计算机界的诺贝尔奖.它是以英国数学天才Alan Turing先 ...

  9. 1985年的图灵奖获得者-Richard Manning Karp

    Richard Manning Karp(01/03/1935--) 图 灵 奖 获 得 时 间 : 1985年 . 第二十位 图 灵 奖 (1985年 ) 获 得 者 . 图 灵 奖 引 用 (Tu ...

  10. 一文搞懂戴克斯特拉算法-dijkstra

    大学学习数据结构那会,当时记得终于把 dijkstra 算法搞明白了,但是今天碰到的时候,大脑又是一片空白,于是我就又学习了下,把自己的理解写下来,希望你也可以通过本文搞懂 dijkstra 算法. ...

最新文章

  1. 使用ifstream从文件中读取内容
  2. SQL基础【十九、触发器】(不建议使用触发器的原因)
  3. 为何采用双亲委派机制
  4. 1w存银行一年多少利息_一百万存银行一年利息多少?提前取出利息怎么算?
  5. DB2 数据库密码过期
  6. 天翼网关密码忘记(猫密码忘记)
  7. LR破解版录制手机脚本
  8. win2003服务器性能工具,WindowsServer 2003 Service Pack 1 支持工具
  9. typora-数学符号
  10. 北航数理统计大作业_数学146分上岸复旦大学大数据学院统计学,备考经验分享!...
  11. LZW压缩(解压缩)算法详解及源码
  12. Canvas 绘制点线相交
  13. Android stdio之 'adb' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  14. 金山卫士开源软件之旅(十) KSafeMainproject的分析 1
  15. LeetCode算法日记:340.至多包含K个不同字符的最长子串
  16. ESP32学习笔记(45)——DAC接口使用
  17. 10款Windows实用软件推荐,满满的干货,总有一款是你必备的
  18. 安卓MediaPlayer源码跟读解析
  19. 【C语言编程1】删除数组中重复元素,并排序
  20. org.hibernate.StaleStateException:Batch update returned unexpected row count from update [0]; actua

热门文章

  1. z变换解差分方程例题_Z变换及差分方程求解.doc
  2. 医院病历html模板,三甲医院电子病历模板参考
  3. 联想服务器一直在初始化系统,为什么联想“一键恢复”一直在初始化
  4. 概率图模型(PGM):贝叶斯网(Bayesian network)初探
  5. 深度神经网络主要模型,深度神经网络预测模型
  6. 【数学建模】预测模型之BP网络预测
  7. 微信小程序人脸识别java_微信小程序使用face++实现人脸识别登录注册
  8. MySQL嵌套查询(子查询)
  9. mysql嵌套select limit_MySQL嵌套查询“LIMIT IN/ALL/ANY/SOME”错误解决方法
  10. C语言三位数的整数立方和,c语言求一个三位数正整数n各个数位上数据的立方和...