让我们不要愚弄计算机科学的历史(2014年)

2021-01-28 22:28:39

ACM的Len Shustek通信公司的Donald E. Knuth,2021年2月,第一卷。 64第2页,第33-35页10.1145 / 3442377评论编者注:2014年5月7日,唐·克努斯(Don Knuth)将当年在斯坦福大学举行的凯拉特(Kailath)讲座交付给了拥挤的礼堂。在书中,他谴责了所写的计算机科学史中缺乏技术内容,并且他对计算机科学的历史学家们一如既往地回到数学轨道上表示了极大的热情。

该演讲的视频b和现在的逐字记录c都在线。在2015年1月期的《通讯》中,d历史学家Thomas Haigh分析并回应了这次谈话,并得出结论认为,只有当他的计算机科学领域的同事愿意产生,奖励或获得回报时,Knuth偏爱的特殊工作才能蓬勃发展。调试它。"

我们感谢通讯高级编辑Moshe Vardi提出的这个观点,它是对原始谈话内容的精简和高度编辑的记录,引起了如此多的讨论。

谈这个话可能是我一生中最大的错误,因为我将谈论有争议的事情。我通常会竭尽所能避免争论。但是我对此感到非常强烈,我只需要发泄并说出来。

尽管有“历史”在标题中,我不会告诉您计算机科学的历史。相反,我将谈论计算机科学的历史学家,即史学。这是元历史。我将尝试解释为什么我喜欢阅读历史著作,以及为什么我对自己一直阅读的最新趋势深感不安。

为什么作为科学家,我从阅读科学史中受益匪浅?让我来计算一下:

了解发现的过程-与其说是发现什么,不如说是如何发现。主要来源是最好的:发现某物的某人的话,就像他们发现它一样。我看到的例子越多,明天就更有可能发现一些东西。

了解失败的过程。我们不仅从自己的错误中汲取了很多历史错误的教训,还从中汲取了很多教训。这也有助于知道,即使是最伟大的头脑也无法掌握对我们而言显而易见的事物。莱布尼兹花了很多时间从事组合学方面的研究,而他所做的大部分工作都是令人沮丧的,完全是错误的。

为了庆祝多种文化的贡献。有许多思维方式,许多观点和许多独立研究人员。斐波那契数早在印度被发现。加泰罗尼亚语数字在中国被发现,比加泰罗尼亚语早一百年。许多没有受过教育的人发现了许多奇妙的模式,我可以分享他们发现的快乐。

讲历史故事是最好的教学方法。如果您知道连接到的线程,则更容易理解某些内容。归功于斐波那契,也归功于印度的纳拉亚纳(Narayana)。完整的故事是许多独立的人用一系列小步骤建造了一座宏伟的大厦。

学习如何应付生活。其他科学家是如何成长,结交朋友或敌人,如何管理自己的时间,寻找导师,指导他人并为社区服务的?平衡很重要。

熟悉世界,了解科学如何融入人类的整个历史。不同大陆和不同时期的生活是什么样的?人与动物之间的主要区别是人们从历史中学习。

我特别感谢数学史学家。他们通过转载以及对语言和符号的翻译使原始资料可访问。他们侦查以前未发表的论文,信件,会议记录和正式记录,然后将它们链接成一个叙述。我不喜欢的是仅对趋势进行分析;我喜欢在前面看到原始资料。

因此,从数学史学家那里得到的主要是好消息。坏消息来自计算机科学的历史学家。

对我来说,这是计算机科学的主要历史学家马丁·坎贝尔·凯利(Martin Campbell-Kelly)撰写的一篇文章,我很欣赏他的工作。但是他在2007年发表的关于“软件历史”的文章。 e感到震惊。

本文的核心是一张表格,该表格将1967年至2004年间精选的软件作品分为四类:技术,软件和软件。行业;应用;和机构/社会/政治。最初,大多数已发表的作品都是关于该技术的,但是最后,它们大多属于其他类别。作者对这种变化的描述是,随着时间的流逝,软件历史已经从狭窄的技术研究,供应方和经济研究演变为广泛的应用程序研究。

他认为那很好!相反,它非常浅并且完全是非技术性的。我崩溃了,开始哭了。我读完这本书非常困难,因为眼泪使我的眼镜湿了。我立即给马丁写了一封信。 F

"我必须承认,到最后三,四页时,我已经非常沮丧,以至于我几乎看不到笔直的东西。我不得不强迫自己慢慢阅读,不要以为你已经屈服于当下关于历史应该如何发展的令人震惊的趋势和时尚。书面。

"当您的表1在前20年中显示68%的T级[技术]文章,在最近5年中显示0%的T级[文章]时,您的前景没有看到任何盲点……然后您说表格显示了主题是如何扩展的!主题没有扩大;它已经完全转移了。如今我们所得到的只是愚蠢的。谢天谢地,数学史学家并没有完全放弃撰写包含公式或解释科学思想的文章。

"我确信,业务历史与技术历史一样难于编写,而且毫无疑问,它们对商人也同样有价值,而技术历史对技术人员也有价值。但是您似乎正在庆祝一个事实,那就是没人再写技术CS历史了!

"谈到明显的漏洞时,您正在考虑的是业务历史中的明显漏洞,例如视频游戏行业。但是写视频游戏的人呢:他们发明了关于如何渲染场景,打包数据以及并行处理和协调成千上万在线用户的技术方面的惊人突破。缺少什么甚至无法描述这些技术,如何发现它们以及在什么限制下对我来说似乎是一个明显得多的漏洞。但是,您丝毫不愿承认它的存在,以至于建议不要使用它。"

马丁并不总是那样。他在文章中描述了如何为他的博士学位。在纽卡斯尔大学(Newcastle University)的布莱恩·兰德尔(Brian Randell)的研究论文中,他设法找到了为前三台可操作的英国计算机(剑桥EDSAC,曼彻斯特马克一世,国家物理实验室飞行员ACE)开发的大多数系统程序。对这些程序及其文本的研究非常吸引人。"绝对!他明白为什么它很美。他在做我喜欢的历史。

然后到1976年,他开始考虑更广阔的前景。他看不到混凝土的样子。在EDSAC上实现子例程链接的方式,或者如何在计算机硬件中获得索引寄存器。他提供了“个人履历”。并说,“他们(我们)写的东西看起来很受约束,过于技术化并且缺乏视野。”他为我一直以来的钦佩而道歉!

"在过去的20年中,面向普通读者的数学的历史和论述得到了显着改善,而类似的计算机科学的历史和论述则走下坡路。使用表1,您可能已经产生了唤醒电话。但是,相反,您似乎是继续保持令人沮丧的趋势的明智之举。您显然对计算机科学实际上是科学的概念(以及与经济学和国防等相关的概念)失去了信心。然而,我仍然坚持这种过时的信念……的确,如果计算机科学不再是一门深思熟虑的丰富科学,我马上就能完成《计算机编程的艺术》,但看来我仍然有20年的工作经验。继续努力!"

"谨请说明,即使我们没有经过历史学家的培训,像我这样狭narrow的人尝试写历史也是可以的,甚至可以,因为历史学家的短缺。很公平。但是,现在您正在鼓励专业的历史学家只对广大读者发表讲话,而忽略将花费一生实际编写软件的2%的人口。您说的是整体和综合的。我认为它轻巧有趣。一个机智的机会并赢得一些争论,以便另一个机智的历史学家可以挑战您并发布更轻巧的内容。可以聘用历史学家,但对于想要了解如何进行严格科学的读者来说,这几乎是浪费时间。我写过的几篇具有历史意义的论文是我做过的最困难的论文,我非常钦佩那些做得很好的历史学家。

几个月后,我在英格兰的一次历史会议上认识了马丁。我们聊了几个小时,但我们两个都没有让对方同意。他一直坚持要他的学生不要再写T型书籍和论文。回到我对我热爱历史的所有原因的清单中,他说第一,第二,第三和第四是39,重要只有数字5和6才有价值。

我很快就发现,科学史学家之间的争论已经有很长时间了。他们不称呼"键入T"与其他他们谈论"内部历史"与"外部历史记录。"对于他们来说,内部历史是由那些对某些学科有知识的人写的,也为那些对某些学科有知识的人写的,而外部历史是为群众写的。内部历史(类型T的内部历史)基本上已经声名狼藉,但我很高兴地说,关于数学。

我特别感谢数学史学家。他们通过转载以及对语言和符号的翻译使原始资料可访问。

到目前为止,数学如何设法摆脱了这一困境?我想这是因为数学史学家一直面临这样一个事实,即他们将无法取悦所有人。其他科学的历史学家有一个幻想,那就是任何普通人都可以理解它,或者至少他们装作如此。

我和马丁·坎贝尔·凯利(Martin Campbell-Kelly)绝对同意一件事:如果有成百上千的由计算机科学家撰写的有关计算机科学的历史论文,那确实是可取的。像我这样的专家并没有写出能填补历史空白的论文。马丁说,至少他希望专业的历史学家从被误导的人(例如我们从事技术工作的人)那里获取一些数据,以便他们稍后进行清理。

他想知道为什么现在几乎没有计算机科学家在撰写历史论文,而且他说,有关历史的论文没有任何学术意义,这可能是同行的压力。在英国,他们进行了臭名昭著的“研究评估工作”,用来决定工资和晋升。历史论文在该评估中可能没有任何意义,因此没有人撰写。在美国,我也看不到对此类论文的支持。我认为这是计算机科学家无论如何都应该做的事情,尽管很难写这些历史论文,也很难为他们揭露。

最后,我想对我们能做的事情致以诱人的愿望清单。编写历史记录的最佳方法是结合广度和深度。您不仅可以从中了解上下文的广泛想法,而且可以放大几个地方并提供带有详细分析的特定示例。以下是许多待写的论文:

操作系统。我在家里有Edsger Dijkstra的1965年他编写的操作系统的源代码。没有人看过,我们应该这样做。

数据库。早期的计算机程序充斥着从未真正被分析过并置于上下文中的数据库思想。

电影和视频游戏的渲染技术。在皮克斯(Pixar)和其他地方开发了许多很棒的技术构想,您可以对他们使用的算法的历史做一个伟大的故事。

编译器。在1960年代初期,Burroughs和Computer Sciences Corporation编写了一些非常有趣的程序,但从未进行过分析。 Digitek有一位出色的程序员,他对软件开发有完全新颖的想法,而现在却鲜为人知。他从未发表过任何文章,但您可以阅读和分析他的源代码。

计算机历史博物馆拥有Bill Atkinson的源代码,该源代码现在由Apple发布,用于MacPaint和MacDraw。它们是出色的程序,组织精美且结构合理,是一种阅读和值得注释和研究的享受。

等等。有许多很棒的算法和源代码,它们的历史是完全不变的。如果我们的技术人员可以深入研究和解释它们,那么历史学家将至少拥有可以在以后增加广度的材料。

d。 "唐纳德·努斯的眼泪,"托马斯·海格(Commun)。 ACM 58,1(2015年1月),40-44; https://bit.ly/382aAQ7

e。 "软件历史的历史,"马丁·坎贝尔·凯利(Martin Campbell-Kelly),IEEE计算历史年鉴29,4(2007年10月至12月); 40-51; https://bit.ly/3oMC0jN

F。坎贝尔·凯利(Campbell-Kelly)在《努斯与历史光谱》中回答。 IEEE计算历史年鉴36,3(2014年7月至9月); https://bit.ly/3ninEXP

数字图书馆由计算机协会发布。版权所有©2021 ACM,Inc.