第 5 期:Go 语言发展的近况 (下)
本期摘要:这是 Go 夜聊的第五期节目,这次我们将延续上一期的话题讨论 Go 语言的一些发展近况。本期的话题围绕即将带来的涉及运行时机制和泛型的重大变化展开。为什么 Go 语言运行时几乎每个版本都能带来大量性能提升?Go 语言规范又即将引来哪些重大的变动?
时间线
- 00:00 开场
- 00:56 运行时内存回收机制的变化
- 06:34 运行时的监控机制
- 09:56 基于寄存器的调用规约
- 17:06 全新的 GC 调步器
- 22:32 语言内存模型的完善
- 23:58 两位主播对支持泛型的看法
- 28:36 为什么 Go 语言十年之后才开始引入泛型
- 32:32 Go 1 和 Go 2 对开发者来说意味着什么
- 36:58 Go 语言的发版困境
- 39:53 泛型的起源
- 41:54 Go 语言泛型语法设计上的争议
- 45:32 类型参数与类型集作为泛型的实现
- 51:16 Go 团队的内部矛盾
- 59:10 尾声
🔗 相关链接
- MADV_FREE 更改为 MADV_DONTNEED (1.16), #23687, #42330
- 全新的 runtime/metrics (1.16)
- 基于寄存器的调用规约 (1.17)
- 全新的 GC 调步器 (1.18) #44167, #44309, #45894
- Russ Cox 有关内存模型的 3 篇文章
- 内存模型的完善 (1.18)
- 书籍《C++ 语言的设计和演化》The Design and Evolution of C++
- 泛型语言规范的变更 (1.18)
- 类型参数
- 类型集
- Russ Cox 的“过激”言论
- Go 语言历史全记录
最后的共识还是说要在这里改变一下开发流程。