首先说明一下,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,目前运行的很稳定。