- 第 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 听众群
- 第 4 期:Go 语言发展的近况 (上)
# 第 4 期:Go 语言发展的近况 (上) * 主持: 杨文, 欧长坤 本期摘要:这是 Go 夜聊的第四期节目,我们成功的从月更节目转型为(半)年更节目,自然也就错过了很多跟 Go 语言相关的变化(1.16-1.18)。本期的话题围绕 Go 语言的发展近况展开。 那么这么长的时间里 Go 语言团队有哪些公开活动?Go 语言和相关生态又有哪些令人兴奋的新特性? ## 时间线 * 00:00 开场 * 00:45 主播的一些近况 * 02:46 Go 团队的静默期 * 08:05 在 StackOverflow 上的 Go Collective 计划 * 11:57 Go Modules 相关的一些变化 * 16:25 构建约束与编译器注记符的统一 * 20:43 全新链接器背后的故事 * 23:22 其他工具链相关的大变化 * 24:02 Go 在 ARM 架构上的支持 * 29:27 标准库 embed 包及其相关的一些变化 * 34:22 包名称的命名方式 * 37:36 runtime/cgo 包下的全新 API * 42:20 泛型相关的新特性 * 46:22 Go 语言内存模型的完善 * 50:44 尾声 ## 🔗 相关链接 * Russ Cox 的 quiet weeks 公开邮件 * Bus Factor * 书籍《Working in Public》 * StackOverflow Go Collective * go get 到 go install (1.16) * //go:build 构建约束 (1.16,1.17,1.18) * 全新的链接器 (1.16) * 模块懒加载 (1.17) * 工作区模式 (1.18) * 模糊测试 (1.18) * ARM 平台的支持 darwin/arm (1.16), windows/arm (1.17) * 龙芯 linux/loong64 的支持 (1.18) * embed (1.16) * 短链接服务 changkun/redir * io/fs (1.16) * runtime/cgo (1.17) * 全局剪贴板服务 changkun/midgard * 跨平台剪贴板包 golang-design/clipboard * 泛型语言规范的变更 (1.18) * 全新的 constraints 包 (1.18) * 全新的 container/slices 包 (1.18) * 全新的 container/set 包 (1.18) * 全新的 container/maps 包 (1.18) * 允许切片到数组的转换 (1.17) * Russ Cox 有关内存模型的 3 篇文章 * 内存模型的完善 (1.18) ## 📝 联系我们 * 来信 hi@talkgo.fm * Telegram 听众群
- 第 3 期: 漫谈写作和个人成长
# 第 3 期:漫谈写作和个人成长 * 嘉宾: 曹春晖, 饶全成 * 主持: 杨文, 欧长坤 本期摘要:这是 Go 夜聊的第 3 期节目,这期节目嘉宾请到了我们在 Go 夜读 的老朋友们曹春晖(曹大)、饶全成(饶大),一起聊了聊他们与 Go 相关的成长经历。本期节目主要包括了曹大编写《Go 语言高级编程》背后的故事、做过的开源项目、Go 在企业面试、国内大环境中的现状,以及如何学习成长等话题。 ## 时间线 * 00:15 开场 * 00:42 饶大和曹大的自我介绍 * 03:10 创作《Go 语言高级编程》的幕后 * 11:21 聊聊博客和写作 * 22:48 cch123/elasticsql 开源项目的由来 * 27:17 成为 Go Contributor 的过程 * 40:40 聊聊面试 * 62:03 Go 在国内的现状 * 65:50 工程师最重要的学习方法 * 67:43 科学的搜索方法 * 81:15 聊聊玩过的那些游戏 * 88:00 平常听哪些播客 * 89:02 推荐环节 ## 🔗 相关链接 * Go 夜读第 33 期:Go defer 和逃逸分析 * Go 夜读第 34 期:plan 9 汇编入门,带你打通应用和底层 * Go 夜读第 44 期:Go map 源码阅读分析 * Go 夜读第 78 期:Go Scheduler 源码阅读 * kata-containers * cch123/elasticsql * crypto/tls: pool Conn's outBuf to reduce memory cost of idle connections * sync: add new Map method LoadAndDelete * sync: delete dirty keys inside Map.LoadAndDelete * 工程师应该怎么学习 * 格斗游戏对战 * 五分钟学算法 ## 📚 书籍 * 《Go 语言圣经》 * 《Go 语言高级编程》 * 《labuladong 的算法小抄》 * 《A Philosophy of Software Design》 * 《Designing Data-Intensive Applications》 * 《Unix 网络编程》 * 《Mastering Go》 * 《重新理解创业》 * 《Unix 编程艺术》 * 《The UNIX Hater's Handbook》 * 《系统之美》 * 《The Linux Programming Interface》 ## 📝 联系我们 * 来信 hi@talkgo.fm
- 第 2 期: 成为 Go 贡献者
# 第 2 期:成为 Go 贡献者 * 嘉宾: 蒙卓 * 主持: 欧长坤, 杨文 本期摘要:这是 Go 夜聊的第二期节目,本期的话题围绕成为 Go 语言贡献者展开。 为此,我们非常荣幸请到了可能是目前国内最活跃的 Go 语言贡献者之一:蒙卓(Max)。 那么 Max 为什么能够如此活跃在 Go 的贡献榜上?他是怎么一步步成长为 MIPS 维护者的? 维护的过程中遇到过哪些问题?作为贡献者,与 Go 团队打交道又有哪些奇闻趣事? ## 时间线 * 00:56 谁是蒙卓(Max) * 01:20 在华为从事 Go 开发 * 07:33 对播客的了解和看法 * 10:05 2019 年 GopherCon 参会体验 * 12:42 接触 Go 语言的契机 * 15:00 Go 最吸引人的地方 * 19:38 从游戏后端到 Go 开发 * 23:23 给 Go 贡献代码“难度” * 30:03 与 Go 团队打交道 * 38:20 排定 Go 开发工作的优先级 * 39:28 “不能稳定复现的才叫 BUG,否则只能叫问题” * 48:48 Google 对 Go 社区的管理 * 52:24 Go Build Coordinator * 55:53 对 Go 未来的憧憬和担忧 * 58:18 对 Go 语言支持泛型的看法 * 59:59 进一步展开对编程语言发展的讨论 * 64:28 Go 中国贡献者俱乐部 * 67:31 成为 Go Contributor 的福利 * 70:25 工作流及日常工具 * 73:13 推荐环节 ## 🔗 相关链接 * Go 语言贡献指南 * Ansible * Kubernetes * HiKey 960 开发板 * Go 语言创始人之一:Ian Lance Taylor * man page * Issue 101: doc: manual pages for Go tools * Go 增加对 Apple Silicon 支持的 Issue Tracker * Go 1.16 开发规划讨论邮件列表 * Go 1.16 的发布说明 * Go 团队技术负责人:Russ Cox * Go 团队成员:Cherry Zhang * Go 团队成员:Keith Randall * MIPS 架构 * 龙芯 * LoongISA 指令集 * Memory models: a case for rethinking parallel languages and hardware * Go Memory Model * 蒙卓的博客文章「Go 团队如何解 Bug:乱序执行与内存屏障」 * Go 团队成员:Than McIntosh * git bisect * 《大教堂与集市》 * Google Compute Engine * Go Build Farmer * Go Build Dashboard * Type Parameters - Draft Design * The Rise of Worse is Better * Go 贡献者俱乐部 * 华为 2012 实验室 * 《现代编译原理:C 语言描述》(虎书) * 玛丽娜 Marina * 《UNIX 编程艺术》 ### 📝 联系我们 * 来信 hi@talkgo.fm * 群组 Go 夜聊听友群。
- 第 1 期:参加 GopherCon 2020
# 第 1 期:参加 GopherCon 2020 * 主持: 杨文, 欧长坤 本期摘要:这是 Go 夜聊的第一期节目,我们选择了一个跟全球 Go 语言开发者都有关系的话题,就是刚刚结束的 GopherCon。在疫情的影响下,原本计划在 6 月份举办的大会如今推迟到了 11 月,由原本的线下也更改为了线上。那么参加这种大会有什么特别之处?参加这个大会会有哪些潜在的收益?从大会里又有那些有关 Go 语言的相关“小道”消息? [GopherCon 2020 直播指挥中心] ## 时间线 * 00:45 GopherCon 的介绍和起源 * 04:08 参会的费用、形式及日程安排 * 08:40 在全球范围内进行线上大会的交流工具 * 10:54 大会的赞助商和他们的潜在动机 * 17:42 参加 GopherCon 大会的原因 * 19:33 除了 GopherCon 之外的其他参会经历 * 23:31 各式各样的 GopherCon 和 Meetup * 29:00 Go 语言编译器和运行时的领头人 Austin Clements * 36:05 运行时异步抢占的设计由来 * 39:21 有关添加泛型支持的各类小道消息 * 42:10 值回票价的 QA 环节和 Go 运行时未来的发展方向 * 54:05 其他的一些参会环节 * 58:54 推荐环节 ## 🔗 相关链接 * GopherCon * Rob Pike 参加的 The Changelog 播客第 100 期节目 * 第一届 GopherCon 大会 Rob Pike 的开题演讲 * CppCon * Discord * PyConWeb * Russ Cox 表达举办全球范围内的贡献者峰会的公开邮件 * Austin Clements 的 GitHub * Go 运行时调度器的作者 Dmitry Vyukov 的 GitHub * Austin Clements: Pardon the Interruption: Loop Preemption in Go 1.14 * Go: A Documentary * Robert Griesemer: Typing [Generic] Go * Go 1 的兼容性保证 * Go 1.16 的 io/fs * Go 1.16 的 embedded files * Go Modules Reference * Profile Guided Optimization * Object Lifetime Prediction in Java * Tracing garbage collection * Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance * google/tcmalloc * Register-based calling Convention * Jonathan Amsterdam: Working with Errors * image 包的作者 Nigel Tao * Rob Pike Go 语言谚语 * Go Panic! Game Show * James Carse: 有限与无限的游戏 * Lawrence Evans: 偏微分方程 ### 📝 联系我们 欢迎你加入 Go 夜聊听友群。
- 第 0 期 Go 夜聊开篇
Go 夜聊! Go 夜聊终于启动了,希望通过语音的方式跟大家度过通勤路程,如果能跟你产生帮助或者共鸣,我们会非常开心。 ### 🔗 相关链接 播客重度听众群的分享 ### 📝 联系我 欢迎你加入 Go 夜聊听友群。