Listen

Description

本期摘要:这是 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)