找回密码
 注册会员
查看: 190|回复: 0

15岁发论文,2年读完大学,他是丹麦唯一图灵奖得主

[复制链接]
online_member 发表于 2023-1-15 11:28:17 | 显示全部楼层 |阅读模式
计算机科学始于1960年1月,因为“ALGOL 60(Algorithmic Language 1960的缩写)首次让自动计算成为学术关注的焦点。
——艾兹格·迪杰斯特拉(Edsger Dijkstra)

作为包括C在内的一众语言的“祖先”,ALGOL 60地位的确超然,彼得·诺尔(Peter Naur)就因为它获得了2005年图灵奖
而彼得的职业生涯也堪称传奇,他不仅是一个计算机科学家,还是一个在国际上享有盛誉的天文学家、哲学家和心理学家。
今天,人邮君就和大家一起走近这位丹麦传奇人物,探索他的故事。

从天文学天才到计算机科学奠基人


15岁完成科学论文,天才天文学家即将诞生

彼得小时候之所以对天文感兴趣,主要归功于他父亲藏书中的大量科学书籍和当时丹麦干净的夜空。
在阳台上观察星空和阅读天文学著作之余,十几岁的彼得每周都会骑着自行车冲到哥本哈根天文台,向里面的天文学家学习如何计算彗星和行星的轨道。
在那里他不仅学会了使用对数表和天文台的机械计算机,还会用除了天文学家以外几乎不为人知的数值技术求解微分方程。
到15岁的时候,他已经完成了一篇正式的关于彗星轨道的科学论文The orbit of comet du Toit-Neujmin-Delporte,并随后在《丹麦皇家科学学会报告》中发表。
他成了学校的“明星”,走上讲台向学生们讲述天文学家第谷·布拉赫(Tycho Brahe)和实际遇到过的诺贝尔奖得主尼尔斯·玻尔(Niels Bohr)的故事。
可以预见的是,彼得前途无量,一个天才天文学家即将诞生。
成为享有国际地位的天文学家,他却选择离开

高中毕业后,彼得进入哥本哈根大学学习天文学,他又展示出了惊人的天赋和能力:两年就学完了正常人需要五年才能完成的课程。
还在上学的他已经在天文学领域崭露头角,名字被越来越多的人知晓。
毕业一年后,彼得在丹麦著名天文学家本特·斯特伦格伦(Bengt Strmgren)推荐下,前往剑桥大学国王学院对天文学和计算机编程这一新兴领域进行探索研究。
只不过剑桥的天气过于恶劣,和丹麦是完全没法比,他只好把观测星空的计划无限搁置。
得益于小时候在哥本哈根天文台进行了数百个小时的手工计算工作,所以他在剑桥无须再学计算技术,可以将身心扑到编程上面。
那时候他花了大量心思对电子延迟存储自动计算器 ( EDSAC) 进行编程,以解决天文学中的微扰问题。
初次接触编程的彼得收获颇丰,虽然EDSAC处理的数据范围有限,但通过编程他能20秒完成以前手动计算需两小时的工作。
彼得惊叹计算机与编程的高效,逐渐迷上了它们。
1952年彼得从剑桥毕业,继续留在美国进行天文学研究。然后,他遇见了两位计算机科学的开拓者,霍华德·艾肯(Howard Aiken)和约翰·冯·诺依曼(John von Neumann)。
彼得跟着两人学习了在当时而言是最先进的计算机技术,这一段经历很大程度上影响了他在之后几年的职业转型。
回到丹麦几年后,这位天才天文学家决定转行,离开天文领域去从事计算机编程工作。
天才转型,推出划时代的ALGOL 60

天文学领域惋惜一个天才的退场,计算机科学领域也迎来了一位新的先驱。
因为本身就具有非凡的计算机技术与编程能力,彼得很快就加入了哥本哈根第一家计算公司Regnecentralen ( RC )。
在RC,他参与开发后来被熟知ALGOL的编程语言。
1958年欧洲的ALCOR(ALgol COnverteR)工作小组在一次报告中详细描述了国际代数语言( International Algebraic Language ,IAL) 的定义,彼得为了给IAL构建编译器,对报告进行了详细的研究。
但随着研究的深入,他愈发觉得其中很多想法表达不够清楚,就组织了一次关于该报告的讨论会议。讨论会的关键点在于ALCOR的研究人员将程序视为静态数学对象(即封闭函数),但是彼得他们认为它是动态对象,也就是说他们对于程序参数的传递机制有着不同的观点。
为了让来自欧洲各地的与会人员能够更清楚地发表自己的想法,彼得发起了名为ALGOL Bulletin的期刊。该期刊在后来成为ALGOL官方交流渠道,而彼得也成了ALGOL工作的欧洲领导者。
1960年1月,彼得在苏黎世做了关于ALGOL 60的报告。ALGOL 60里程碑式地引入了递归、布尔类型和块结构等关键概念,启发了往后无数编程语言。
图灵奖得主托尼·霍尔 ( Tony Hoare )认为“ALGOL 60是一种远远领先于它的时代的语言,它不仅改进了它的前辈,而且改进了它几乎所有的后继者。
霍尔完成的计算机领域最著名算法之一快速排序(Quicksort ),便是受到了ALGOL 60的启发。
艾兹格·迪杰斯特拉更是将它称为奇迹,认为它代表着计算机科学“computer science”的诞生。
但彼得并不认为“computer science”是一个合适的名字。
在丹麦确立计算机科学“Datalogy”

彼更喜欢“Datalogy”或“data science”,他认为数据比计算机本身更重要。Datalogy现在就是丹麦和瑞士用来描述计算机科学的词汇。
自1960年开始,丹麦就一直以Datalogy概念为核心发展计算机科学,彼得在将计算科学建立成为一个学术领域的过程中发挥着绝对关键的作用,而他教授的课程就叫数据科学(datalogi)。
彼得是丹麦第一位计算机科学教授。

15岁发论文,2年读完大学,他是丹麦唯一图灵奖得主414 / 作者:拓牛李强 / 帖子ID:104713

彼得建立了哥本哈根大学计算机科学系(图片来自哥本哈根大学官网)

有着从天文学转型的经验,彼得深知把计算机和其他领域知识结合的重要性,所以他一直强调应该在实践解决问题的过程中去理解理论。
这种将计算机应用与其他领域知识紧密结合的教育方式,也逐渐成为哥本哈根大学的传统。
1966年彼得在一次讲座中对未来计算机发展的预测,现在看来几乎都是惊人的预言:

  • 每个人每天都会使用电脑并拥有个人电脑。
  • 计算机将连接到中央系统(现在的服务器和互联网),并成为“电话服务的重要延伸”,具有“像打字机一样的按键”和电视屏幕。
  • 将引入数字支付,包括在线购买和销售。
  • 将开发数字搜索代理(如Jobindex)和数字词典(如维基百科)。
  • 可以对公民进行数字监控,这将带来很大的风险,即未经授权将个人数据用于公民已允许的其他目的。
  • 计算机科学课程将从一年级开始就被列入时间表。
彼得不仅深深影响了丹麦的计算机科学发展,同时也在全世界的程序开发研究方面发挥了巨大作用。
他在1968年的一次会议的报告,引发了著名的“软件危机”的讨论:随着软件复杂度的增加,由于现有方法的不足,出现了很多软件问题

艾兹格·迪杰斯特拉在1972年图灵奖演讲时也谈论到了这个问题:

软件危机的主要原因是机器变得强大了几个数量级!说得直白一点:只要没有机器,编程完全没有问题;当我们有几台弱计算机时,编程就成了一个小问题,而现在我们有了巨大的计算机,编程就成了一个同样巨大的问题。

因此,他们着手开发各种过程和方法来改进软件质量管理,“软件工程”的概念应运而生。

催生敏捷软件开发运动 发现软件工程中的哲学


当时艾兹格·迪杰斯特拉主要支持的是结构化编程,专注于研究在理想情况下应该如何进行编程。
而彼得成了他的强烈反对者,他认为程序员应该根据实际需要去选择合适的形式,而不是被这种“理想情况”束缚。在这种先验符号的限制之下进行编程,并不能获得更好的效果,只会适得其反。
为此,他在后面的几十年中发表了多篇关于形式主义者工作的论文,反对迪杰斯特拉的观点。
当然,这些只是方式的选择不一样,他们的根本目的还是解决“软件危机”,寻求改进软件质量的方法。
在深入研究哲学文献之后,彼得选择从哲学思想入手解决编程问题,发表了一篇名为Programming as Theory Building的文章。
他认为编程更应该被视为一种活动,程序员通过这种活动形成或实现对手头问题的某种洞察力或者理论
当时的主流观点是编程应当视为程序或者某些文本的产物,彼得的观点与其完全不一样。他的新观点很快引起了人们对于软件开发的新思考,从不同的角度来解决编程问题。
他的这篇论文被认为是敏捷软件开发运动的起点
晚年的时候,彼得深入研究了哲学和数学逻辑与规则方面的工作,并且逐渐发展了自己的心理学理论,发表了Computing versus human thinking的演讲,并建立了心理生活的突触状态理论。
彼得又从计算机科学走向哲学,走向心理学,跨学科的应用被他贯彻始终。
2016年,彼得走完了他传奇的一生,他的荣耀从星星开始,最终也归于星星。

计算机中的哲学,敏捷开发


彼得见证了计算机科学的建立,也参与了软件工程的发展,更是引发了敏捷运动。
他将哲学与计算机科学的融合,改变了无数人对编程的理解:软件工程师的工作不是传递“设计”,而是传递驱动设计的“理论”
当然,敏捷(Agile)一词的确立是在2001年著名的“雪鸟会议”上。
在那之前,随着许多轻量级软件开发方法的开发与发展,比如动态系统开发法(DSDM)、Scrum、极限编程等,人们意识到它们可能拥有同样的价值观。
因此Scrum创始人杰夫·萨瑟兰(Jeff Sutherland)、肯·施瓦布Ken Schwaber),还有罗伯特·C.马丁(Robert C Martin)、马丁·福勒(Martin Fowler)等17位世界著名的软件开发专家、科学家齐聚雪鸟度假村,讨论这些轻量级软件开发方法。
随后《敏捷宣言》问世。

15岁发论文,2年读完大学,他是丹麦唯一图灵奖得主845 / 作者:拓牛李强 / 帖子ID:104713

《敏捷宣言》内容

《敏捷宣言》可以说是软件开发历史上最重要的文件之一,其开发原则已经普及到全球乃至非软件发行业。
敏捷也是大部分软件开发团队与企业的选择,想必大家在平时的学习与工作中,或多或少有过接触。
随着《敏捷宣言》的发布已经过去了二十年,敏捷开发的方法论与实践也经过了各式各样的发展,掀起过一波又一波的敏捷热潮。
在这个过程中,很多人不断地生出各种疑问:敏捷是怎么来的?现在的敏捷还保留着初心吗?为什么很多“敏捷”看上去并不敏捷?
为了回答这些问题,让大家更清楚地理解敏捷开发,禅道项目管理软件团队编写了这本《敏捷史话》,与大家一起走入《敏捷宣言》17位签署人的真实人生。

15岁发论文,2年读完大学,他是丹麦唯一图灵奖得主457 / 作者:拓牛李强 / 帖子ID:104713
当然,本书不仅是追本溯源地回顾他们和敏捷的故事,更是系统性地介绍各种敏捷方法与实践
我们在深入了解这些软件开发行业前辈推动敏捷运动的同时,更能深刻体验敏捷的初心,了解其本质
所以,不管是对敏捷历史感兴趣,还是对敏捷本身感兴趣的开发者,都能从本书中获益良多。
以史为鉴,方能在当下做出更合适的选择。

敏捷开发势在必行


尽管“软件危机”是一个“古老的”词汇,但当下依然存在:项目超预算、项目运行超时、软件质量低、交付不及时等问题还是常见。

敏捷开发的实践仍有必要,且势在必行。

文章编辑:沙鱼  审校:桐希
参考引用:
1.彼得·诺尔图灵奖官网介绍
2.彼得·诺尔个人网站
3.Den verdensbermte it-dansker Peter Naur er dd | 彼得·诺尔讣告
4.哥本哈根大学计算机科学系官网
5.《敏捷宣言》官网
<hr/>推荐阅读
======
赠人玫瑰,手留余香~不要忘记点赞、收藏、关注 @人民邮电出版社 哦!
一键三连,感恩有你~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|UFO中文网

GMT+8, 2024-12-23 21:27

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表