为何计算机界最高荣誉图灵奖获得者痛恨BASIC
2023-03-09 22:28:45 时间
戴克斯特拉先生是一位经常会被人们拿来引述的著名计算机科学家,人们谈论最多的是那些被他挑破的让人难以接受的事实真相。经常被人反复提到的一个就是他对BASIC语言的痛斥,但往往人们谈论这件事情时都忘了提到当时的背景——
对于一个之前接触过BASIC语言的学生,你基本上不可能教会他如何正确的编程:因为作为一个程序员苗子,他们已经脑残,无可救药。 |
戴克斯特拉先生的这番言论是来告诉大家“如何看出事实背后可能是对你有害的真相”——对有些事实人们广为接受,所有没有人思考它们,或不屑一顾,或避而不谈。戴克斯特拉先生对于这个问题给出的答案被证明极具轰动性。他用这种方式非常有效的挑起了争论,时至今日我们仍在讨论。
人们经常会忘记,在1975年,那时的编程跟我们如今有很大的不同。戴克斯特拉先生斥责的Dartmouth Basic——这是一种享有荣耀的汇编语言,它不是我们如今使用的BASIC语言——
- 变量名称只有一个字符,或外加一个数字
- 尽管有For语法可用,但循环,break,以及其它逻辑都用无约束的goto语句实现。
- 空格在表达式间可有可无。
- 有子程序。子程序通过行号调用或通过return转向。
- 所有的参数都通过全局变量来传递。
- 26个用户自定义函数可以排列成FNA—FNZ,里面可以有一行代码。
- if语句被限制在一行上。
这样的限制我可以继续列下去,但事实非常明显:你很难用它写出可读性好,易于理解的程序。我们如今想当然应该有的一些语言特征它都没有。这种状况一直等到BASIC之后的语言发展起来才结束,成为我们如今熟知的编程语言。
当我们在学习第一种编程语言时,你可能会一直在用其它语言风格进行编程(“你可以用任何语言写出FORTRAN风格代码”)。程序员的成长过程中最难的不是如何获取新知识,而是如何抛弃陈腐的旧习惯。
学会如何小心的堆起一滩烂泥,这对你写出结构化的程序不会带来任何帮助。即使今日,你也能很容易的发现有些人被教育了basic的现代变体——尽管他们对这种basic老祖先知之甚少。后继者对此有很大责任。
编程很难。荒诞的语言特征让它变得更难,这无助于初学者,同样也无助于专家。戴克斯特拉痛恨basic,其实你也应该痛恨它。残酷的是我们只记住了戴克斯特拉先生尖锐的批评,但却忘了他对计算机编程卓著的贡献——这完全是另外一个话题了。
相关文章
- 从协作编程到婚礼请柬:GitHub正走向主流
- 大数据的未来:人们应该意识到的10个预测
- 如何像专业人士一样挖掘大数据?
- 51CTO观察:开启浏览器自主内核时代
- 360°捕捉用户行为轨迹!谐云科技推出高能用户行为分析工具
- 如何从零开始教女同学进行PHP开发:写需求文档
- 优化C++代码(3)常量合并
- 容器与微服务技术将给安全带来怎样的影响?(下)
- 历史性的表决,新西兰禁止软件专利
- 易观方舟:革命性的精细化运营数据分析产品
- 十大步骤帮你有效使用预测分析算法
- VC++官方团队系列文章:优化C++代码(1):简介
- 大数据是如何存储和管理的?
- 新零售下,当大数据遇上了心理学
- 可在广域网部署运行的QQ高仿版:GG叽叽V1.8(源码)
- 站着编程两年后我身体上的变化
- 提升代码可读性的10个技巧
- 易观A10造的“船”如何为企业的用户精细化运营护航?
- 淘宝开发:Nginx模块Nginx-Http-Footer-Filter
- GrowingIO 2017增长大会 助企业实现业务高增长