首先说明一下,Python也是我最喜欢的一门编程语言,我用Python工作了接近8年,并且会一直使用下去。
我们团队在开启 memfiredb.com 这个项目之初就做出了从Python往golang转换的预期,因此我们的转换过程没有任何障碍,非常顺利的就完成了。
我们为什么会在项目开启之初就做出要更换编程语言的决定呢,为什么不一开始就选择Golang呢?
第一个问题:为什么项目之处就做好了要切换编程语言的决定?
- 云原生:memfiredb.com 是一个云服务,我们的运维部署都是基于k8s的,golang在云原生方面有非常大的优势,随着项目变得越来越大,这个优势将会更加突出。
- 性能:尽管Python在性能优化方面有诸多的方案,但是Golang几乎不需要做什么特殊的优化就很容易实现高性能、高并发的服务。
- Python版本:我们团队在Python2.7版本积累了很多经验和代码,但是目前还没有完全迁移到Python3。随着社区停止对Python2的支持,以及一些第三方依赖库也不再支持Python2,导致我们目前处于一个相对尴尬的中间状态。
第二个问题:为什么不一开始就选择Golang
- 我们在Python上有很多成熟的组件,可以直接上手使用。这可以让我们快速的实现原型系统,验证我们的想法,邀请朋友体验我们的系统。
- 我们需要从头开始对Golang的框架组件进行选型以及验证,对于快速开启我们的项目不利。
目前,memfiredb.com 的云服务后端已经从Python迁移到了Golang,目前运行的很稳定。