酒罷問君三語

2021-08-07 21:59:31 字數 903 閱讀 1224

你為什麼要開發erlang?

armstrong博士:純屬巧合。我本來沒打算發明一門新的程式語言。當時,我想找一種更好的方式來編寫電信交換控制軟體。我先試了試prolog。prolog是一門絕妙的語言,但它無法完全滿足我的需要,既然如此,我就開始瞎倒騰prolog。我琢磨著:「如果改變一下prolog的程式設計方式,那會怎樣?」於是,我寫了個prolog的元直譯器,給它加上了並行程序,還加上了錯誤處理機制,諸如此類。就這樣,過了一段時間,我給這些新增加的變化起了個名字——erlang,一門新語言就這麼誕生了。之後,越來越多的人加入這個專案,這門語言也逐漸發展起來。我們想出了編譯它的方法,加入了更多東西,獲得了更多使用者……

你最喜歡它哪一點呢?

armstrong博士:我最喜歡它的錯誤處理、執行時**公升級機制,還有bit-level模式匹配。錯誤處理是這門語言最不為人所知的部分,也是與其他語言差別最大的部分。erlang的「非防禦」程式設計和「就讓它崩潰」這一套概念,既是它的獨門絕學,也是它與傳統方法截然相反之處。不過,這樣做的確能編出簡潔而漂亮的程式。

如果能讓時光倒流,你最想改變哪項特性?

armstrong博士:這問題很難,我可能會在不同時間給出不同答案。為這門語言新增一些移動特性應該不錯,這樣我們就能通過移動通訊網路傳送計算結果。我們可以用庫**來做這件事,但它並不被語言本身所支援。我現在想,如果追本溯源,把prolog式的謂詞邏輯加入erlang,產生一種謂詞邏輯和訊息傳遞的全新組合,那想必會十分美妙。

還有不少小改動也是我想做的,比如說,加入雜湊對映、高階模組,等等。要是推倒重來,我可能會更多地把心思花在各項程式設計事務的協調上,比如說,如何運作有大量**的大型程式設計專案——如何管理**版本、如何搜尋想要的東西、各種事物如何演化。當程

序員編寫了大量**之後,他的任務就不再是編寫新**,而是準確找到現有**,並把現有**整合起來。因此,搜尋和協調就變得日漸重要。