為什麼學習編程第一課要學習輸出"hello, world"?這是誰規定的?
這背後有什麼故事嗎?
這是一道考古題。
根據維基百科,Hello World 最早於 1972 年出現在 B 語言的手冊中,由 Kernighan 編寫:
main(){
extrn a,b,c;
putchar(a); putchar(b); putchar(c); putchar("!*n");
}
a "hell";
b "o, w";
c "orld";
amp;amp;quot;Hello, World!amp;amp;quot; program
後來,B 語言演變成了 C 語言。在此過程中,Hello World 是用來測試 C 語言的編譯器的程序之一。這個程序在 1974 年被 Kernighan 寫進了貝爾實驗室內部的 C 語言教程里,並最終於 1978 年由 Kernighan 和 Ritchie 在 The C Programming Language 這本書里公開發表。
Where does amp;amp;#x27;Hello worldamp;amp;#x27; come from?Programming in C: A Tutorial
第一個 C 語言版的 Hello World:
main( ) {
printf("hello, world");
}
(當時的 C 語言和現在的區別還是蠻大的)
1972 年,貝爾實驗室用 C 語言重寫了一遍 Unix 系統內核。於是,隨著後來 Unix 系統以及類 Unix 系統(比如 Linux)的傳播,C 語言成了世界上最常用的編程語言之一,而 Hello World 的傳統依然被保留了下來。
在我很小、剛接觸編程的時候,
老師告訴我,讓我寫下第一個程序 :HelloWorld!當時很疑惑,就問老師:為什麼要是"HelloWorld!"?老師是這麼回答的:這意味著你的程序有了生命。就在那一瞬間,愛上了編程。很多年後回想起來,覺得是一個很可愛的問題,和一個很可愛的回答。
謝謝這個答案。——————萌萌噠分割線————————居然過千贊了..小透明感覺幸福( ????? )很多人評論里說,第一個程序是其他的balabala,我覺得並不關鍵。HelloWorld是個人盡皆知的話,而它又恰巧有這麼一個溫暖的意思,讓人愛上它..這就夠了,不是嗎?希望大家能被它溫暖,愛上編程。沒有人規定。你想輸出什麼就輸出什麼。但如果連輸出都不會,別的就更不用說了。
我最早學的是logo,第一個程序是用海龜畫了個線。不是hello world,誰還管得著嘛。
以前看過一個段子,普通程序員輸出hello world, 文藝程序員輸出hello kitty,2B程序員輸出segmentation fault
實際上Brian Kernighan在BCPL的文檔中寫了第一個"hello, world"程序,後來在KR的C語言聖經中也出現過這個程序,這本書影響力可不小。
見https://stackoverflow.com/questions/602237/where-does-hello-world-come-from
至於為什麼第一個程序要輸出"hello, world",大概是出於內心對歷史的敬意吧……學coq語言第n步了也沒有教我們輸出hello world……
第一步是定義枚舉型
第二步是定義函數
第三步是計算函數
第四步是做證明
然後各路證明題劈頭蓋臉的來了(繼續學做證明題中……)
你總要找點東西來輸出
其實是擬人手法,程序一運行就好像一個新生命的誕生。然後他對著世界說:Hello,World!
那時候,你對程序的世界一無所知,甚至還沒有摸到入門的台階
你對一切都充滿好奇,大眼睛滴溜溜地打轉
你迫不及待的想要踏進去,卻又不知道該怎麼做
那個牽著你的手,緩緩邁過門檻的,也許是一個人,一本書,一個視頻,一堂課(?????????)
他(它)看著涉世未深的你,慈愛地摸摸你的頭:
小傢伙,跟這個世界打個招呼吧~
你偷偷瞥了一眼屏幕,迅速低下了頭,又含羞帶怯地打量著屏幕,小心翼翼地說:
那個,那個...
Hello,World!?(????ω????)?致敬經典啊,雖然很多人輸出的是「1225223」、「asdfad」、「qerteyyubcx」、「abcde」、「123456」、「回家鼓風機反反覆復是的吃v」。。。。
隨便敲幾下鍵盤,從守序善良到混沌邪惡一應俱全。輸出一個東西是最簡單的展示代碼作用的方式,不用加減乘除,不用循環和分枝。
我讀大學的時候,有個教授從紙帶機時代入行,他說第一次看到電腦輸出「你好世界」,感覺好神奇啊,於是就愛上這行了。這其實是一種暗示:你是這個虛擬世界的上帝。
上帝在創世紀之後第一句話是什麼?
你好,世界!這是我規定噠,快來膜拜我叭!
不如直接輸出個對象...
或者輸出:燙燙燙.或者輸出:;;;;;看看哪個程序員以後還漏分號或者輸出:PHP是世界上最好的語言,這樣就沒爭頭了
這行代碼給小時候的我一種自己能寫出一個真正會說hello world的ai的錯覺。。。
在我沒有入坑oi,不會寫cpp,用計算機只會追番和用office的時候
當做故事聽說了學編程的人會用程序輸出,他們讓程序輸出的第一句話是「你好,世界」
當時我的腦海里是這樣的。
一個程序逐漸被造物主完善了身軀,睜開眼睛,看見了自己身處計算機中,用cpu的處理速度打量了一遍外面的人類,低吟「你好,世界」滿滿的中二啊,帥爆了,頓時特別佩服這個創意和程序員們。來到新的地盤,你不寫一句"某某到此一游"么。
或者說:「初次見面,請多指教」
其實沒有強制規定,但是這樣的最簡單的程序跑一下是有實際意義的:可以驗證環境安裝基本正確,基本庫OK,I/O正確,編譯器連接器工作正常,IDE基本操作,接下來就可以真正幹活了
cout&<&<"excited!"&<&
沒有這個規定,我第一次輸出的是asdf,也沒見有人怎麼地我。
推薦閱讀:
※定義了char**p,為什麼能用p[i][j]的形式?p又不是二維數組?
※int a=9;printf("%d,%d",a,a++)?
※在c語言中寫出變數=1./0.是啥意思?
※有哪些比譚浩強主編的《C 語言程序設計(第四版)》能讓人更快學會 C 語言,且適合新手的書籍?
※有C語言基礎,想把C語言學到極致,有什麼比較好的書籍推薦么?