所谓程序员,是指那些能够创造、编写计算机程序的人。不论一个人是什么样的程序员,或多或少,他都在为我们这个社会贡献着什么东西。然而,有些程序员的贡献却超过了一个普通人一辈子能奉献的力量。这些程序员是先驱,受人尊重,他们贡献的东西改变了我们人类的整个文明进程。下面就让我们看看历史上12位伟大的程序员。

1. 第一位计算机程序员:Ada Lovelace

Ada Lovelace
Ada Lovelace

Ada Lovelace,原名August Ada Byron,数学爱好者,被后人公认为第一位计算机程序员

在1842年至1843年期间,Ada花了9个月时间翻译了意大利数学家Luigi Federico Menabrea讲述Charles Babbage计算机分析机(Analytical Engine)的论文。在译文后面,她增加了许多注记,详细说明用该机器计算伯努利数(Bernoulli number)的方法,被认为是世界上第一个计算机程序。因此,Ada也被认为是世界上第一位程序员。

2. Linux之父:Linus Torvalds

Linus Torvalds
Linus Torvalds

Linus Benedict Torvalds,著名的电脑程序员、黑客,Linux内核的发明人及该计划的合作者。Linux利用个人时间创造出了这套当今全球最流行的操作系统内核之一。他还发起了Git这个开源项目并成为主要开发者。

因为成功开发了Linux内核而荣获2014年计算机先驱奖。他的获奖创造了计算机先驱奖历史上的多个第一:第一次授予一位芬兰人;第一次授予一位“60后”(其实只差3天就是“70后”);获奖成果是在学生时期取得的。

Linus在网上邮件列表中也以脾气火爆而著称。例如,有一次在和人争论Git为何不使用C++开发时,与对方用“bullshit”互骂。他更曾以“OpenBSD crowd is a bunch of masturbating monkeys”来称呼OpenBSD团队。

3. Pascal之父:Niklaus Wirth

Niklaus Wirth
Niklaus Wirth

Niklaus Emil Wirth生于瑞士温特图尔,瑞士计算机科学家。

在1963年到1967期间,他担任斯坦福大学的计算机科学部助理教授,之后又在苏黎世大学担任相同的职位。1968年,他担任苏黎世联邦理工学院的信息学教授,又往施乐帕洛阿尔托研究中心进修了两年。

他是好几种编程语言的主设计师,包括Algol W,Modula,Pascal,Modula-2,Oberon等。

他亦是Euler语言的发明者之一。1984年,他因发展了这些语言而获图灵奖。此外他还是Lilith电脑和Oberon系统的设计和运行队伍的重要成员。

4. 苹果联合创始人:Steve Wozniak

Steve Wozniak
Steve Wozniak

Stephen Gary Wozniak,美国电脑工程师,曾与Steve Jobs合伙创立苹果公司

Wozniak在1970年代中期创造出苹果一号苹果二号,苹果二号风靡普及后成为1970年代及1980年代初期销量最佳的个人电脑,他本人也被誉为是使电脑从“旧时王谢堂前燕”到“飞入寻常百姓家”的工程师。

5. Java之父:James Gosling

James Gosling
James Gosling

James Gosling,出生于加拿大,软件专家,Java编程语言的共同创始人之一,被公认为“Java之父”。

在12岁时,Gosling已经能设计电子游戏机,帮忙邻居修理收割机。1981年开发在Unix上运行的类Emacs编辑器Gosling Emacs(以C语言编写,使用Mocklisp作为扩展语言)。1983年获得卡耐基·梅隆大学计算机科学博士学位。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视,后来转投Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,开发了一套语言Oak,后改名为Java。1994年底,James Gosling在硅谷召开的大会上展示Java程序。2000年,Java成为世界上最流行的电脑语言。

6. B语言、C语言和Unix创始人:Ken Thompson

Ken Thompson
Ken Thompson

Ken Thompson生于美国新奥尔良,计算机科学学者与软件工程师。他与Dennis Ritchie一同设计了B语言C语言,并创建了UnixPlan 9操作系统。Thompson也是编程语言Go的共同作者,与Dennis Ritchie同为1983年图灵奖得主。

Ken Thompson的贡献还包括发明正则表达式,开发早期的电脑文字编辑器QED与ed,定义UTF-8编码,以及开发电脑象棋。

7. PHP之父:Rasmus Lerdorf

Rasmus Lerdorf
Rasmus Lerdorf

Rasmus Lerdorf出生于加拿大,并在早年搬到丹麦。1994年,Rasmus开发了PHP,刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,并可以访问数据库。

在1995年以Personal Home Page Tools(PHP Tools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等。

在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。

8.《C程序设计语言》作者:Brian Kernighan

Brian Kernighan
Brian Kernighan

Brian Wilson Kernighan是一位加拿大计算机科学家。在贝尔实验室,他与Unix的创造者Thompson以及C语言之父Dennis Ritchie一起工作,同时他也是开发Unix的主要贡献者。他是AWKAMPL编程语言的作者之一,AWK中的K说的就是Kernighan。同时,它也是《C程序设计语言》的作者之一,他与C语言的发明人Dennis Ritchie共同合作了这本书,该书被很多人简称为“K&R C”,K&R就是两人名字的缩写。Brian Kernighan现在是普林斯顿大学计算机学院的教授,同时也是本科学部的代表。

9. Ruby脚本语言的开创者:松本行弘(Yukihiro Matsumoto)

松本行弘
松本行弘

松本行弘,日本计算机科学家、软件工程师,筑波大学毕业,在1995年首次发布Ruby脚本语言的第一个版本。

Ruby是一种功能强大的面向对象的脚本语言,它综合了Perl,Python,Java等语言的特点写成,有强大的文字处理能力,简单的语法,完全的面向对象。同时,Ruby是解释型语言,不需编译即可快捷地编程,擅长于文本处理、系统管理等任务。

10. C++之父:Bjarne Stroustrup

Bjarne Stroustrup
Bjarne Stroustrup

Bjarne Stroustrup生于1950年,丹麦计算机科学家,最著名的便是创造并开发了如今被广泛使用的C++编程语言。Bjarne是哥伦比亚大学的客座教授,目前在摩根士丹利工作。

用他自己的话来说,Bjarne“发明了C++,写下了它的早期定义并做出了首个实现……选择制定了C++的设计标准,设计了C++主要的辅助支持环境,并负责处理C++标准委员会的扩展提案。”此外,他还写了一本《C++程序设计语言》,被许多人认为是C++的范本经典,最新的第四版于2013年出版,并囊括了C++ 11所引进的一些新特性。

11. C语言和Unix之父:Dennis Ritchie

Dennis Ritchie
Dennis Ritchie

Steve Jobs和Dennis Ritchie是在同年同月离世的。之后每年的这段时间,很多媒体都会纪念Jobs,但很少会提到Dennis Ritchie。

如果没有丹尼斯·里奇(Dennis Ritchie),就不会有我们现在所熟知的现代计算。他是C语言之父UNIX操作系统的联合发明人

Dennis Ritchie with Doug McIlroy (left) in May 2011
Dennis Ritchie with Doug McIlroy (left) in May 2011

不可否认,乔布斯带给我们世上从未见过的创新和标志性的产品,还有一大批对他顶礼膜拜的狂热消费者和终端用户。诸如此类的事情可能再也看不到了。

但是苹果和乔布斯以及很多其他公司所创造的“神奇的”产品,和所有现在我们了解和写在现代计算里的东西,都要归功于丹尼斯·里奇,他于2011年10月12号离开人世,享年70岁。

C语言是里奇在1969-1973年间开发的,他被认为是第一个真正意义上可移植的现代编程语言。自它诞生差不多45年以来,它已经被移植到几乎每一个出现过的系统架构和操作系统上。

除此之外,里奇还是UNIX操作系统的联合发明人。当然UNIX的原型是用汇编语言编写的,到七十年代早期就完全用C重写了。看下面这张图,可以更好的理解“Unix家族”。

Unix 家族
Unix 家族

关于Dennis Ritchie的其他成就及贡献,推荐阅读以下两篇文章:

最后,用Ritchie在贝尔实验室的同事兼好友Brian Kernighan的评价做个总结:“牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上。”

这句话,应该是对Dennis Ritchie的一生最有力也是最中肯的评价。

12. Python之父:Guido van Rossum

Guido van Rossum
Guido van Rossum

Guido van Rossum是一名荷兰的计算机程序员,于1982年获得了阿姆斯特丹大学的数学和计算机科学的硕士学位,并于同年加入一个多媒体组织CWI,做调研员。他作为Python编程语言的作者而为人熟知。在Python社区,Guido被公认为终身仁慈独裁者(Benevolent Dictator For Life,BDFL),意思是他仍然关注Python的开发进程,并在必要的时刻做出决定。

1991年初Python发布了第一个公开发行版。Guido原居荷兰,1995年移居到美国,并遇到了他现在的妻子。在2003年初,Guido和他的家人,包括他2001年出生的儿子Orlijn一直居住在华盛顿州北弗吉尼亚的郊区,随后他们搬迁到硅谷。从2005年开始Guido就职于Google,其中有一半时间是花在Python上。而现在Guido在为Dropbox工作。

不负责任的出处考据
不负责任的出处考据

关于Guido还有一个著名的段子:Guido van Rossum 去 Google 应聘,简历只写了三个词「I wrote Python」。当然事后证明这只是为了调侃Google面试流程冗长复杂,事实上在他2005年加入Google时,Google内部已经有相当一部分工程师在使用Guido发明的Python了,而Google请Guido就是冲着Python去的——条件是允许他用一半的工作时间来维护Python, 版权归他自己

Google +上Guido的发帖,LOL
Google +上Guido的发帖,LOL

另外Google +上Guido自己也发帖称别再找我应聘Python开发,也是很搞笑了……

Notes: To Do

  • Jeff Dean
  • Donald Kruth

参考文章

  1. 历史上最伟大的12位程序员 | Python之禅
  2. Ada Lovelace | 维基百科
  3. Ada Lovelace:19世纪的数学奇女子——计算机之母 | 电子技术设计
  4. Ada Lovelace, the First Tech Visionar | The New Yorker
  5. Ada Byron, Lady Lovelace (1815-1852) | Yale CS
  6. 苹果联合创始人沃兹尼亚克的那些成就 | 腾讯科技
  7. 对Unix40岁的一些感想 | 阮一峰的网络日志
  8. Unix英烈传:图文细数十五位计算先驱 | Linux公社
  9. 丹尼斯·里奇,那个给乔布斯提供肩膀的巨人 | 果壳网
  10. 纪念C语言之父丹尼斯·里奇离世 6 周年 | 开源中国
  11. 世界十大黑客 | 百度百科
  12. 务实至上:“PHP之父”Rasmus Lerdorf访谈录 | ITeye
  13. C/Unix思想后隐藏的巨人——Brian Kernighan | 图灵社区
  14. [英]Brian W. Kernighan:我与CS的半个世纪(图灵访谈)| 图灵社区
  15. 真相暴露帖:本人采访Ruby语言创始人松本行弘(Matz)先生 | 果壳日志
  16. Bjarne Stroustrup | 维基百科
  17. Bjarne Stroustrup’s homepage
  18. Guido van Rossum - Personal Home Page