為什麼程式設計師編寫的第一行代碼是Hello,World

2021-02-15 開課吧訂閱號

想學編程嗎?你現在可以去一個網站,在那裡你可以用程式語言Python運行代碼。現在類型這一行…

點擊綠色「運行」按鈕在頁面的頂部附近。

瞬間: 你將看到計算機執行你的命令和說你好,世界!它甚至會是黑白的等寬文本,這樣你就會覺得自己像個合格的黑客。

祝賀您: 您剛剛接受了軟體領域最古老的傳統之一。

幾乎每當一個新手開始編寫代碼時——甚至當一個經驗豐富的程式設計師決定學習一門新語言時——他們做的第一件事就是讓計算機說「你好,世界」。每一門手藝都有自己的學問,而「你好,世界」是軟體文化準則的關鍵部分。事實上,我認為它闡明了編碼文化的一些核心方面——好的、壞的和醜陋的。

沒有人真正知道是誰首先命令計算機說「你好,世界!」 但它的聲名鵲起要追溯到1972年,當時計算機科學家布萊恩·克尼根(Brian Kernighan)正在為B語言編寫一本手冊。他想演示B將小塊文本片段組裝起來的能力。

克尼根最近看到了「一隻小雞從蛋裡出來,它會說你好,世界,」當我打電話給他詢問這件事時,他這樣告訴我。這很合他的意,所以他就用了這個。不久,指南手冊的作者開始在克尼根的覺醒中衝浪。

是什麼讓「你好,世界」如此流行?它在一定程度上是實用的:它是一種快速的方法,可以讓您了解在編碼語言中工作是什麼樣的,以及您是否喜歡它的語法。看一眼Python的「Hello, World」,您就會發現它的簡潔和輕鬆,而Java的「Hello, World」是一個六線的毛球:哎喲。(如果你真的想耍酷,你可以在這裡看到用28種不同語言編寫的示例。)

但「你好,世界」如此受歡迎的真正原因是它純粹的隱喻。它直接觸及了編程的樂趣,這是一種非常普羅米修斯式的東西。

畢竟,編寫和運行代碼常常感覺像一種魔術。你在創造一個生命形態,一個傀儡,一個會走路和說話的東西,好像它是活著的。2006年,Facebook的編程人員創建了這個新聞反饋,並發布了第一個實驗性的帖子,其中一個開玩笑說,「手指動起來就像弗蘭肯斯坦(Frankenstein)時刻。」編寫軟體看起來更像是巫術,因為,嗯,你所做的一切只是說出文字。弄錯了,什麼也不會發生。正確地說出它們,惰性物質——矽——突然服從了你的命令。編程是一種「告訴石頭該怎麼想」的藝術,就像程式設計師艾琳·斯普雷克蘭(ErinSpiceland)曾經嘲諷的那樣。

即使是我見過的最疲憊的職業後期程式設計師,仍然例行地對他們工作的怪異本質感到驚奇。「幾百年前,在我的家鄉新英格蘭,如果準確地描述我的職業,我會被燒死在火刑柱上,」程式設計師丹尼·希利斯(DannyHillis)曾經這樣寫道。黑客們對此很有幽默感,而且毫無疑問,他們是文字遊戲的忠實粉絲,他們長期以來都傾向於這種邏輯精神。當麻省理工學院的計算機科學家在60年代發明有用的在後臺運行的例程時,他們稱之為「守護進程」。

正如每個人在第一次「你好,世界」中發現的那樣,編碼給人一種驚人的強大的控制感和掌控感。機器精確而順從地按照你的指令操作。我想這就是為什麼許多程式設計師在兒童或青少年時期就開始沉迷於編程。在孩子的日常生活中,他們的權威微乎其微;在鍵盤上,它是total。

編碼給人一種非常強大的控制感和掌控感。

編碼給人一種非常強大的控制感和掌控感。那有一種麻醉的吸引力。「當你是個孩子的時候,這種感覺很狂野,」舊金山黑客空間Noisebridge的一名程式設計師告訴我。「這就像你有一個小宇宙要控制,你創造。這種快樂,以及伴隨而來的創意衝擊,永遠不會消失,這就是為什麼那麼多程式設計師會花幾個小時或幾天的時間進入狀態,並且討厭再出來工作。正如著名的全棧開發人員Sarah Drasner曾經告訴我的那樣:「這一定是與多巴胺有關。」「我不會為了編程而去參加派對。」

它會導致史詩般的傲慢。嘿,如果你很擅長指揮電腦,難道你就不能指揮……任何事情嗎?軟體開發人員,程式設計師和插接板創始人MaciejCegłowski觀察,經常「開始相信,他們有一個獨特的能力來理解任何類型的系統,從第一原則,未經訓練,由於他們卓越的分析能力。在人工構建的軟體設計世界中取得成功會助長一種危險的信心。」

在今天的矽谷,人們一直可以看到那種輕鬆的過度自信,創始人堅稱他們的新玩意將「徹底改變」我們的生活。其中一些當然會,但它們通常會帶來一些嚴重的市民副作用。優步和上門服務優化了叫車和訂餐,但他們把工作變成了瘋狂的低薪工作。Airbnb幫助遊客走出困境,但也激勵房東不再把房子租給當地居民。Facebook的新聞動態讓我們了解到朋友的情況,同時也為不滿者提供了一種非常有效的媒介,讓他們在Facebook中注入錯誤的內容。

我並不是要批評編程和程式設計師。我遇到過的許多真正偉大的藝術家都對自己的藝術極限非常謙虛和謹慎。我自己也做了足夠多的業餘編程,以尊重編寫軟體是多麼純粹的樂趣,以及當有人創造了一個真正有用的應用程式時,它是多麼有價值。

但很明顯,飛船的浪漫會讓人陶醉,我們可能要小心這一點。近年來,有幾位程式設計師令人信服地主張,計算機科學專業的學生應該多學習歷史、藝術、文學或人類學課程。這些都是了解社會混亂、灰暗本質的好方法。你會了解到,文化、政治和公民生活都是複雜的系統,它們很少會像你期望的那樣運轉。

這是一個值得我們說「你好」的世界。

數位化人才教育平臺開課吧已獲5.5億獨立融資,領跑新職業教育賽道,現已累積學員超過400萬。我們整合了全球知名度IT和網際網路企業一線師資,提供Java,Web前端,數據分析,Python,人工智慧,產品運營,智能物聯等技術課程。您將與國內外知名院校的畢業生及各大廠的職場精英,共同探索計算機科學帶來的世界變革。



相關焦點

  • 只有170位元組,最小的64位Hello World程序這樣寫成
    $ cat <<EOF > test.jsconsole.log("hello world")EOF$ chmod +x test.js$ ./test.jshello world並沒有出錯,所以這裡是怎麼回事?按道理來說第一行是非法的 JS 語句,解釋器應該要報錯才對。
  • 25種著名程式語言編寫您的第一個程序Hello World
    」 ——每個程式設計師在開始學習任何程式語言時編寫的第一個程序。「Hello World !」被認為是幾乎所有計算機語言中最簡單的程序之一,它向用戶輸出或顯示「Hello, World !」。它通常是用於工作程序的程式語言的基本語法的範例,用來向入門程式設計師介紹程式語言。從本文中,您將學習如何用25種不同的著名程式語言編寫您的第一個程序——「Hello World !」程序。
  • 我在華為鴻蒙上編寫的第一個 Hello World!
    例如:在app下新增業務my_first_app,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,具體規劃目錄結構如下:.└── BUILD.gn2.編寫業務代碼。在hello_world.c中新建業務入口函數HelloWorld,並實現業務邏輯。並在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業務。
  • C語言中「hello world」程序的詳解
    word」它是C語言中最簡單的程序但不能因此而小看它幾乎任何一門程式語言的入門都是從這個簡單「hello world」程序開始的首先看第一行代碼>的縮寫,表示mian()函數的返回值是一個整型,main()函數是主函數,編譯運行時就是運行main中的函數,一個程序中有且僅有一個主函數,{}中包括的是代碼,C語言中所有的代碼都被包括在大括號裡第三行代碼 printf("hello
  • 入門級的HelloWorld經歷了哪些過程
    編寫 Hello World        編寫 Hello World,命名為 hello.c#include <stdio.h>int main(){ printf("Hello world\r\n"); return 0;}編譯和連結
  • CocosCreator3D插件教程(1):hello-world
    本篇文章手把手帶你,跟著我3步搞定,不需要編寫一行代碼,2分鐘輕鬆入門creator3d插件。1. 創建插件項目我們需要先下載Cocos Dashboard,然後在Dashboard中下載creator3d,這裡我使用的是v1.2.0:新建並打開一個creator3d空項目,然後找到項目的packages目錄,如下圖所示新建對應的文件和目錄:
  • 逆向工廠(一):從hello world開始
    Java首先將原始碼通過編譯器編譯成.class類型文件(字節碼),這是java自定義的一種類型,只能由JAVA虛擬機(JVM)識別。程序運行時JVM從.class文件中讀一行解釋執行一行。六、從hello world說起為了讓大家直觀地了解逆向的過程,我們就從大家最初學習編程時的hello world程序開始講解:#include <stdio.h>void main() { printf("hello world!
  • 從Hello World說程序運行機制
    開篇學習任何一門程式語言,都會從hello world 開始。對於一門從未接觸過的語言,在短時間內我們都能用這種語言寫出它的hello world。然而,對於hello world 這個簡單程序的內部運行機制,我相信還有很多人都不是很清楚。hello world 這些信息是如何通顯示器過顯示的?cpu執行的代碼和程序中我們寫的的代碼肯定不一樣,她是什麼樣子的?又是如何從我們寫的代碼變成cpu能執行的代碼的?程序運行時代碼是在什麼地方?她們是如何組織的?程序中的變量存儲在什麼地方?函數調用是怎樣是現的?
  • 編寫你的第一個C++程序:Hello World示例
    來自:Linux迷連結:https://www.linuxmi.com/c-hello-world.html本文C++編程學習可以簡化為
  • Windows 網絡編程:驅動程序之 Hello World
    下面來編寫一個簡單的、與設備無關的驅動程序,名為HelloWorld。編寫驅動不再依賴VC6的開發環境,而是在記事本或任意一款文本編輯器中編寫代碼,新建一個文件為helloworld.c的C源碼文件。代碼如下:
  • 1. html概述和基本結構 - html 的 helloworld
    meta charset="UTF-8">        <title>網頁標題</title>    </head>    <body>          網頁顯示內容    </body></html>第一行是文檔聲明
  • 程式設計師的修行之路,寫完Hello world之後該做什麼?
    屏幕上出現Hello world之後,C++程式設計師的修行之路就此開始。史蒂芬·普拉塔的《C++ Primer Plus》就是C++入門圖書中的經典,這本暢銷近40年,堪稱C++程式設計師的「引路人」。從第一版出版至今已經升級到了第六版,作者堅持初心——致力於編寫一本指導性強、條理清晰而且有用的C語言教程。所以,書中大量完整的、可運行的程序及詳細的注釋有助於理解代碼和概念。
  • 「Hello World」
    學習一門新的語言,我們寫的一行代碼一般都是從「Hello World」開始的,你知道這 10 種語言的 Hello World 嗎?下面我們就一一看下他們都是怎麼寫的。Hello WorldPython下載安裝 Python 3.x,創建文件 hello.py,代碼如下:print("Hello, World!")
  • Hello World 的真正意義是什麼?
    還記得剛接觸編程的時候,寫第一個hellow word的興奮感嗎?Hello World,幾乎是程序猿學習各種語言的第一個程序。編寫Hello,World程序已成為編程界的一種傳統,然而與許多傳統一樣,很多人雖然這麼做卻沒有意識到其中真正的目的或價值。因此就有人產生了一個腦洞,能不能把 Hello World 用所有程式語言都寫一遍。
  • 用 50 種程式語言寫「Hello,World!」
    對很多人來說,每當學習一門新的程式語言,寫下的第一行代碼可能都是「Hello,World!「。因此,」Hello,World!" 已經成為一段經典程序。在職業生涯中,所有程式設計師都至少完成過一段「Hello,World!" 程序。在成長中,程式設計師通常會使用多種程式語言,大部分程式設計師甚至實現過十幾種」Hello,World!」版本。
  • 我在華為鴻蒙上編寫的第一個 Hello World!那些說鴻蒙是PPT的可以閉嘴了!
    例如:在app下新增業務my_first_app,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,具體規劃目錄結構如下:.└── BUILD.gn2.編寫業務代碼。在hello_world.c中新建業務入口函數HelloWorld,並實現業務邏輯。並在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業務。
  • 「Hello World」居然有這麼鬼畜的打開方式?!
    Olmstead發明該語言近兩年後Malbolge才有的hello world代碼。以下是在Malbolge中列印『Hello World!』的代碼片段。(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?
  • Flask 入門系列教程 01--Hello world
    文 | Echo  來源 | 微信公眾號 Qtest之道Flask是一個Python編寫的 Web 微框架,使用python編寫,基於WerkzeugWSGI工具箱默認啟動埠是5000,在地址欄輸入:http://127.0.0.1:5000/,就調用了hello_world方法:到這裡一個簡單的flask應用就運行成功了,是不是特別簡單。下面我們深入一點,使用模板文件,併集成bootstrap樣式管理,來生成一個帶有背景的hello word頁面。
  • 用 50 種程式語言寫「Hello,World!」程序
    對很多人來說,每當學習一門新的程式語言,寫下的第一行代碼可能都是「Hello,World!「。因此,」Hello,World!" 已經成為一段經典程序。在職業生涯中,所有程式設計師都至少完成過一段「Hello,World!" 程序。
  • 【Android】HelloWorld
    ;    }}作為Android程序開發者,有沒有想過既然Android手機能夠運行Java編寫的程序,那能不能運行Java編寫的HelloWorld程序呢???Wocall!!!什麼GUI!!!Android程序不是從Application或者MainActivity開始運行的嗎!!!