本期摘要:这是 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](https://golang.org/issue/23687), [#42330](https://golang.org/issue/42330)
- [全新的 runtime/metrics (1.16)](https://pkg.go.dev/runtime/metrics)
- [基于寄存器的调用规约 (1.17)](https://golang.org/design/40724-register-calling)
- 全新的 GC 调步器 (1.18) [#44167](https://golang.org/issue/44167), [#44309](https://golang.org/issue/44309), [#45894](https://golang.org/issue/45894)
- [Russ Cox 有关内存模型的 3 篇文章](https://research.swtch.com/mm)
- [内存模型的完善 (1.18)](https://golang.org/issue/47141)
- [书籍《C++ 语言的设计和演化》The Design and Evolution of C++](https://book.douban.com/subject/1456860/)
- [泛型语言规范的变更 (1.18)](https://go-review.googlesource.com/c/go/+/336809)
- [类型参数](https://golang.org/design/43651-type-parameters)
- [类型集](https://golang.org/issue/45346)
- [Russ Cox 的“过激”言论](https://github.com/golang/go/issues/43931#issuecomment-768490280)
- [Go 语言历史全记录](https://golang.design/history)
## 📝 联系我们
- 来信 [hi@talkgo.fm](mailto:hi@talkgo.fm)
- [Telegram 听众群](https://t.me/talkgofm)