Erlang 之父去世,他留给程序员两点忠告
??? 整理 | 伍杏玲
??? 出品 | CSDN(ID:CSDNnews)
北京時(shí)間 4月20日,據(jù)Erlang Solutions、Erlang Factories的創(chuàng)始人Francesco Cesarini的推特稱,Erlang之父Joe Armstrong于4月20日去世,享年68歲。
Francesco懷念道:“盡管他不在了,但他的工作已經(jīng)打下的基礎(chǔ),將對(duì)未來幾代人都有用的。”
Joe Armstrong 是誰?
1950年12月27日,Joe Armstrong出生于英國(guó)伯恩茅斯。
雖然Joe Armstrong 17歲時(shí)開始接觸到Fortran編程,但他從本科直到博士念的是物理學(xué),后來因?yàn)榉e蓄用完無法完成學(xué)業(yè),而轉(zhuǎn)向計(jì)算機(jī)科學(xué)。
后來為了謀生,他成為Donald Michie(英國(guó)人工智能領(lǐng)域奠基人之一)的研究員。在此期間,他撰寫了一些有關(guān)機(jī)器人視覺的論文。
后來政府削減了對(duì)人工智能的研究經(jīng)費(fèi),Armstrong又回到了物理學(xué)領(lǐng)域,從事5年多與物理學(xué)編程相關(guān)的工作。開始時(shí)他在歐洲非相干散射科學(xué)協(xié)會(huì)(EISCAT)工作,后來又到了瑞典空間研究中心工作,協(xié)助開發(fā)應(yīng)用程序系統(tǒng)。最后Armstrong加入愛立信計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室,在那發(fā)明Erlang,成為容錯(cuò)系統(tǒng)開發(fā)領(lǐng)域的世界級(jí)專家。
并在2003 年,Armstrong獲得瑞典皇家工學(xué)院(KTH)的計(jì)算機(jī)科學(xué)博士學(xué)位,發(fā)表的博士論文《Making reliable distributed systems in the presence of software errors》對(duì)研究并發(fā)有不菲的參考價(jià)值。
在念本科時(shí),Armstrong有件趣事:他那時(shí)已特別喜歡編程和善于調(diào)試程序。如果別人程序出了問題,他就會(huì)以一杯、兩杯、三杯啤酒的“收費(fèi)”去幫助同學(xué)調(diào)試程序。
為什么他的貢獻(xiàn)如此重要?
Armstrong發(fā)明的Erlang在全球范圍內(nèi)是個(gè)小眾語言,根據(jù)TIOBE發(fā)布的最新語言排行榜,Erlang排名第47位,市場(chǎng)份額占有僅為0.177%。它不是像Java、C++是面向?qū)ο笳Z言的,它是函數(shù)編程語言。
早在1986年,Armstrong開始編寫Erlang,當(dāng)時(shí)Erlang設(shè)計(jì)初衷針對(duì)的軟件是類似于電話交換機(jī)那樣的高可用性、高可靠性系統(tǒng)。并在1998年,Erlang作為開源項(xiàng)目發(fā)布。
當(dāng)程序員們開始努力應(yīng)對(duì)多核系統(tǒng)未來的發(fā)展趨勢(shì)時(shí),并發(fā)性引起了他們的注意。而Erlang正是擁有強(qiáng)大的并行處理能力和容錯(cuò)機(jī)制,并成就了可靠性達(dá)到99.9999999%的目前世界上最復(fù)雜的 ATM 交換機(jī)。
對(duì)于編程語言,Armstrong認(rèn)為編程語言必須簡(jiǎn)單好用,才能便于開發(fā)者去學(xué)。
老碼農(nóng)的兩條忠告
△Armstrong在SDCC 2016中國(guó)軟件開發(fā)者大會(huì)
Armstrong曾在CSDN主辦的“SDCC 2016中國(guó)軟件開發(fā)者大會(huì)”上,幽默地分享了他編程20年來對(duì)軟件開發(fā)的一些思考,他說:“人們總認(rèn)為產(chǎn)品開發(fā)流程是這樣:Specify→Build→Test→Sell→$$$,然而實(shí)際上卻是這樣的:Start→???→Product”。
為什么他會(huì)這么說呢?
Armstrong曾在《編程人生》中分享過他在編程習(xí)慣上有了兩個(gè)改變,值得我們開發(fā)者借鑒。
第一:先思考再編程。
他在編程的20年都犯著一個(gè)錯(cuò):在年輕的時(shí)候,會(huì)不停地寫程序,直到完成。
等寫完后他會(huì)突然發(fā)現(xiàn):“啊!搞錯(cuò)了!”等到重新編寫程序,會(huì)再次發(fā)現(xiàn):“噢,程序是錯(cuò)的。”于是又重新編寫。
他于是開始思考改變:“先不要?jiǎng)邮謱懘a,把這些東西都想好,這樣做不是很好嗎?”
第二:不要在疲憊時(shí)寫代碼。
在年輕的時(shí)候,他會(huì)通宵地寫程序,例如一個(gè)小時(shí)接著一個(gè)小時(shí)不休息,不停地編寫代碼,一口氣寫到凌晨4點(diǎn)鐘。即使身體狀況不好他也堅(jiān)持不懈,因?yàn)樗尨a能夠跑起來。
后來他發(fā)現(xiàn)程序員在疲憊的時(shí)候編寫的程序都是垃圾,第二天就要把它們廢棄掉。他認(rèn)為真正好的代碼是程序員完全進(jìn)入狀態(tài)的時(shí)候編寫,人甚至沒有在考慮程序,只是很放松地坐在那里,輸入代碼,這樣的代碼會(huì)很不錯(cuò)。
他建議如果程序員覺得自己狀態(tài)不對(duì),“不能再寫了。”停下來,干點(diǎn)別的。
在開發(fā)者大會(huì)上,Armstrong預(yù)言在未來二十年,所有與關(guān)鍵性能相關(guān)的軟件將與硬件相融合。
可惜Armstrong無法親自參與這當(dāng)中來,我們僅在此感謝如此熱愛編程的Joe Armstrong,一生為編程所作出的貢獻(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的Erlang 之父去世,他留给程序员两点忠告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fedora Workstation 3
- 下一篇: 作为程序员必须要掌握的三种语言