敝公司當初的technology stack 都是以 linux + php + nginx 為公司標配的開發的模式,以初期的發展模式來說php 有幾個優點:
- 社群龐大
- 學習曲線低
- framework百家爭鳴
- 招募人才容易
選擇php的確是一時之選,但到了中後期公司的業績逐步成長,追求的不再是快速開發,反而是需要穩定,而且在執行效率優良的方案。
以我個人來說,當初接到這個任務,評估過的語言有nodejs、java、python、golang,我自己列出我自己想要的需求為下:
- 強型別
- 高效能
- 學習曲線中等
- 社群不能太小
- 官方文件好閱讀
至於各語言的淘汰原因為下:
- nodejs,在一些啟動相關前置套件,我覺得過於龐大,所以不採用。
- java則是官方api文件太過於龐大複雜,而且個人不太喜歡那麼純oop的語言,所以也不採用。
- python 則是 2跟3之間的戰爭實在是拖太久,我無法深入的去了解到底要以哪個版本當切入,所以也不採用。
Go的優勢
- 官方api文件非常好閱讀
- 跨平台編譯。
- 語法簡單(保留字只有25個)。
- 非常容易使用併發(gorotuine),且成本非常的低。
- gofmt,官方直接強制指定coding style。
- 內建GC(garbage collection),減少學習曲線。
-
標準函式庫(stdlib),非常豐富。
- 開放原始碼(open souce)。
- 靜態強型別語言,但語法又類似腳本語言的輕快。
- 版本更新穩定,固定半年一版,且都兼容。
- 背後的老大哥是google。
同步發表於 Syhlion Notes