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

2020-12-23 開課吧

想學編程嗎?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關焦點

  • 程序'猿'的「hello,world!」是什麼梗?
    一日,飯後突生雅興,一番磨墨擬紙,並點上了上好的檀香,頗有王羲之風範,又具顏真卿氣勢,定神片刻,潑墨揮毫,鄭重地寫下:hello world很多人不了解程式設計師的人都覺得毫無笑點,其實如果你知道大多程式設計師學編程時第一課的內容時就明白了。
  • 現代的 「Hello, World」,可不僅僅是幾行代碼而已
    但是,對於現代的程式設計師而言,什麼才是恰當的「Hello,World」?不久之前,一位客戶要求我在AS/400上用RPG編寫程序。引用羅巴切夫斯基的話來說就是:「боже мой!」(我的天哪!)雖然我不想暴露自己的年齡,但我上次用RPG編寫程序的時候,恐怕本文的大多數讀者都還沒有出生。
  • 只有170位元組,最小的64位Hello World程序這樣寫成
    /usr/bin/env nodeconsole.log("hello world")EOF$ chmod +x test.js$ ./test.jshello world  並沒有出錯,所以這裡是怎麼回事?按道理來說第一行是非法的 JS 語句,解釋器應該要報錯才對。
  • 第一個python程序 helloworld
    解釋器交互式集成開發環境IDE ---pycharm01.第一個python程序 helloworld1.pyhon1.1 python源碼是一個特殊的文本文件,可以用任何文本編譯器編輯1.2後輟後通常是.py文件2.程序的演練在桌面上新建 一個 目錄 python在python目錄下新建一個 文件 01-python-helloworld.py
  • 程式設計師一個胳膊受傷了,只能用一個手寫代碼怎麼辦?
    那天他說一隻手很不方便,我說你忍忍都過去了幾個月手好了就滿血復活了,你知道楊過離開小龍女為什麼那麼厲害麼?為啥?是不是因為有大雕在身邊?我說錯了,他和你一樣都是左手,他知道下半生基本都要依靠右手,右手練多了就厲害了,你也要多練練自己的右手。
  • 第一個HarmonyOS「Hello World」運行及代碼解析
    至於我為什麼會有JAVA環境,儘管如今大部分項目都是前後分離,理論上我也沒必要安裝JAVA,不過恰巧我要開發React Native,然後公司又是大把前後不分離的項目,得裝個JAVA保住飯碗啊!HelloWorld代碼淺析
  • 如何在Bash中編寫函數
    通過編寫函數來減少代碼的冗餘和維護。函數對程式設計師很重要,因為它們有助於減少代碼中的冗餘,從而減少了所需的維護量。例如,在以編程方式烤制麵包的假想場景中,如果你需要更改麵團醒發的用時,只要你之前使用函數,那麼你只需更改一次用時,或使用變量(在示例代碼中為 SNOOZE)或直接在處理麵團的子程序中更改用時。這樣可以節省你很多時間,因為你不必通過你的代碼庫遍歷每個可能正在醒發的麵團,更不用說擔心錯過一個。
  • 程式設計師應如何理解include
    請注意,接下來是重點:預編譯的工作非常簡單,預編譯器找到源文件中#include指定的文件,然後copy這些文件的內容並粘貼到#include這一行所在的位置。假設在源文件a.c的第一行有一句#include <stdio.h>,那麼預編譯器怎麼處理?
  • 先來理解一下C語言的Helloworld程序吧
    相信每一個學過任何程式語言的小夥伴都是從編寫出一個能夠輸出Helloworld的小程序開始的。當你能夠在一個空文本中純手打,寫出一個完整的Helloworld程序,並理解文檔中所有英語單詞、括號的含義之時,你就已經打開了編程之門,踏上了獻祭頭髮獲取力量的道路。廢話少說,我們來介紹一下Helloworld吧!
  • Go語言小書|小試牛刀,從hello world開始
    引言接著我們這本小冊子的內容,今天我們手動實現一個hello world輸出, 這是編程的慣例,用於測驗環境搭建是否簡單上手,或者是否準備好了基本的條件。代碼時間讓我們通過創建一個簡單的程序並學習如何編譯和執行它來開始我們的旅程。打開你最喜愛的文本編輯器,並編寫以下代碼:package main func main() {println("Hello World!")
  • 《你的名字》翻版劇情出現,即將上映hello,world?
    在小編尋找素材時,忽然發現了一個對學過編程的小編一個吸引的話題——「hello world」。當小編打開後,看到的居然是一部動漫?想當初還在電腦上敲著代碼的時候,看著自己的頭髮逐漸的變白,然後一根一根的掉落,小編機智地就停止了寫代碼的工作,我還沒結婚啊!脫髮算怎麼回事,結果小編卻喜歡上了自媒體寫文章這個興趣愛好,但是當小編看到hello world的時候還是會情不自禁地點了進去,看看到底是個什麼鬼?
  • 同學你會hello world嗎?給我講清楚點
    記得很清楚第一次面試阿里巴巴的時候,面試官上來讓我寫一個hello world程序當時我真的一面黑人問號的確認了三遍,面試官依舊淡定的說 是的寫完就讓我聊hello world,一個hello world聊了一個小時
  • 華為物聯網作業系統LiteOS內核教程02-HelloWorld
    填寫工程設置,需要注意一下幾點: 工程名稱和目錄中不可以有中文或者空格 SDK版本選擇最新的IoT_LINK版本,當前最新1.0.0 硬體平臺選擇STM32L431RC_BearPi 示例工程選擇hello_world_demo
  • 能把Python代碼寫得這麼優雅的都是神仙程式設計師吧!
    使用Python提升開發效率的同時,代碼的運行效率卻沒那麼高。下面將介紹幾種簡單的方法,嘗試提升代碼的可讀性、執行效率。一、優化編程慣例1)用生成式生成列表:假設我們正在編寫爬蟲,現在需要將解析到的信息生成列表。
  • RabbitMQ入門之Hello World
    插件機制:RabbitMQ提供了許多插件,以實現從多方面進行擴展,當然也可以編寫自己的插件。  帶著對RabbitMQ的初次見面,我們不妨再了解下如何簡單地使用RabbitMQ。RabbitMQ入門之Hello World   在計算機領域中,每次學習一個新事物的驚喜,往往都是伴隨著Hello World。
  • 我們可以從Java「HelloWorld」中學到什麼?
    這是每個Java程式設計師都知道的程序。它很簡單,但是簡單的開始可以導致對更複雜概念的深入理解。在這篇文章中,我將探討從這個簡單的程序中學到什麼。1.為什麼一切都從一堂課開始?Java程序是從類構建的,每個方法和欄位都必須在一個類中。這是由於它具有面向對象的功能:一切都是一個對象,它是一個類的實例。
  • 新手請進:每個Python程式設計師都應該知道的10個縮寫詞
    該安裝過程非常輕鬆,只需在命令或終端中使用一行代碼即可。以下代碼段總結了一些常用用法。想要了解有關pip工具用法的更多信息,可以訪問其官方網站:https://pip.pypa.io/en/stable/user_guide/。
  • 我一周內「克隆」了Twitter,沒用一行代碼-虎嗅網
    而且,他沒有寫一行代碼就做到了這一切。作為一名剛剛畢業的 MBA,Leytus 對應用程式有很多想法,但他缺乏軟體開發技能,而這也是未來科技創業者的常見障礙。但後來他發現了 Bubble,這是一種拖放式構建器,它的界面看起來很簡單。
  • 從易到難:編寫第一個C+程序:Hello World示例
    學習C ++編程可以簡化為: 在文本編輯器中編寫程序,並以正確的擴展名(.CPP,.C,.CP)保存 使用編譯器或在線IDE編譯程序 了解基本術語。