出處: http://erlang-china.org/misc/scalaris_and_build-in-json.html
最近比較活躍的 Erlang 社區事件是 Scalaris 的代碼公布以及 火熱的 json BIF 討論。
Scalaris 就是我們在上一篇中提到的 Alexander Reinefeld 在 Erlang eXchange 2008 上展示的神秘的 Yet An Other Key-Value DB 項目。目前它的源碼已經“全文公開”的 host 在 google code 上了,在 [這裡] 還有一份 pdf 的 Slide 可以看,比起其他的兩個項目,其特色是:
All In Memory 資料存放區在 gbtree 中 —— 目前還沒有提供儲存到磁碟的特性。
實現了N多傳說中的演算法。比如,用來在 P2P 的 DHT 網路中定址的 Chord 演算法 和用來進行資料備份的 Paxos 演算法。
據說代碼寫得相當清晰,極具學習價值。(默念10遍: OpenSource 就是好,就是好,就是好來,就是好)。
另外一件事就是 Joe 老爺爺最近提出了一個 EEP
(Erlang Enhancement Process —— Erlang 的特性增強過程,類似於 Java 的 JCP) 要增加一個
Json <--> Term 的 BIF (內建函數)。確實也該如此,現如今 Json 大有稱霸江湖的意思,Erlang
的世界裡也已經有了 N 多個版本的 Json <--> Term 庫,我至少已經領教過 4 個不同的版本了,每個庫的 spec
都“略有不同”,頗有些“各自為戰,誰都不爽”的意思。推出一個受到廣泛認可的 BIF 無疑能夠讓這個世界立馬變得清靜許多。
說實話 Json <--> Term 乃至在文法之中直接加入 Json 的支援都算不上是什麼難事,但相比由 OTP Team
在下一個版本的 Erlang 中靜悄悄的加入某個 BIF 的“獨裁”方式, EEP 無疑會是一個更社區化的過程。也就是說,它必然會經曆
“提案,方案,辯論,投票” (或類似)的民主化過程,很多時候,這會很“亂糟糟”和“低效”。不過,這些代價絕對能值回票價 ——
最終我們會得到一個無論是在效率還是 API 上都更優秀的 Json <--> Term BIF
。除此之外,對於廣大的使用者而言,這個[ “辯論”和“爭吵”]的過程,也富有營養 —— 我們不僅(將會)知道最終的方案是什麼,還能知道這個方案是怎麼來的(比如說,它 PK 掉了哪些其他方案,它們存在著什麼樣的問題),這一切就發生在眼前。