导读:对于程序员来说,"hello, world"就像小学一年级数学课上的1+1,一个简单而舒适的起点。也正如字面意思所说,它将引导你开启一个新的世界,一个等着你用好奇心去创造、去改变的新世界……
"hello, world"最初是布莱恩·柯尼汉(Brian Kernighan)在《B程序设计语言的入门教程》中最先使用的。本文的主角就是布莱恩·柯尼汉,除了“发明”了"hello, world"之外,他被网友和媒体戴上了各种头衔——“历史上最伟大的十大程序员”、“十五位计算先驱”等等,他与丹尼斯·里奇(Dennis Ritchie)共同写作了C语言的第一本著作《C程序设计语言》,当今的程序员们逃不开他的影响力。
▲年轻时的布莱恩·柯尼汉,图片来自于网络
与高高在上的“大神”形象形成反差的是,在普林斯顿大学任教的布莱恩·柯尼汉教授,每年秋天的开学季,都会给非计算机专业的学生,讲授一门名叫“我们世界中的计算机”的课程(COS 109: Computers in our World)。这门课的目的其实非常纯粹,就是科普有关计算机的最基本常识,让每一个人都能在工作和生活中更好地使用电脑。
本文写作时刚好赶上开学季和教师节,这里就先遥祝教授节日快乐吧!
01 "hello, world"的前世今生
1972年,在贝尔实验室内部技术文件《B程序设计语言的入门教程》("Introduction to the Language B")中,布莱恩·柯尼汉第一次使用了"hello, world"作为编程案例。后来在《C程序设计语言》中,布莱恩·柯尼汉再次将"hello, world"写进案例。随着这本经典著作的大卖,"hello, world"也流行起来,并逐渐成为具有特定象征意义的文化符号。
▲布莱恩·柯尼汉1974年写在纸上的"hello, world"程序C语言代码及签名
关于"hello, world"的准确来历,2011年,布莱恩·柯尼汉在接受福布斯印度采访时说:
我的记忆已经模糊了。我记得的是,我看过一个卡通片,里面一个鸡蛋和一只小鸡,小鸡说:“你好,世界”。
"hello, world"作为一个特定词组,它的标准写法是:两个单词的开头字母都是小写,单词间用英文半角逗号隔开,逗号后面有一个空格。因为这就是最初的"hello, world"程序输出结果的样子。当年的B语言程序是这样写的:
今天的几种的常见语言中,你可以这样输出"hello, world":
02 “历史上最伟大的十大程序员”
前些年,数据叔看过一篇网文《历史上最伟大的十大程序员》,布莱恩·柯尼汉跟比尔·盖茨、Java之父詹姆斯·高斯林(James Gosling)、Python之父吉多·范罗苏姆(Guido van Rossum)等伟大名字一起入围榜单。上榜的缘由显而易见,他关于C语言、Unix系统的很多工作,40年来一直对后人产生深远的影响。
▲布莱恩·柯尼汉在贝尔实验室“向丹尼斯·里奇致敬”活动中发表演讲,图片作者:Ben Lowe,来源:Flickr
1978年,布莱恩·柯尼汉和C语言之父丹尼斯·里奇合著了《C程序设计语言》,这本书毫无争议地成为C语言最权威的教材。由两位作者姓氏开头组成的短语"K & R"也如同"hello, world"成为固定词组。"K & R"除了指代两位作者之外,也被认为是最早的代码风格。
▲《C程序设计语言》,点击图片了解更多
此外,布莱恩·柯尼汉参加了UNIX系统、C语言和许多其他系统的开发。他是AWK语言和AMPL语言的发明者。
布莱恩·柯尼汉生于加拿大多伦多,曾在贝尔实验室计算科学研究中心担任高级研究人员,长期在普林斯顿大学任教。
▲听布莱恩·柯尼汉讲述C语言的往事,英文字幕,来源:Computerphile
03 普林斯顿计算机公开课
从1999年开始,布莱恩·柯尼汉教授在普林斯顿大学开设了一门名叫“我们世界中的计算机”的课程(COS109: Computers in Our World),这门课是向非计算机专业的学生介绍计算机基本常识的,多年来大受学生追捧。选修这门课的学生来自普林斯顿大学政治、历史、古典文学、经济、音乐和艺术等专业,几乎涵盖了人文和社会科学的各个专业。
除了向学生讲解计算机理论知识,这门课还有相应的实验课——学生可以试着用流行的编程语言写几行代码,大家一起讨论苹果、谷歌和微软的技术如何渗入日常生活的每个角落。
课程从CPU、RAM、硬盘、硬件、软件讲起,但并不是一些枯燥无味的陈词滥调。课程的内容还包括很多当今最热点的话题:社交网络、数据挖掘、云计算、隐私、安全、比特币……
2011年,柯尼汉教授将课程讲义整理成"D is for Digital"(中文版名为《世界是数字的》)一书出版。2017年,随着课程内容的更新和时代的进展,柯尼汉教授又编写了"Understanding the Digital World",今年4月,这本书的中文版《普林斯顿计算机公开课》上市。
▲《普林斯顿计算机公开课》,点击图片了解更多
在《普林斯顿计算机公开课》一书的前言中,柯尼汉教授提到了斯诺登的棱镜门事件和美国国家安全局对德国总统默克尔的窃听,并表示“科技并非人们想象的那么美好和神奇”。但其实他讲授的这门课程,正是致力于让科技创造美好和神奇。
也许是数据叔没上过段位太高的大学吧,总之,我是没见过哪位大神级的人物有耐心给兢兢业业地给非本专业的本科生讲课,也不知道听大神讲科普是怎样一种体验。这位"hello, world"的原创者,多年来一直手把手地教一代又一代的年轻人学会"hello, world",引领他们对计算机科学的新世界say hello。
04 致敬
最后,数据叔非常想在这个中国教师节即将来临的日子里对教授先生表达一下敬意。不过语文没学好的数据叔真的很词穷。我想,对于柯尼汉教授的课程、《普林斯顿计算机公开课》这本书,以及他在计算机科学多个领域的贡献和影响力,是很难用“感谢”“致敬”之类的苍白词汇表达的。
所以怎么办?要不,买本书吧……
相关参考: