首页 > 编程知识 正文

高级程序员(我的世界)

时间:2023-05-03 08:17:08 阅读:1464 作者:2981

作者|年苏晴

编辑| pcdcc

产品|程序寿命(标识:编码器_寿命)

Unix mldmg(Ken Thompson)被称为“世界上最杰出的程序员”。他自学编程,26岁创造了Unix,改写了计算机操作系统的历史,70岁成为Go语言的联合开发者之一。

作者通过这篇文章带你了解Unix之父传奇的一生。

喜欢逻辑,自学编程。

汤普森1943年出生于美国新奥尔良。我上小学的时候,有一节关于二进制的课。他被逻辑迷住了。他做了很多二进制运算,并在十进制计算器的帮助下将其扩展到各种十进制系统。中学时,汤普森迷上了电子设备。他曾经制造过自己的收音机、示波器和放大器。

1960年,汤普森进入加州大学伯克利分校,主修电气工程。大二时,他接触了模拟计算机。他在上面做了很多相关的二进制计算,但是他认为解释器太慢了,不能直接用汇编编程。暑假期间,他设法拿到了翻译的源代码清单。在不懂编程语言的情况下,他认真学习,最终学会了编程,并在学校找到了工作。

1965年本科毕业,汤普森留校。一位教授为他申请了硕士学位,师从著名的信息论和博弈论专家yjdjdlhdxt(埃尔温伯莱坎普)。当Leigh lhdxt问他为什么学编程时,汤普森说:“因为我从小就喜欢逻辑。”

根据汤普森的说法,在攻读硕士期间,他主要依靠自学。从招生到硕士,汤普森只用了一年时间。

为了玩游戏,设计操作系统。

汤普森于1966年加入贝尔实验室。1968年,汤普森参与了由贝尔实验室、麻省理工学院和通用电气公司联合开发的多用户分时操作系统,名为Multics(多通道信息计算系统)。

一年后,贝尔实验室决定退出Multics系统,因为该系统周期长、成本高、前景差。汤普森非常沮丧。他写了一个名为“星际旅行”的游戏,完全基于Multics。退出多播项目意味着他将没有机器玩这个游戏。

于是汤普森决定设计一个操作系统,自己玩游戏。他本来打算申请实验室在DEC-10上写,但是没有申请。他只能找到一台废弃已久的老式PDP-7小型机。虽然它被称为小型机,但它也有一个房间大小。汤普森先在这台机器上重写了游戏,然后在一周内设计了操作系统的内核,然后在一周内创建了文件系统,在一周内编写了编辑器和编译器,最后在一个月内完成了整个操作系统的编写。汤普森将其命名为统一信息和计算系统。经过一次又一次的改动和优化,才有了第一个版本的UNIX操作系统。

这一年,汤普森只有26岁。

一起获得图灵奖。

Unix在贝尔实验室的诞生并没有引起多大的轰动。只有一个叫丹尼斯m里奇的同事对它表现出了极大的兴趣,自愿加入进来,一起改进系统。

1972年,汤普森和gldxs联合将Unix移植到当时最先进的大型机PDP-2上。因为Unix的简单、稳定、高效,大家都放弃了PDP-2上的DEC操作系统,完全改用了Unix。

虽然这个时候的Unix在两个人的努力下趋于完美,但是外界并不知道。

1973年10月,在IBM举办的操作系统原理研讨会上,汤普森和gldxs宣读了相关论文,并展示了Unix,在整个会场引起轰动,大家立即冲出来索要这款新操作系统的程序。

随后,业界对Unix的需求与日俱增,两人决定进一步重写Unix,使其可以移植到各种硬件系统中。最终,他们将Unix和C语言完美结合,产生了一个新的可移植的Unix系统。正式推出后,它改写了计算机的历史。

鉴于其诸多优势,Unix在软件领域被称为“瑞士军刀”。贝尔公司的一名高级管理人员将Unix描述为仅次于晶体管的第二重要发明。两位发明者谦虚地说,“就公众关注度而言,Unix确实是一个重要的发展”。

由于Unix的深远影响,1983年,美国计算机协会破例将当年的图灵奖授予了汤普森和gldxs。那一年,设立了一个新的奖项——ACM软件系统奖,主要授予开发具有长期影响力的软件系统的组织或个人。汤普森和gldxs成为第一批获胜者。

惨淡的职业生涯

20世纪80年代,汤普森和C语言之父Bjarne Strou

strup、图灵奖获得者之一Brian Kernighan等几位计算机大佬合作,为朗讯公司开发Plan 9操作系统,该项目的初衷是希望能够开发出取代Unix的新一代分布式多用户和图形化的操作系统,在1992年、1995年先后发布了两个正式版本。但此时Linux异军突起,很快抢夺了市场,Plan 9的发展也受到了限制。1990年代后期,朗讯公司不得不取消了Plan 9项目。

不久之后,朗讯又启动了Inferno操作系统研究项目,汤普森再次参与其中。

1997年,发布了Inferno第一版,并用在了朗讯的两个产品之中,为此公司还成立了专门的业务部门。然而,此时互联网悄然兴起,Sun公司开发的Java开始占据主流市场。因为失败的营销和运营模式,Inferno并没有在互联网大潮中占得一席之地,三年后,Inferno惨淡收场,知识产权被出售给英国公司Vitanuova。

Go语言的共同创造者

2007年9月,汤普森以优秀工程师的身份加入Google,与之前在贝尔实验室时的老同事ajdlt(Rob Pike),一起为Google设计基础设施。他的工作内容主要涉及操作系统方面。他在《编程人生》一书中所说,虽然他对Google大规模海量用户的计算环境以及相关的制度还不太适应,他还没有资格提交代码,但他总体上还是很喜欢这里的工作。

2009年11月,汤普森与派克一起公布了他们的工作的第一个成果——Go语言,这是一款带垃圾收集、编译型的并发系统语言,一经问世便引起了广大的关注。

世界上最杰出的程序员

除了Unix和Go语言之外,汤普森还间接地发明了许多计算机编程相关的产物。早在开发Multics的期间,他便创造出了一种叫做“Bon”的编程语。

为了开发Unix,汤普森开发了一种新的语言——B语言,后来成了gldxs开发C语言的基础。

受导师伯利lhdxt的影响,汤普森还曾开发了一个名为Belle的国际象棋专用计算机,据说曾经打遍天下无敌手,他还编写了一个程序扩展象棋残局库。

此外,汤普森在开发编辑器的过程中发明了正则表达式,在开发Plan 9操作系统的过程中发明了UTF-8编码。

因为他的这些成就,一生荣誉颇多。除了1983年被授予图灵奖之外,他在1994年获得由电气和电子工程师协会颁发的计算机学会先锋奖,1998年被授予国家科技奖章,并于1997年入选计算机历史博物馆名人录。

业界对他的评价极高,称他是“世界上最杰出的程序员”。

有意思的是,尽管汤普森在计算机方面成就显赫,但他却建议自己的儿子去读生物而非计算机,理由是计算机发展太慢了。对此,你怎么看?

参考链接:

幸福的绿草、Go语言百科

计算机天才zqdgz:为了玩游戏,自己写了一个操作系统

互联网发展史人物篇:zqdgz(Ken Thompson)——Unix之父

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。