1. 程式人生 > >關於程式語言的幾點思考

關於程式語言的幾點思考

首先需要說明,一直執迷於程式語言的選擇,是一件令人羞愧的事情,說明能力平庸,牛人有這個時間隨便選一種語言都能把事情辦成,參見T.Linus編GIT的故事,C語言直接來,兩週完成雛形。

遺憾的是,我就是這樣一個在不斷思考這件事的人。

我看過C++、python、Go、Rust、Java、Scala、Erlang、C、object C、javascript(node.js),然後,因為複雜度、效能等原因,我陸續排除了C++、Go、Java、javascript、Scala等等,留下了erlang、rust、C,erlang實現功能,Rust/C實現效能,兩步走。

其實,上面任何一個語言,搞一個交易系統都是可以的,功能上都能實現,但難易程度有差別,實現結果有差別。比如,python對多執行緒支援不好效能受限,C++語言特別複雜需要花很多心思在語言本身上,node.js寫複雜業務會很吃力且記憶體管理能力弱,C語言缺少庫支援需要考慮指標,等等。總之,沒有完美的語言,只有做不成事的人。

如果個人能力更強,做事短平快,邊學邊做,估計2個月搞一個系統,反覆推倒重來幾次,便可以登峰造極。在個人有限的能力範圍內,想做成一件事,方向就變得很重要,需要反覆不斷地思考,因為試錯的成本很大。目前我使用erlang,幾百行程式碼就有希望搞出一個可以擴充套件成千上萬個客戶的系統來,這背後依賴的是erlang的語言特點,相同的功能如果用java實現,可能還需要用docker。