原文:Strem: Why we switched from Python to Go

第一點原因直指「效能」。Stream 表示,大多數的應用場景,程式語言效能通常不是主要關鍵問題之一,但對於他們這種 API 服務商,要服務超過 500 家公司,2 億終端用戶來說,就變得非常重要。

在轉向 Go 之前,他們已經多年調校過 Cassandra、PostgreSQL 及 Redis 等,而現在的瓶頸剛好就是 Python 程式語言。例如他們很常在處理資料時,Cassandra 耗 1ms 取得資料,但下一步的 Python 卻耗 10ms 轉成物件。

以及,Go 開發效率也是很好的。Python 雖然有很多進階功能,讓你非常自由的編寫程式,但這樣反而容易造成其他人閱讀程式碼的難度。Go 比較沒有這個問題。

還有,Go 對於 Protocol buffers 及 gRPC 有第一流的支援,而 Python 在 serialization/deserialization, ranking and aggregation 的表現不佳。