首先說明一下,Python也是我最喜歡的一門編程語言,我用Python工做了接近8年,而且會一直使用下去。golang
咱們團隊在開啓 memfiredb.com 這個項目之初就作出了從Python往golang轉換的預期,所以咱們的轉換過程沒有任何障礙,很是順利的就完成了。編程
咱們爲何會在項目開啓之初就作出要更換編程語言的決定呢,爲何不一開始就選擇Golang呢?後端
第一個問題:爲何項目之處就作好了要切換編程語言的決定?性能優化
- 雲原生:memfiredb.com 是一個雲服務,咱們的運維部署都是基於k8s的,golang在雲原生方面有很是大的優點,隨着項目變得愈來愈大,這個優點將會更加突出。
- 性能:儘管Python在性能優化方面有諸多的方案,可是Golang幾乎不須要作什麼特殊的優化就很容易實現高性能、高併發的服務。
- Python版本:咱們團隊在Python2.7版本積累了不少經驗和代碼,可是目前尚未徹底遷移到Python3。隨着社區中止對Python2的支持,以及一些第三方依賴庫也再也不支持Python2,致使咱們目前處於一個相對尷尬的中間狀態。
第二個問題:爲何不一開始就選擇Golangmarkdown
- 咱們在Python上有不少成熟的組件,能夠直接上手使用。這可讓咱們快速的實現原型系統,驗證咱們的想法,邀請朋友體驗咱們的系統。
- 咱們須要從頭開始對Golang的框架組件進行選型以及驗證,對於快速開啓咱們的項目不利。
目前,memfiredb.com 的雲服務後端已經從Python遷移到了Golang,目前運行的很穩定。併發