2 回答

TA貢獻1802條經驗 獲得超4個贊
個人建議學習Golang,主要原因如下:
Erlang的硬傷在于代碼的可讀性、表現力。為什么說是硬傷? 因為對一門語言來說,語法是不大可能會大幅度變更的, 而且不會出現大的變化;
Erlang的軟肋在于高質量的庫少。盡管有不少殺手級應用, 同樣Go在這方面也是軟肋, 這一點對于一個不到五年的語言有情可原, 但對于一個20多年的語言是不是有點說不過去;
Erlang不合群。 這主要體現在跟其他語言的交互性上, 當然這也有深層次的原因, Erlang本身有自己的哲學, 如出錯恢復機制, 你融入一個其他語言的東西進去, 這帳就不好算,就好比你硬要讓一個喝咖啡的跟一個吃大蒜的坐在一起, 總之你寫一個Erlang的port遠遠比Go復雜, 甚至比Python/Java還要復雜, 這就造成了Erlang在底層編程上效果不是很好, 沒法利用linux已有的很多優秀成果,我一直認為Erlang的什么的mysql/pg/oracle驅動都沒有必要存在, Erlang一定是一個self-container應用, 你只要用到了其他東西, 根據木桶理論, 你就不敢號稱9個9,以系統的眼光看問題, 我覺得一個系統的魯棒性不能依賴于某一組件, 這也是為什么愛立信本身的Erlang應用并不廣泛;
Erlang的的報錯信息太讓人糾結了。在Erlang中一切都是并行的, 所以它根本不care是物理哪一行出錯, 只跟Actor綁定, 然后告訴你Actor的ID和出錯代號。這一點Golang就做了很好的折中, 不需要并行的時候你老老實實的寫串行代碼, 需要并行的時候也有較復雜的機制來應對, 合乎情理。
- 2 回答
- 0 關注
- 786 瀏覽
添加回答
舉報