Go 夜聊 Go 夜聊
-
- Technology
「Go 夜聊」是一档由杨文和欧长坤主持的针对 Go 语言发展史的播客节目。我们的宗旨是让更多的人了解 Go 语言的发展历史和未来规划,希望大家在这里可以了解到 Go 语言的方方面面。如果你觉得「Go 夜聊」做的还不错,欢迎你推荐给身边的朋友。如果你对我们有任何意见或建议,请给我们来信,我们的邮箱地址是 [hi@talkgo.fm](mailto:hi@talkgo.fm),如果你想跟大家交流讨论,可以加入我们的 [telegram 群](https://t.me/talkgofm) Listen Notes
-
第 10 期:2023 年 Go 贡献者峰会的所见所闻
第 10 期:2023 年 Go 贡献者峰会的所见所闻
嘉宾:潘少(Andy)
主持:杨文,欧长坤
本期摘要:这是 Go 夜聊的第十期节目,也是我们第九期的续集,是由 Go 语言峰会参与者欧长坤和潘少(Andy)一起为我们带来的一些他们在 Go 语言峰会上的所见所闻。让我们有机会能参与其中,了解其中的故事和过程。虽然仅仅只是很短的时间,但是你听过之后一定会觉得这个会议应该不止开那么短吧。信息密度非常大,建议大家反复收听。
时间线
00:21 开场
01:20 欧长坤和潘少(Andy)参加 Go 语言贡献者峰会
01:55 第一个圆桌讨论:WebAssembly
03:15 Keith Randall 大佬被提及
05:00 Go runtime 圆桌讨论话题一:NUMA-aware scheduler for Go
06:00 Dmitry Vyukov 大佬被提及
11:40 Go runtime 圆桌讨论话题一:io_uring networking for Go
16:18 Coroutine for Go by rsc
20:37 Go runtime 渐进式改造
23:33 Go 团队倾向于挖一个大坑
26:00 Go 标准库新加了一个 log 库:slog
32:10 推荐环节
录制时间: 2023-09-28
相关链接
Andy 的主页
美国之行(上篇):旧金山和硅谷
美国之行(下篇):芝加哥
GopherCon 2023: The Ultimate Review - We International Now!
Andy GitHub
Keith Randall
Dmitry Vyukov
Coroutines for Go by rsc 2023.7.17
spec: add range over int, range over func #61405
追风筝的人
Go 夜聊第 8 期老貘也推荐了这本书。
Unix 传奇
Open Decision-Making
宫崎骏 - 千与千寻
《侧耳倾听》 - 人成长的时候是不断的在跟自己和解的过程。
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群 -
第 9 期:潘少给 Go 语言做贡献的艰难历程
第 9 期:潘少给 Go 语言做贡献的艰难历程
嘉宾:潘少(Andy)
主持:杨文,欧长坤
本期播客是参与 #2023技术播客节 共创共建的一期内容。12月4日至8日,每天围绕一个主题,带来8~11期的内容,更多详情也可关注官网 https://podfest.tech,或者微信公众号、即刻、X搜索「2023技术播客节」,欢迎大家多多关注,一键多连!
本期摘要:这是 Go 夜聊的第九期节目,我们和 Go 语言贡献者潘少(Andy),Go 开源项目 gnet/ants 等项目的作者一起聊了聊,包括他与 Go 语言结缘的故事,以及他为 Go 语言做贡献的经历,并着重聊了他所做过影响力最大的几个贡献。
录制时间: 2023-09-28
时间线
00:21 开场
01:14 潘少(Andy)自我介绍
02:28 潘少(Andy)与 Go 结缘
08:37 为什么会给 Go 做贡献?
11:30 潘少(Andy)的第一个 Go 贡献
17:35 在 Go 做贡献中提高自己的编程能力吗?
22:34 印象最深刻的 Go 贡献经历
40:06 影响力最大的一个 Go 贡献经历
53:08 尾声
相关链接
Andy 的主页
Andy GitHub
Golang China Contributor Club
Go语言编程 by 许式伟
Contributing to the Go Project
panjf first commit - bytes: narrow the search of IndexByte in Index
472475: net,os: support zero-copy from file and TCP socket to Unix socket
466015: os: support zero-copy from TCP/Unix socket to file
525096: log/slog: add LogLoggerLevel to enable setting level on the default logger
212737: runtime: converge duplicate calls to netpollBreak into one
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群
关于「2023 技术播客节」
缘起于 2022 仲夏时节技术播客之间的梦幻联动,我们感受到了社区共创共建的力量。今年我们再接再厉,集结了 30+ 播客、5 大出品人、20+ 社区,希望拉动更多技术生态的内容创作者,一起用声音来表达,建设自家技术影响力,推动更高粘性、更深互联、更持久共鸣的用户社区构建。 -
第 8 期:泛型来了!
第 8 期:泛型来了!
录制时间: 2022-05-06
嘉宾:老貘
主持:杨文,欧长坤
本期摘要:这是 Go 夜聊的第八期节目,我们和 Go 语言 101 的作者一起聊了聊期待已久的泛型,我们聊到了为什么需要泛型,设计的优点、讨论时的期望与正式发布时的失望。新出现的类型集是什么?comparable 又是什么?目前的泛型设计在未来还有多大的改进空间?
时间线
00:12 开场
01:10 接触 Go 语言的动机
03:30 编写《Go 101》的原因
04:42 活跃在 Go 语言社区
09:27 独立游戏的行业经历
12:11 用 Go 语言做游戏
13:51 泛型产生的动机,与 Go Generate 的对比
20:21 接口、类型集、类型约束的关系
28:36 类型集与泛型的关系
30:40 接口与类型集是同一个概念吗?
31:34 comparable 类型、它能解决什么问题、它还有哪些争议
37:42 接口作为值类型
42:45 泛型设计的其他优点
48:10 泛型设计的缺点
58:09 泛型设计的限制
66:09 对泛型未来的期望与失望
68:20 Go 团队排外吗?
71:35 Go 语言 101 背后的故事
83:38 结尾推荐
87:55 尾声
相关链接
老貘的主页
Go 语言 101
Go 泛型 101
泛型的官方上手教程
观点:类型集和接口不等价
spec: document definition of comparable
spec: any no longer implements comparable
proposal: spec: permit values to have type “comparable”
proposal: spec: permit non-interface types that support == to satisfy the comparable constraint
proposal: spec: allow interface types to instantiate comparable type parameters
proposal: spec: add new constraint kind satisfied by types that support == (including interface types)
proposal: type parameters are comparable unless they exclude comparable types
proposal: the comparable interface represents the comparable subset of run-time values
how to update APIs for generics
proposal: spec: allow type parameters in methods
追风筝的人
灿烂千阳
群山回唱
理解自由意志
AI 新生
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群 -
第 7 期:依赖与模块
第 7 期:依赖与模块
录制时间: 2021-08-29
嘉宾:盛傲飞
主持:杨文,欧长坤
本期摘要:这是 Go 夜聊的第七期节目,我们和 goproxy.cn 的作者在 Go 1.17 发布时聊了聊在 Go 语言中的依赖管理、模块等相关的机制。Go 语言中的 Modules 走到今天这一步经历了哪些波折?看似在其他语言里早已攻克的代码依赖管理,在 Go 语言的情景下,又有哪些不为人知的努力?
时间线
00:00 开场白
01:06 接触 Go 语言的契机
02:57 Beego 等一系列 Web 框架的对比
04:37 自己动手写 Web 框架
06:33 Go Modules 之前的依赖管理
16:12 Monorepo 代码管理的优劣
22:24 “臭名昭著” 的 GOPATH 和 vendor
28:36 dep 的风波
37:46 “独裁式” 管理风格下的需求工程
43:52 进入 Go Module 时代
46:47 Go Modules 的基本原理
52:40 godoc 和 pkg.go.dev
54:57 从 golang.org 合并到 go.dev 域名
66:22 Go Modules 的最小版本选择算法 MVS
70:27 环境变量 GOPRIVATE
72:25 模块的懒加载
77:36 模块别名机制
82:10 GOPATH 的废除与 Go 1 兼容性保证
84:43 Go Workspace 工作区
86:17 构建 goproxy.cn 的经历
89:57 搭建代理的难点及其与镜像站的区别
96:42 七牛云接管 goproxy.cn 的运营
相关链接
谢大 astaxie 写的 Beego
知名 Web 框架 Gin
曾经的知名 Web 框架 Martini
知名 Web 框架 Echo
傲飞 aofei 写的 Web 框架 air
标准库 net/http
曾经的依赖管理工具 goven
gopkg.in
yaml 包
无闻编写的 ini 解析包
曾经的依赖管理工具 gopm
曾经的依赖管理工具 govendor
曾经的依赖管理工具 dep
Russ Cox 关于 vgo 依赖管理的演讲
Go Modules 的前身 vgo
Go Modules 规范
Russ Cox 和 Rob Pike 开发的 licensecheck
模块功能目前的主要开发者 Bryan C. Mills
傲飞开发的 Go 模块代理站 goproxy.cn
李保坤开发的 Go 模块代理站 goproxy.io
曾经的文包文档站 godoc.org 的源码
Go 语言的多模块工作区 Workspace 的提案
模块别名功能的相关讨论
尾声推荐:jellyfin.org
嘉宾推荐:The Art of Multiprocessor Programming (2nd Edition)
嘉宾推荐:golang.design/go2generics
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群 -
第 6 期:Go 语言的编译器
第 6 期:Go 语言的编译器
嘉宾:史斌
主持:杨文,欧长坤
本期摘要:这是 Go 夜聊的第六期节目,这期我们有幸请到了目前在 Go 语言仓库贡献排行榜上前全球前五十的贡献者——史斌,并和他一起聊了聊编译器相关的技术和相关行业的一些未来。Go 语言的编译器有什么特点?还有哪些可以改进的空间?从事芯片和编译技术相关的工作又有哪些挑战?
时间线
00:00 开场
01:00 接触 Go 语言的起因
03:31 Go 语言在芯片行业的现状
04:57 成为中国 Go 语言贡献者排名第一的经历
12:30 加入 Go 团队的 GitHub 组织
19:11 Go 语言中国贡献者俱乐部的成立过程
21:57 Go 语言在芯片行业的困境
26:26 基于 SSA 的 Go 编译器
32:02 现阶段编译器的改进空间
35:10 基于寄存器的调用规约
38:24 gccgo 和 gollvm
42:19 编译技术和行业的未来
47:30 推荐
50:05 尾声
相关链接
乘法指令生成错误
寄存器索引 LOAD/STORE
Go 1 Benchmark
Go 团队在 GitHub 的组织
前 Go 团队成员 Brad Fitzpartrick
Go 团队成员 Cherry Zhang
Go 语言贡献者李保坤
Go 语言贡献者蒙卓
Go 语言中国贡献者俱乐部
史斌在 GopherChina 2020 上关于 Go 编译器的演讲
Erlang
CSP 顺序进程通信
Rob Pike
Ken Thompson
SSA 静态单赋值形式
IR 中间语言
Intrinsic 内建函数
阵列编程与向量化
循环优化
Go 语言增加循环优化的讨论 Issue 24240
指令流水
GCC
LLVM
调用规约
gccgo
gollvm
TinyGo
Proebsting 定律
Moore 定律
书籍:《史记》
书籍:《战国策》
书籍:《不拘一格》
播客: 从零道一
书籍:《Ray Tracing Gems II》
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群 -
第 5 期:Go 语言发展的近况 (下)
第 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 语言历史全记录
📝 联系我们
来信 hi@talkgo.fm
Telegram 听众群