国产一区二区精品久久_蜜桃狠狠狠狠狠狠狠狠狠_午夜视频精品_激情都市一区二区

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Joe Armstrong:關于并行編程和Erlang的十個問題

Joe Armstrong:關于并行編程和Erlang的十個問題
2010-01-13 23:13:46  作者:  來源:
第一部分:關于并行編程的通用問題

1)
Michael:我們進入了多核時代,你認為并行計算最終會成為主流嗎?或者這僅僅是一個階段并且很快對并行編程感興趣的人將(又一次)變成高性能社區的一員?
Joe:是的,絕對主流——我們討論的是雙核時性能提高兩倍而4核時性能提高4倍。我曾經有一個在32核的機器上跑的程序,性能提高了18倍。注意這是18倍——我們習慣于通過重寫部分程序代碼來提高5%~10%的性能,卻想不到400%或1800%——這是所有軟件的通病。

2)
Michael:在網絡上,一時間對共享內存編程還是消息傳遞編程是并行編程更好的方式展開了激烈的討論。對此你的意見是什么?
Joe:共享內存系統很難理解并保證正確,特別是當錯誤出現的時候。不出錯就不錯了,當出錯時則根本無法繼續搞。當一個程序拿了一個鎖,并且把共享內存搞的亂七八糟,然后崩潰了,其他進程怎么知道它到底在搞什么東東,更別說幫忙搞定那些錯誤了。
事務內存和純凈的消息傳遞系統不用考慮上述的任何問題。

3)
Michael:對你而言,并行編程在目前或者過去的幾年里最令人興奮的發展和革新是什么?
Joe:P2P架構,分布式哈希表,planet lab等全球伸縮的系統集成。
類似于bit torrent的東西正在摧毀傳統工業,就像1770年多軸紡織機摧毀了家庭紡織機工業一樣,bit torrent正在歷史記錄上做同樣的事情。這不是是否發生的問題,而是何時發生的問題。

4)
Michael:并行編程的未來在哪里?“銀彈”即將到來嗎?
Joe:是的——純凈的消息傳遞基礎架構將解決很多問題(例如amazon簡單查詢服務)。這回到了Paul Morisson的基于流的編程模型。

5)
Michael:目前最緊迫的一個問題是并行編程仍然很難,并且沒有它的順序編程對手們高產。對你而言有什么方式改變這一點嗎?
Joe:這并不太難——這很難是因為目前占據統治地位的編程模型是鎖、線程和共享內存——現在它們是很難的。純凈的消息傳遞系統對編程實現和推理很容易。
世界是并行的——我們是并行的。

第二部分:關于Erlang

6)
Michael:與其他并行編程系統相比較,Erlang有什么獨特的優勢和弱點?你希望在哪些方向改進它?
Joe:優勢是Erlang是為容錯系統而設計的,所以在軟件和硬件出錯時它能很好的降級。它認真對待出錯。進程和錯誤處理是語言定義的一部分而不是操作系統所提供的。
弱點是分布式Erlang的安全性是要么全有要么全無的。擁有不同級別的安全性和能力或者基于信任的安全模型會更好。

7)
Michael:如果你可以再次從零開始設計Erlang,你會做哪些不同的事情?
Joe:
1,讓模塊和代碼處理更高級一些,添加自省功能
2,為協議的斷言屬性添加一層契約
3,在編程語言里讓協議成為頭等公民
4,為分布式計算加一個信任/能力層
5,為弱連接的分布式系統分層。分布式Erlang只是為了擁有強大安全性的類集群計算。

8)
Michael:有沒有什么特殊的工具推薦給大家來方便Erlang編程?IDE?編輯器?調試器?調優器?改錯工具?或其他什么的?
Joe:沒有。編譯器獨自擁有95%的fun。這樣人們對他們的IDE十分篤信。我使用emacs和xterm。有些人熱衷于一些東西,但我本人不怎么感興趣。

9)
Michael:請給Erlang新手們分享一些小建議!你該怎么入門?有什么書?教程?網絡資源?提問最好的地方在哪里?
Joe:
書籍——(無恥的插入):讀我的新書Programming Erlang。
教程:www.trapexit.org
發布:www.erlang.org
提問:erlang郵件列表(登錄www.erlang.org)

10)
Michael:你在Erlang程序里遇到的最糟糕的錯誤是什么?
Joe:沒有文檔的程序——我討厭人們說“讀代碼”——代碼是問題的解決方案——通過讀代碼我不得不猜測問題是什么,并且這很可能出錯。我喜歡別人告訴我問題是什么,而不是靠猜。
所以最糟糕的錯誤是當我寫在程序里一個長達多頁的注釋來解釋一些特殊的技巧點時,結果發現在稍后的版本中別人刪除了整個注釋。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢