我之前账号(你懂的)曾针对“2020年以后是Go语言的天下吗”写过一篇回答。
这里摘录一些观点:
我的观点:Go在未来3-5年会有很好的发展,但同样也不会“一统天下”。
本人在Go r60版本时(那时尚未发布Go 1.0)就接触到了Go语言。被Go转粉后,成为go的鼓吹者,最狂热的时候也曾一度希望Go一统江湖,不仅占领java的企业级市场,还要在终端(android. ios)、前端(js)上击败现有对手。
有人可能觉得我的想法可笑,但我的想法并非空穴来风。Go语言在终端、前端方面还真的曾经发过力,了解go历史的都知道,go团队曾经有全职开发人员参与gomobile项目(http://golang.org/x/mobile),该项目旨在构建在android和ios上的go技术栈,实现用go语言编写终端应用。
在前端方面,gopherjs项目(https://github.com/gopherjs/gopherjs)可以将go代码编译为js代码并运行于各大浏览器中。后来gopherjs的作者帮助go项目原生支持webassembly,支持将go编译为webassembly运行在浏览器中。
但上面的尝试最终没能“得偿如愿”,目前在终端、前端应用go编码的人少之又少。
Go的主力战场回归到了企业级应用、基础设施、中间件、微服务、命令行应用等,并且在这些领域取得了越来越多开发者的青睐。
如果你的兴趣也聚焦在这些领域,那么学习Go绝对是一个不错的选择。
但作为一名后端程序员,在未来业内的竞争中,仅仅掌握一门语言显然是有些不够的。
我的另外一个观点是每个后端程序员都要掌握多门后端语言。其中c,go,python个人感觉是一个黄金组合。c更接近机器底层,崇尚性能与效率。go简单易用,有着性能与开发效率的最佳性价比;python是胶水语言,门槛低,还有人工智能这个大树罩着。