Go开源11周年 ,“泛型还没搞定”?
喜欢就关注我们吧!
2009年11月10日,Go 作为开源项目正式宣布推出。2020年11月10日,Go 已开源 11 周年,其官方博客也更新了一篇纪念 11 周年的文章。
简单回顾 Go 的历史:
2007年9月 Rob Pike, Robert Griesemer 和 Ken Thompson 开始设计 Go
2008年3月 Go 的首个规范产生
2009年11月10日,Go 正式宣布推出,并成为开源项目
2012年3月,首个正式版本 Go 1 发布
2013年5月,Go 1.1 发布,并正式确定发布周期,计划每半年发布一个二级版本
……
直到今天,Go 用了 7 年的时间从 1.1 迭代至 1.15 ,然而 Go 2 依旧还没发布,不过这与 Go 的发布计划有关,根据 Go 团队的说法,Go 2 并非一个单独的重大更新版本,而是通过“增量(incremental)更新”的方式从 Go 1.x 逐渐抵达 Go 2.0,所以期间的版本都能看到 Go 2 提案的实现。
Go 团队也回顾了今年以来关于 Go 的重要时间节点:
2月,Go 1.14 为 Go modules 交付了第一个正式的“生产环境就绪”实现,改进性能(包括提供更快的 defer 和非协同的 goroutine 抢占),以减少调度和垃圾回收延迟
3月,推出新的协议缓冲区 API,google.golang.org/protobuf,对协议缓冲区反射和自定义消息的支持有了很大的改进
6月,VS Code 的 Go 语言插件迁移至由 Go 团队维护
6月下旬,Go 泛型草案更新,并宣布了一个原型工具和体验泛型的 playground
7月,发布并讨论三个新的设计草案,主要是用于文件选择新的
//go:build
、文件系统接口和构建时文件嵌入8月,Go 1.15 优化性能和修复 bug。最重要的是开始重写链接器,使其运行速度提高 20%,并在大型构建时平均减少 30% 的内存
对于最受关注的 Go Modules 和泛型,Go 团队表示明年将继续致力于开发对 Go Modules 的支持,并将其很好地集成到整个 Go 生态中。最近一项调查的初步结果显示,目前 96% 的用户已采用 Go Modules(高于一年前的 90%)。
至于泛型,团队正在努力打磨可将其用于生产环境的细节,这也是他们2021年的工作重点之一,并计划在 Go 1.18 beta 为开发者提供试用的机会。
▼ 往期精彩回顾 ▼