乐趣区

关于后端:Go-语言今年-11-岁何去何从现状到底如何

不说不晓得,一说下一跳。Go 语言曾经开源 11 周年了,感觉是一路高歌,Release History(polarisxu 整顿)如下:

  • 2011 年 3 月 16 日,Go 语言的第一个稳固版本 r56 公布;
  • 2012 年 3 月 28 日,Go 语言的第一个正式版本 Go1 公布,并承诺 1.x 的 兼容性;
  • 2013 年 5 月 13 日,Go1.1 正式版才公布。
  • 2013 年 12 月 1 日,Go1.2 正式公布;
  • 2014 年 6 月 18 日,Go1.3 正式公布;
  • 2014 年 12 月 10 日,Go1.4 正式公布;
  • 2015 年 8 月 19 日,Go1.5 正式公布。该版本实现了自举,即移除了 C 代码,应用 Go 开发 Go 语言;
  • 2016 年 2 月 17 日,Go1.6 正式公布;
  • 2016 年 8 月 15 日,Go1.7 正式公布;引入 context 包;
  • 2017 年 2 月 17 日,Go1.8 正式公布;
  • 2017 年 8 月 24 日,Go1.9 正式公布;引入别名;
  • 2018 年 2 月 16 日,Go1.10 正式公布;
  • 2018 年 8 月 25 日,Go1.11 正式公布。开始强势反对 Go modules;
  • 2019 年 3 月 1 日,Go1.12 正式公布;
  • 2019 年 9 月 3 日,Go1.13 正式公布;
  • 2020 年 2 月 25 日,Go1.14 正式公布;goroutine 反对异步抢占调度;
  • 2020 年 8 月 11 日,Go1.15 正式公布;
  • 2021 年 2 月,预计 Go1.16 正式公布;将蕴含新的文件系统接口和反对在构建时的动态文件嵌入,以及链接器的重写,且正式对 Apple Silicon(GOARCH=arm64)Mac 进行反对。

目视当初

当初的 Go 语言在国内曾经掀起了一浪又一浪的热潮,炒的十分炽热。各大平台极客工夫、拉勾教育、掘金小册、慕课网等纷纷呈现了大量 Go 语言相干的付费专栏 / 视频。

在事实工作层面,字节跳动、腾讯向 Go 语言侧偏,以及其它各大一二线厂均呈现了不少 Go 的岗位,也正预示着以后曾经到了一个比拟好风口。

在开源我的项目层面,Kubernetes、Etcd、Prometheus、Docker 等大量的云原生相干组件均以 Go 语言开发,懂一门 Go 语言,排查问题也更不便了。

与企业开发层面,呈现了大量其余语言的开发者向 Go 语言转型,在企业的软件开发中呈现,新我的项目用 Go 语言,老我的项目保留,造成同时保护新老零碎,再渐迁的绞杀者模式:

在面试中比拟常见的是 PHP、C++ 语言,就会在企业中造成了 Go+PHP(新 + 老零碎)的场面,又或是 Go 调 CGO 的运行模式。这也得益于 Go 语言的易用性和肯定的胶水个性。

在培训机构层面,各大机构都多少已经向 Go 语言发动过防御,但目前 Go 语言大多以中高级人才为主,也就是有过其余语言教训的软件开发从业者为主。因而培训机构的市场行情绝对较差。

在社会招聘和岗位层面,广义上来看,与 2018 年我写的《带你理解一下 Golang 的市场行情》根本状况仍保持一致:

以下为 GoCN 所收集的“2020 中国 Go 开发者调查报告”的地区散布:

目前 Go 语言的大热门地区仍然是:北京、上海、深圳,主体集中在一线城市,机会这里最多。

看看数据:TIOBE

从 TIOBE 的编程语言排行榜来看,整体上 Go 语言的热门水平并不会特地高(与老牌语言相比),但作为一门编程语言在短短 11 年内已有很不错的体现:

同时业内时常说 Go 语言要干掉 PHP、C++、Java 等,目前来看短期内不事实,官网也没有这方面打算,因为适合的场景抉择适合的语言就好了。

TIOBE 提醒本月的排名在第 13 名,且最高排名呈现在 2020 年 5 月,在第 10 名,近期根本稳固在这个位数左近。至多近年是干不掉老大哥们的,但最近接触的一个经营大佬称其为“筹备霸占将来语言半壁江山”的语言,你感觉呢?

展望未来

Go1 目前判若两人的恪守了 Go1 兼容性承诺,这给不少正在应用 Go 语言的企业带来了一注强心针。但给 Go 语言也带来了一些“麻烦”。那就是存在破坏性变更的变动无奈在 Go1 中实现。

因而为了解决一些”问题“,也想达到更好的个性指标。2018 年时释出了 Go2 的打算,具体可参见 Go 2, here we come!,其中蕴含了大量的性能个性。

从目前的根本论调和理论状况来看,可兼容实现的,都会在 Go1 实现,例如大家最期待的性能之一”泛型“,预计最早会在 Go1.17 会释出,样例:

// Print prints the elements of any slice.
// Print has a type parameter T and has a single (non-type)
// parameter s which is a slice of that type parameter.
func Print[T any](s []T) {// same as above}

其在 6 月下旬公布了最新的设计草稿,若对泛型有更进一步需要可关注 design/go2draft-type-parameters,而一些不兼容的批改,若确切评估后无奈间接实现的,将会到 Go2 的 打算中去:

并且置信 Go2 公布时,必定也不是 go run xxx 了,预计会变更命令集,以示辨别。

总结

11 岁,Go 语言目前在国内曾经火起来了,但现阶段的”胜利“并不代表后续肯定继续强劲,背地离不开所有开发者在社区开源的致力。咱们一起思考如下问题:

  • 你最喜爱 Go 语言哪些方面?
  • 你认为 Go 语言目前还有哪些问题呢?冀望他解决哪一块内容?
  • 如果 Go 语言想持续霸占更多的语言市场,须要在什么畛域发力?

以更具现化的 TLOBE Index for Go 趋势图来看:

你认为 2020 年后 Go 语言的走向会是怎么样,当初适宜“抄底”吗?

我的公众号

分享 Go 语言、微服务架构和奇怪的零碎设计,欢送大家关注我的公众号和我进行交换和沟通。

最好的关系是相互成就 ,各位的 点赞 就是煎鱼创作的最大能源,感激反对。

退出移动版