敝公司當初的technology stack 都是以 linux + php + nginx 為公司標配的開發的 模式,以初期的發展模式來說php 有幾個優點:

  • 社群龐大
  • 學習曲線低
  • framework百家爭鳴
  • 招募人才容易

選擇php的確是一時之選,但到了中後期公司的業績逐步成長,追求的不再是快速開發,>反而是需要穩定,而且在執行效率優良的方案。

以我個人來說,當初接到這個任務,評估過的語言有nodejs、java、python、golang,我自己列出我自己想要的需求為下:

  1. 強型別
  2. 高效能
  3. 學習曲線中等
  4. 社群不能太小
  5. 官方文件好閱讀

至於各語言的淘汰原因為下:

  • nodejs,在一些啟動相關前置套件,我覺得過於龐大,所以不採用。
  • java則是官方api文件太過於龐大複雜,而且個人不太喜歡那麼純oop的語言,所以也不 採用。
  • python 則是 2跟3之間的戰爭實在是拖太久,我無法深入的去了解到底要以哪個版本當 切入,所以也不採用。

Go的優勢

  • 官方api文件非常好閱讀
  • 跨平台編譯。
  • 語法簡單(保留字只有25個)。
  • 非常容易使用併發(goroutine),且成本非常的低。
  • gofmt,官方直接強制指定coding style。
  • 內建GC(garbage collection),減少學習曲線。
  • 標準函式庫(stdlib),非常豐富。
  • 開放原始碼(open souce)。
  • 靜態強型別語言,但語法又類似腳本語言的輕快。
  • 版本更新穩定,固定半年一版,且都兼容。
  • 背後的老大哥是google。