为什么Have选择用golang作为后端服务开发语言
写于php7发布之际
无意挑起语言之争,只是谈谈我的看法和选择过程,每个team和项目都应该针对自己的情况分析做出选择。
昨天php7开始预热,由于大幅度的性能提升,以及亚一程鸟哥作为核心开发者,这个版本的php备受关注,我也第一时间下载下来编译安装,没跑web方面的例子,而只是跑了段测试程序,性能的确提高了1倍。这个提升是非常大的,感觉所有用php的小伙伴们都应该尽快升级。鸟哥的工作也值得尊敬。
为什么Have没有使用php而选择了golang呢?
当时我在实际项目中使用过的是php和python,只在前端写过javascript,在spark中写过一点点scala。在学校的时候比赛用的是cpp和java。这是背景。
当时在做选择的时候,有三个可能,php,python,新的语言。第一个排除的是python。原因是我对他的熟悉程度已经落后于php,而且当时就关注到php7的性能提升会非常大,同样的动态脚本语言,我没有理由选择python,除了他的确是小清新很多;选择就变成了php和新的语言。javascript我个人不是很喜欢,尽管看上去Node.js在阿里的应用非常成功,但我不觉得我能hold住这块儿;于是就将目光放到了golang和rust,但由于rust实在太新,我也不够有勇气挑战这点,所以最后的对比变成了php和golang。
由于之前在学校是写的cpp,所以对偏系统的语言还是有些执念;虽然正式工作后基本在折腾php,但对这门语言实在喜欢不起来,虽然,他的确开发快速,各种现成工具使用,性能也预期能提升很多等等各种优点,但最后还是选择了golang的原因如下:
1.我想学一门新的语言作为未来的工具。我大概可以靠php找工作,但我现在可能无法靠cpp找工作,而在偏系统的语言上没有积累,与我想长期与服务器端征战的愿景不符合。
2.原来在公司大部分都是php的原因是,这块儿有技术积累,各种组开发通用组件可以很方便的使用。但由于人员的原因,我现在能从原公司这边得到php的技术支持力量有限,可能最后都是靠自己。
3.当时花了一周时间写小的demo,验证golang。在按照自己的需求将demo实现以后,发现想要的功能都有,开发效率并没有降低,这点基本让我下定决心使用golang。
4.性能性能性能!php7即使性能提升很大,但在我昨天的测试中,跑同样的程序,php7需要50秒,golang1.5秒就解决了。当然,传统的观点是,语言不会是性能瓶颈,db才是。这句话我完全同意,但对我而言,我觉得我的职业生涯还在很前期,在寻找趁手合适的工具的道路上不能就抱着现在的斧子不放了。
基于以上,最后选择了golang。但我觉得我依然会持续关注php这块儿,毕竟他是最好的语言!
blog comments powered by Disqus