導讀:對於程式員來說,”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”:
-
C
-
Java
-
Python 2
-
Python 3
-
Ruby
-
Kotlin
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 致敬
最後,資料叔非常想在這個中國教師節即將來臨的日子裡對教授先生表達一下敬意。不過語文沒學好的資料叔真的很詞窮。我想,對於柯尼漢教授的課程、《普林斯頓計算機公開課》這本書,以及他在電腦科學多個領域的貢獻和影響力,是很難用“感謝”“致敬”之類的蒼白詞彙表達的。
所以怎麼辦?要不,買本書吧……
相關參考:
-
Brian Kernighan – Wikipedia
https://en.wikipedia.org/wiki/Brian_Kernighan
-
Brian Kernighan: No one Thought C Would Become So Big – Forbes India
http://www.forbesindia.com/interview/special/brian-kernighan-no-one-thought-c-would-become-so-big/29982/1
-
《普林斯頓計算機公開課》,作者:布萊恩·柯尼漢,譯者:劉藝、劉哲雨、吳英,機械工業出版社,ISBN: 978-7-111-59310-2
-
百度百科hello world詞條
-
盤點:十大歷史上最偉大的程式員
更多精彩
在公眾號後臺對話方塊輸入以下關鍵詞
檢視更多優質內容!
PPT | 報告 | 讀書 | 書單
Python | 機器學習 | 深度學習 | 神經網路
區塊鏈 | 揭秘 | 乾貨 | 數學
猜你想看
Q: 你最想感謝的老師是誰?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視