Erlang 之父去世,他留給程式設計師兩點忠告
整理 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
北京時間 4月20日,據Erlang Solutions、Erlang Factories的創始人Francesco Cesarini的推特稱,Erlang之父Joe Armstrong於4月20日去世,享年68歲。
Francesco懷念道:“儘管他不在了,但他的工作已經打下的基礎,將對未來幾代人都有用的。”

Joe Armstrong 是誰?
1950年12月27日,Joe Armstrong出生於英國伯恩茅斯。
雖然Joe Armstrong 17歲時開始接觸到Fortran程式設計,但他從本科直到博士唸的是物理學,後來因為積蓄用完無法完成學業,而轉向電腦科學。
後來為了謀生,他成為Donald Michie(英國人工智慧領域奠基人之一)的研究員。在此期間,他撰寫了一些有關機器人視覺的論文。
後來政府削減了對人工智慧的研究經費,Armstrong又回到了物理學領域,從事5年多與物理學程式設計相關的工作。開始時他在歐洲非相干散射科學協會(EISCAT)工作,後來又到了瑞典空間研究中心工作,協助開發應用程式系統。最後Armstrong加入愛立信電腦科學實驗室,在那發明Erlang,成為容錯系統開發領域的世界級專家。
並在2003 年,Armstrong獲得瑞典皇家工學院(KTH)的電腦科學博士學位,發表的博士論文《Making reliable distributed systems in the presence of software errors》對研究併發有不菲的參考價值。
在念本科時,Armstrong有件趣事:他那時已特別喜歡程式設計和善於除錯程式。如果別人程式出了問題,他就會以一杯、兩杯、三杯啤酒的“收費”去幫助同學除錯程式。
為什麼他的貢獻如此重要?
Armstrong發明的Erlang在全球範圍內是個小眾語言,根據TIOBE釋出的最新語言排行榜,Erlang排名第47位,市場份額佔有僅為0.177%。它不是像Java、C++是面嚮物件語言的,它是函式程式語言。
早在1986年,Armstrong開始編寫Erlang,當時Erlang設計初衷針對的軟體是類似於電話交換機那樣的高可用性、高可靠性系統。並在1998年,Erlang作為開源專案釋出。
當程式設計師們開始努力應對多核系統未來的發展趨勢時,併發性引起了他們的注意。而Erlang正是擁有強大的並行處理能力和容錯機制,併成就了可靠性達到99.9999999%的目前世界上最複雜的 ATM 交換機。
對於程式語言,Armstrong認為程式語言必須簡單好用,才能便於開發者去學。
老碼農的兩條忠告
△Armstrong在SDCC 2016中國軟體開發者大會
Armstrong曾在CSDN主辦的“ SDCC 2016中國軟體開發者大會 ”上,幽默地分享了他程式設計20年來對軟體開發的一些思考,他說:“人們總認為產品開發流程是這樣:Specify→Build→Test→Sell→$$$,然而實際上卻是這樣的:Start→???→Product”。
為什麼他會這麼說呢?
Armstrong曾在《程式設計人生》中分享過他在程式設計習慣上有了兩個改變,值得我們開發者借鑑。
第一:先思考再程式設計。
他在程式設計的20年都犯著一個錯:在年輕的時候,會不停地寫程式,直到完成。
等寫完後他會突然發現:“啊!搞錯了!”等到重新編寫程式,會再次發現:“噢,程式是錯的。”於是又重新編寫。
他於是開始思考改變:“先不要動手寫程式碼,把這些東西都想好,這樣做不是很好嗎?”
第二:不要在疲憊時寫程式碼。
在年輕的時候,他會通宵地寫程式,例如一個小時接著一個小時不休息,不停地編寫程式碼,一口氣寫到凌晨4點鐘。即使身體狀況不好他也堅持不懈,因為他要讓程式碼能夠跑起來。
後來他發現程式設計師在疲憊的時候編寫的程式都是垃圾,第二天就要把它們廢棄掉。他認為真正好的程式碼是程式設計師完全進入狀態的時候編寫,人甚至沒有在考慮程式,只是很放鬆地坐在那裡,輸入程式碼,這樣的程式碼會很不錯。
他建議如果程式設計師覺得自己狀態不對,“不能再寫了。”停下來,乾點別的。
在開發者大會上,Armstrong預言在未來二十年,所有與關鍵效能相關的軟體將與硬體相融合。
可惜Armstrong無法親自參與這當中來,我們僅在此感謝如此熱愛程式設計的Joe Armstrong,一生為程式設計所作出的貢獻。
參考資料:
Joe Armstrong:關於Erlang,有很多東西我想改變
程式除錯與啤酒——Erlang之父Joe Armstrong訪談