为何Dijkstra先生如此痛恨BASIC语言
戴克斯特拉(Dijkstra)先生是一名常常会被人们拿来引述的著名计算机科学家,人们谈论最多的是那些被他挑破的让人难以接受的事实真相。常常被人反复提到的一个就是他对BASIC语言的痛斥,但常常人们谈论这件事情时都忘了提到当时的背景——"对一个之前接触过BASIC语言的学生,你基本上不可能教会他如何正确的编程:由于作为一个程序员苗子,他们已脑残,无可救药"。
戴克斯特拉先生的这番言论是来告知大家“如何看出事实背后可能是对你有害的真相”——对有些事实人们广为接受,所有没有人思考它们,或嗤之以鼻,或避而不谈。戴克斯特拉先生对这个问题给出的答案被证明极具轰动性。他用这类方式非常有效的挑起了争辩,时至今日我们仍在讨论。人们常常会忘记,在1975年,那时的编程跟我们如今有很大的不同。戴克斯特拉先生斥责的Dartmouth Basic——这是一种享有光荣的汇编语言,它不是我们如今使用的BASIC语言——• 变量名称只有一个字符,或外加一个数字• 虽然有For语法可用,但循环,break,和其它逻辑都用无约束的goto语句实现。• 空格在表达式间可有可无。• 有子程序。子程序通过行号调用或通过return转向。• 所有的参数都通过全局变量来传递。• 26个用户自定义函数可以排列成FNA—FNZ,里面可以有一行代码。• if语句被限制在一行上。这样的限制我可以继续列下去,但事实非常明显:你很难用它写出可读性好,易于理解的程序。我们如今想当然应当有的一些语言特点它都没有。这类状态一直等到BASIC以后的语言发展起来才结束,成为我们如今熟知的编程语言。当我们在学习第一种编程语言时,你可能会一直在用其它语言风格进行编程(“你可以用任何语言写出FORTRAN风格代码”)。程序员的成长进程中最难的不是如何获得新知识,而是如何抛弃陈腐的旧习惯。学会如何当心的堆起1滩烂泥,这对你写出结构化的程序不会带来任何帮助。即便本日,你也能很容易的发现有些人被教育了basic的现代变体——虽然他们对这类basic老先人知之甚少。后继者对此有很大责任。编程很难。荒谬的语言特点让它变得更难,这无助于初学者,一样也无助于专家。戴克斯特拉痛恨basic,其实你也应当痛恨它。残暴的是我们只记住了戴克斯特拉先生尖锐的批评,但却忘了他对计算机编程卓著的贡献——这完全是另外一个话题了。
人物简介:艾兹赫尔·戴克斯特拉(Edsger Wybe Dijkstra,1930年5月11日-2002年8月6日)曾在1972年取得过素有计算机科学界的诺贝尔奖之称的图灵奖,以后,他还取得过1974年AFIPS Harry Goode Memorial Award、1989年ACM SIGCSE计算机科学教育教学杰出贡献奖。2002年,在他去世前不久,戴克斯特拉取得了ACM PODC(分布式计算原理)最具影响力论文奖,以表彰他在分布式领域中关于程序计算自稳定的贡献。为了记念他,这个每一年一度奖项也在尔后被更名为“Dijkstra奖”。他曾提出“GOTO有害论”信号量和PV原语,解决了有趣的“哲学家就餐问题”。[英文原文:Why did Dijkstra Hate Basic? ]
- 拜耳聚碳酸酯单层板工厂广州奠基印染坯布三足离心座垫机械普通浴缸Frc
- 山东常林新办公大楼启用剪彩及庆典仪式毛裤袜粉条机垃圾车箱包五金吸嘴Frc
- 2017年度财报来袭仪器企业营收如何木门圆柱导轨填料女士手表测力仪表Frc
- 5G机器人屏幕时间电动无人车十大技术定义输送机械无线天线高周波机移动电源二氧化锰Frc
- 中国企业离中国制造2025到底有多远家庭装修保定防水胶溶剂染料T恤Frc
- 南京市将开通政府呼叫热线12345焊锡机房产咨询雕刻刀激光焊气保焊丝Frc
- 全球智能家居市场将以31的年增长率增长烤漆房肇东家具拉手汽车吊生产设备Frc
- 国内数控机床技术的五大方向和三大差距隔断空调模具复合开关塑料卷丝网印刷Frc
- 锁具业规模壮大智能锁趁机领跑锁业新方向九台检测器摇马投影仪检测台Frc
- 威图隧道和矿井中更安全焊锡潜水电泵机床顶针吸离心泵胶印油墨Frc