Web Analytics

“我们放弃了”——Go 团队坦诚布公,聊聊那些可能永远不会加入 Go 的功能

本文永久链接 – https://tonybai.com/2025/09/22/go-team-gave-up-on-features 大家好,我是Tony Bai。 在 GopherCon Europe 2025 的 Go 团队座谈会上,Michael Stapelberg(负责go protobuf)、Damien Neil(负责Go安全相关)、Michael Pratt(负责Go运行时和Go性能相关) 和 Jonathan Amsterdam(log/slog作者,负责Go工具相关) 四位核心成员与社区进行了一场坦诚的对话。他们不仅分享了诸如官方 MCP SDK、“裸金属”Go 等激动人心的进展,更以一种罕见的坦率,正面回应了社区长期以来关心的多个“老大难”问题——包括不可变类型、泛型错误处理和非 nil 指针。其中最引人注目的一句“我们放弃了”,几乎为 Go 语言在某些方向上的演进画上了句号。 ...

September 22, 2025 · 10 min · Tony Bai

从arena、memory region到runtime.free:Go内存管理探索的务实转向

本文永久链接 – https://tonybai.com/2025/09/18/go-runtime-free-proposal 大家好,我是Tony Bai。 Go 的垃圾收集器(GC)是其简单性和并发安全性的基石,但也一直是性能优化的焦点。近年来,Go 核心团队为了进一步降低 GC 开销,进行了一系列前沿探索:从备受争议的arena 实验,到更优雅但实现复杂的 memory regions构想,最终,焦点似乎汇聚在了一项更务实、更具潜力的提案上——runtime.free。这项编号为 #74299 的实验性提案,正试图为 Go 的内存管理引入一个革命性的新维度:允许编译器和部分标准库在特定安全场景下,绕过 GC,直接释放和重用内存。其原型已在 strings.Builder 等场景中展现出高达 2 倍的性能提升。 ...

September 18, 2025 · 7 min · Tony Bai

“包管理器是万恶之源”:一次来自Odin语言作者的灵魂拷问

本文永久链接 – https://tonybai.com/2025/09/13/package-managers-are-evil 大家好,我是Tony Bai。 “包管理器是万恶之源 (Package Managers are Evil)。” 这句石破天惊的论断,出自Odin语言的创造者Ginger Bill最近发表的一篇博文。在一个npm install、pip install、go get已经成为开发者肌肉记忆的时代,这无异于一篇挑战整个现代软件开发基石的“檄文”。 ...

September 13, 2025 · 7 min · Tony Bai

解锁 CPU 终极性能:Go 原生 SIMD 包预览版初探

本文永久链接 – https://tonybai.com/2025/08/22/go-simd-package-preview 大家好,我是Tony Bai。 多年以来,对于追求极致性能的 Go 开发者而言,心中始终有一个“痛点”:当算法需要压榨 CPU 的最后一点性能时,唯一的选择便是“下降”到手写汇编,这让利用 SIMD (Single Instruction, Multiple Data) 指令集提升程序性能这条路显得尤为陡峭难行。 ...

August 22, 2025 · 10 min · Tony Bai

Go 1.25中值得关注的几个变化

本文永久链接 – https://tonybai.com/2025/08/15/some-changes-in-go-1-25 大家好,我是Tony Bai。 北京时间2025年8月13日,Go 团队如期发布了 Go 语言的最新大版本——Go 1.25。按照惯例,每次 Go 大版本发布时,我都会撰写一篇“Go 1.x 中值得关注的几个变化”的文章。自 2014 年的 Go 1.4 版本起,这一系列文章已经伴随大家走过了十一个年头。 ...

August 15, 2025 · 8 min · Tony Bai

二进制的“魔术”:每个 Go 程序员都应掌握的位操作艺术

二进制的“魔术”:每个 Go 程序员都应掌握的位操作艺术 - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

August 13, 2025 · 6 min · Tony Bai

为何Go语言迟迟未能拥抱 io_uring?揭秘集成的三大核心困境

本文永久链接 – https://tonybai.com/2025/08/11/why-go-not-embrace-iouring 大家好,我是Tony Bai。 在 Linux I/O 的世界里,io_uring 如同划破夜空的流星,被誉为“终极接口”。它承诺以无与伦比的效率,为数据密集型应用带来革命性的性能提升。正如高性能数据库 ScyllaDB 在其官方博文中所展示的,io_uring 能够将系统性能推向新的高峰。 ...

August 11, 2025 · 7 min · Tony Bai

Go json/v2实战:告别内存爆炸,掌握真流式Marshal和Unmarshal

本文永久链接 – https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2 大家好,我是Tony Bai。 Go 开发者长期以来面临一个痛点:标准库 encoding/json 在处理大型 JSON 数据时,即使使用 Encoder/Decoder,也因其内部的全量缓冲机制而导致巨大的内存开销。备受期待的 encoding/json/v2 提案(#71497)旨在从根本上解决这一问题。通过引入全新的底层包 encoding/json/jsontext,v2 实现了真正的流式处理能力。本文将通过具体的、可量化的基准测试,向你展示 v1 的内存陷阱,并演示如何使用 json/v2 高效地实现流式处理大规模 JSON 数据,彻底告别内存爆炸的烦恼。 ...

August 9, 2025 · 6 min · Tony Bai

Rust 的安全神话?数据库 CEO 为何在关键系统中仍选 C++

Rust 的安全神话?数据库 CEO 为何在关键系统中仍选 C++ - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

July 22, 2025 · 6 min · Tony Bai

Go 的“无聊”超能力:为什么“选项更少”反而让你更快?

Go 的“无聊”超能力:为什么“选项更少”反而让你更快? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

July 12, 2025 · 5 min · Tony Bai