我的雲端生活網 - Life+

Tuesday, November 3, 2009

用Erlang做個文書編輯器

11月1日在Erlang Programming論壇發起一陣討論,談到用Erlang寫文字編輯器的疑問(見1.) 。Ted問到,據說Erlang是分散處理及容錯都很好的語言,那麼如果寫文字編輯器,有什麼並行方面的好處?Mats說,如果有分散處理能力,很好,他常在寫東西到一半必須把半成品備份,這樣可以保留他許多編輯的狀態。

Jayson回答,Erlang雖然不錯,但是講到字串處理真是麻煩透了。倒不如使用JRuby或Clojure之類,建立在Java基礎上的語言。接著,Erlang的發明人Joe答覆了,他指出Erlang做列式的資料處理真是超快的。文字編輯器所需要的文字處理,那些在C++看成string的東西,在Erlang只要把它看成list就做得很棒了。他還說,用C寫文字編輯器才是痛苦的事。最麻煩的undo功能,C語言寫起來要擔心stack中儲存的狀態有沒有改掉,而用Erlang做起來很簡單,因為語言特性比較少有狀態改變。

另外,對於載入及搜尋大檔案方面,Joe指出如果你不會寫大檔案處理的功能,這不是語言方面有問題,而是你缺少演算法的知識。他曾經需要處理gigabytes的檔案,讀過 "Managing Gigabytes" 一書之後,實作了gamma encoding就解決了問題。

Luke Gorrie有個用Erlang寫的仿Emacs。(見2.)

1. Erlang for Programming a Text Editor, discussions from Erlang Programming group at Google groups, url: http://groups.google.com/group/erlang-programming/browse_thread/thread/a6c93367b439a284?hl=en .
2. Luke Gorrie, Ermacs (software), http://fresh.homeunix.net/~luke/ermacs/ .

No comments:

Blog Archive