跳至主要內容
YIP NEWS
YIP NEWS
生活 美食生活

10月18日 刊出

讓 Hello World 優雅地跑起來,跟你第一次煎出一顆完整的蛋,是同一種心情

開發者用一支動畫讓 Hello World 優雅跑起來,我們把這件事翻譯成廚房裡第一次開火的滋味故事。

刊出 (台北時間) 閱讀約 3 分鐘

先說事件。開發者 Sunrisepeak 在 V2EX 發文分享,他以「解決 Hello World 問題」為視角,把自己圍繞 C++ Modules 原生開發做的幾個開源基礎設施專案串成一支創意動畫影片。他說 C++ Modules 正處於過渡期,工具鏈、包管理、構建系統、智慧提示各有一堆問題,而他的 MC++ 專案羣就是要把這些一一擋掉,讓一個最簡單的程式能乾乾淨淨地跑起來。因為專案都偏底層,一下說不清楚,他才想到用 Hello World 當切入點,從整體視角介紹這些工具各自解了什麼題。

工程師的世界我們不全懂,但「讓最簡單的一件事順利完成」這件事,廚房裡的人太熟了。

你還記得自己第一次開火嗎。多半也是一顆蛋。油熱了沒、鍋夠不夠平、火會不會太大,每一個環節都可能讓那顆蛋在鍋裡散成一攤。蛋煎得漂亮的人,不是手藝多神奇,是背後那些看不見的東西先被照顧好了:鍋燒夠熱才下油,油紋一出現才打蛋,蛋下了鍋就忍住不去動它。Hello World 之於程式,就像那顆蛋之於廚房,它是入門的儀式,也是檢驗整個環境通不通的最小單位。工具鏈沒設好,一行字印不出來;鍋沒熱好,一顆蛋煎不完整。

那位開發者做的事,說白了就是替別人把爐臺先架好。工具鏈像爐具與瓦斯,包管理像超市貨架上分好類的食材,構建系統像食譜的步驟順序,智慧提示則像站在旁邊提醒你「鹽放過了」的那個人。這些東西平時沒人感謝,可少一樣,那顆蛋就煎不漂亮。他的幾個開源專案分散在各處,不好一眼說明,所以他用一支動畫把故事串起來,這跟家裡那本被折角的食譜是同一個道理:零散的經驗,總要有人把它們裝訂成冊,後來的人才好上手。這一點,我們在廚房裡那本被折角的食譜收藏故事裡也聊過。

Hello World 這個詞本身也有它的味道。幾十年來,幾乎每個學寫程式的人,敲下的第一行字都是跟世界打招呼。廚房裡的版本不太一樣,但精神很像:你第一次替家人煮出一鍋白飯,飯匙掀開鍋蓋那一刻,米香混著蒸汽撲上臉,那鍋飯就是你的 Hello World。它不難,但它證明了一件重要的事,這條路,走得通。

之後的一切都是從那裡長出來的。飯會煮了,才敢燉湯;湯燉得住了,才開始想火候的層次。程式也是,一行字印出來了,才往下走。而那些願意花時間把爐臺架好、讓後來的人第一顆蛋就煎得完整的人,不管是寫工具的開發者,還是家裡那個先把鍋燒熱才叫你打蛋的長輩,都值得一句謝謝。

下次你在廚房卡關,別先怪自己手藝。回頭看看爐具、看看鍋、看看步驟,很多時候,問題不在你,在於環境還沒被照顧好。把環境理順了,蛋自然完整,那句 Hello World 自然就印出來了。