想學編程嗎?
你現在可以去一個網站,在那裡你可以用程式語言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中注入錯誤的內容。
我並不是要批評編程和程式設計師。我遇到過的許多真正偉大的藝術家都對自己的藝術極限非常謙虛和謹慎。我自己也做了足夠多的業餘編程,以尊重編寫軟體是多麼純粹的樂趣,以及當有人創造了一個真正有用的應用程式時,它是多麼有價值。
但很明顯,飛船的浪漫會讓人陶醉,我們可能要小心這一點。近年來,有幾位程式設計師令人信服地主張,計算機科學專業的學生應該多學習歷史、藝術、文學或人類學課程。這些都是了解社會混亂、灰暗本質的好方法。你會了解到,文化、政治和公民生活都是複雜的系統,它們很少會像你期望的那樣運轉。
這是一個值得我們說「你好」的世界。