自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

咱們都熟的hello world,你卻不知道它的偉大歷史

移動開發(fā)
這是一個最著名的程序。對每一位程序員來說,這個程序幾乎是每一門編程語言中的第一個示例程序。那么,這個著名的程序究竟從何而來呢?

[[154357]]

這是一個最著名的程序。對每一位程序員來說,這個程序幾乎是每一門編程語言中的第一個示例程序。那么,這個著名的程序究竟從何而來呢?

實際上,這個程序的功能只是告知計算機顯示 Hello World 這句話。傳統(tǒng)意義上,程序員一般用這個程序測試一種新的系統(tǒng)或編程語言。對程序員來說,看到這兩個單詞顯示在電腦屏幕上,往往表示他們的代碼已經(jīng)能夠編譯、裝載以及正常運行了,這個輸出結(jié)果就是為了證明這一點。

這個測試程序在一定程度上具有特殊的象征意義。在過去的幾十年間,這個程序已經(jīng)漸漸地演化成為了一個久負(fù)盛名的傳統(tǒng)。幾乎所有的程序員,無論是在你之前,或在你之后,當(dāng)?shù)谝淮螌崿F(xiàn)與計算機成功溝通之后,在某種程度上,他們的腎上腺素就會急劇上升(激動不已)。以下就是這個著名程序的誕生故事。

Hello World 究竟從何而來?

[[154358]]

Hello, World 最早是由 Brian Kernighan 創(chuàng)建的。1978 年,Brian Kernighan 寫了一本名叫《C 程序設(shè)計語言》的編程書,在程序員中廣為流傳。他在這本書中第一次引用的 Hello World 程序,源自他在 1973 年編寫的一部講授 B 語言的編程教程:

main (){ extrn a,b,c; putchar (a); putchar (b); putchar (c); putchar ('!*n'); } a 'hell'; b 'o, w'; c 'orld';

但是非常不幸的是,當(dāng) Forbes India 雜志采訪他的時候,他自己對這段傳奇故事中一些記憶已經(jīng)有點兒模糊了。當(dāng)他被問及為什么選擇『Hello, World!』時,他回答說,『我只記得,我好像看過一幅漫畫,講述一枚雞蛋和一只小雞的故事,在那副漫畫中,小雞說了一句‘Hello World’』。

鑒于 Hello World 這個計算機程序的廣泛流行程度,這個起因看起來還是蠻合適的。

那個時候,無論是 Kernighan,還是他的同事 Dennis Ritchie - C 語言之父,都無法想象 C 語言以及這本教程書將會在今天如此之流行。他們所做的工作只是貝爾實驗室的一個研究項目,而在當(dāng)時,貝爾實驗室也只是美國電話電報公司(AT&T)的技術(shù)研究與開發(fā)機構(gòu)而已。

盡管沒人能夠科學(xué)地解釋為什么 Hello World 如此地流行,但是,Hello, World 程序的確在計算機發(fā)展歷史上成為了一個具有重要意義的里程碑。我們一起來回顧一下當(dāng)時的歷史環(huán)境。

襁褓中的變革

現(xiàn)在你可能很難想象,但是在 Hello World 連同 Kernighan 的編程書出版之前,計算機對于公眾來說,幾乎隱含著一種負(fù)面的意義。在 1970 年代,主機時代的計算機,不僅運行緩慢,體積龐大到足以占用整個一間屋子,而且還需要一位全職的科學(xué)家或者研究者來維護(hù)它。事實上,在 1970 年代后期之前,計算機科學(xué)家在編程的時候還要使用大量的打孔卡

通常情況下,一般人認(rèn)為計算機是一種不可觸碰、復(fù)雜,而且極其昂貴的設(shè)施,它們僅僅適用于學(xué)術(shù)、政府或者國防。事實上,即使是那些專注計算機領(lǐng)域的工業(yè)巨頭們也在努力克服這些障礙。當(dāng)時誰也無法想到,事隔多年之后,也就是現(xiàn)在,如果我們暫時失去了我們的個人數(shù)字設(shè)備(如手機等),我們甚至?xí)?a >感到焦慮。

第一個著名的計算機應(yīng)用的案例發(fā)生在 1890 年 - 為了收集和統(tǒng)計超過六千萬美國人口的相關(guān)數(shù)據(jù)。另一個案例出現(xiàn)在 1940 年,也就是二戰(zhàn)期間,Bombes & Colossus 計算機被用于破解德國人的通訊密碼。

在 1950 年,世界上迎來了第一代商用計算機,如 Zuse 3 和 UNIVAC,在當(dāng)時主要應(yīng)用于算術(shù)運算,但如果你想要買到這些設(shè)備,需要花費上百萬美元。

從教育相關(guān)的角度來看,絕大多數(shù)早期的有關(guān)編程語言的圖書,如 FORTRAN 或 BASIC,常常都會從一點入手:計算機非常有用。這是算法工程師和研究者 John Mount 的一個重要觀點。Mount 認(rèn)為,Hello World 大范圍流行開啟了一個嶄新的時代 - 計算機科學(xué)家不再需要說服社會和大眾,計算的工具化特征已經(jīng)所處可見。

例如,在 1964 年,一本名叫 My Computer Likes Me When I Speak Basic 的圖書,在它的前言部分,就專門講述了計算機編程語言的一般性用途。而且,書中的第一個例子的輸出結(jié)果就是『MY HUMAN UNDERSTANDS ME』。之所以使用這個示例的原因,目的是為了幫助人們理解計算機這個新生事物,并且希望告訴人們:你可以和計算機進(jìn)行交流。在此之后,也就是 1956 年,動態(tài)編程語言開啟了將計算機應(yīng)用于現(xiàn)實世界的更多實例。

在 C 語言以及 Hello World 程序流行起來之前,計算機并沒有得到大范圍的應(yīng)用和普及,計算機行業(yè)也沒有開始真正的騰飛。

Hello World,編程時代的真正來臨

引發(fā) Hello World 廣泛傳播的一個最主要催化劑,是 PDP-11 型計算機的面世,PDP-11 是一款在商業(yè)上極其成功的小型計算機。數(shù)字設(shè)備公司(DEC)以 $10,000 的單價,總共出售了六十萬臺。盡管如此,這種類型的計算機已經(jīng)比當(dāng)時價值幾百萬美元的大型機在價格上便宜了許多。另外,其中 PDP-11 16-bit 系列不要求使用打孔卡,你可以使用相應(yīng)的編程語言直接與計算機進(jìn)行溝通。在那個年代,這還是第一次。

有趣的是,為了加速社會的廣泛接受度,數(shù)字設(shè)備公司并沒有將其稱為『計算機』。為了和以往那些大型主機相區(qū)別,數(shù)字設(shè)備公司改稱其為『可編程的數(shù)據(jù)處理器』。當(dāng)越來越多的機構(gòu)開始采購越來越多的可編程計算機時,對于 C 語言編程書籍的需求也變得越來越旺盛了。

C 語言和 UNIX 操作系統(tǒng)首先在 PDP-11 這個機型上變得流行了起來。因此,在接下來的一段時間里,其他類型的商用計算機也開始支持這個 C 編程語言以及 UNIX,這種流行趨勢最終促使成千上萬的計算機相關(guān)工作者,開始閱讀這本兩百來頁的《C 程序設(shè)計語言》。當(dāng)然,這其中自然包括了 Hello World 這個例子程序。

在八十年代以及九十年代,幾乎每一位曾在桌面軟件領(lǐng)域工作過的程序員,都曾擁有一本《C 程序設(shè)計語言》。在當(dāng)時,這本書大約售出了幾百萬本之多。

也許有很多不同的基本程序可供初學(xué)者動手嘗試,但是截至目前為止,Hello World 則是其中最為著名的一個。每一位程序員都曾記得他們的第一個 Hello World 程序,因為對他們來說,這就是一個重大事件。也許有些人還沒有意識到這一點,但是,當(dāng)一名新程序員清除完一些障礙順利抵達(dá) Hello World 時,他的內(nèi)心體驗到的不僅僅是一種成功的喜悅,更重要的是,他正在親身經(jīng)歷一個跨越歷史的時刻。

責(zé)任編輯:倪明 來源: wshouchun的博客
相關(guān)推薦

2023-10-23 09:48:00

2013-01-15 09:22:49

2019-05-20 08:11:02

淘寶個性化推薦

2018-03-26 09:39:06

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2017-12-11 17:08:01

VR

2017-04-28 12:20:08

人工智能reCAPTCHA

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2018-08-23 12:47:40

蘋果iPhone全家桶

2019-07-16 15:32:05

戴爾

2023-01-17 16:25:18

前端開發(fā)JSON

2019-12-12 09:23:29

Hello World操作系統(tǒng)函數(shù)庫

2011-09-15 17:10:41

2022-10-13 11:48:37

Web共享機制操作系統(tǒng)

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2010-08-23 09:56:09

Java性能監(jiān)控

2020-11-30 10:05:57

大數(shù)據(jù)數(shù)據(jù)開發(fā)

2020-09-15 08:35:57

TypeScript JavaScript類型

2022-11-04 08:19:18

gRPC框架項目
點贊
收藏

51CTO技術(shù)棧公眾號