惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
T
Threatpost
C
CERT Recently Published Vulnerability Notes
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
K
Kaspersky official blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
Project Zero
Project Zero
H
Heimdal Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
Google Online Security Blog
Google Online Security Blog
W
WeLiveSecurity
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Schneier on Security
Schneier on Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
News | PayPal Newsroom
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hacker News: Front Page
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Cloudbric
Cloudbric
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
S
Securelist
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
NISL@THU
NISL@THU
N
News and Events Feed by Topic
S
Security Affairs
The Last Watchdog
The Last Watchdog
T
Tor Project blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
AWS News Blog
AWS News Blog
P
Proofpoint News Feed
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security

Tony Bai

不用 Python,也能训练大模型:两年之后再看 Go 语言机器学习框架 GoMLX 百万行代码,两周搞定!Anthropic揭秘AI代码迁移六步法:秘诀不是改代码,是改流程 重磅!Tokio官方发布全栈框架Topcoat:不用WASM,AI时代Rust也能“糊”网页了 软件工厂的明与暗:当代码可以自动生产,人类为何必须留下一盏灯? Twitter之父再出手:Block开源Buzz,要让人类和AI Agent「同工同权」 Go 密码学维护者放大招:把 Passkey 存成一行字符串,还顺手为 Go 1.28 写好了 API Loop Engineering才火两个月,硅谷已经卷出“Graph Engineering”了 我开源了 cc-session-migrate :让 Claude Code 会话在多台机器之间自由迁移 从掌上设备的失败到AI时代的基石:Java官方纪录片,揭开一门语言30年的生死赌局 “皇帝的新衣”一年后:对话Thorsten Ball谈Agentic编程 告别标签页焦虑:我让 AI 帮我做了个浏览器插件 TabQueue Bun刚把Zig重写成Rust,这个团队却用487天反向重写 为了一个函数名,Go官方吵了两个月:maps.Same提案近日正式通过 Go 1.28 路线图首度曝光:Cgo 告别C工具链?泛型容器将入标准库? 掌控外环:为什么“循环工程”的边界必须由人类死守? 别再往 Go 里塞 Java 了:拆解 spf13 的 Idiomatic Go 信仰 AI 不在乎代码烂不烂,但你的Token账单在乎:一项660次实验揭示的编程新常识 10倍速 TypeScript 7.0 正式发布,前Go产品经理:Go才是AI智能体时代的“天选语言” Bun 重写为 Rust 后,Zig 之父罕见开炮:“我们早就等着看你重写” 全新 AI 技术栈:模型、Harness、Loop 与自我进化的智能体 AI 重写 Bun 为Rust全过程揭秘:101万行代码、11天、64个Claude并行开工 MCP Server 架构模式全解析:5 种模式、4 个反模式,与那条不能越过的“工具数量红线” 从手动 govanityurls + Nginx 迁移到 gvu:一次真实迁移记录 Go 私有模块拉取全解:凭据配置 + Vanity URL,个人与组织全覆盖 从“切歌小工具”到“零人工代码”:Claude Code 的诞生史,比科幻还科幻 如何使用 Claude Code 构建 AI 循环系统(Loops) 5 分钟上手 gvu:把 vanity import path 这件事,从“半天运维”变成一条命令 Go 对语言演化的保守态度,在未来 5 年是否仍然正确呢? 五年,三篇文章,一个我一直没真正解决的问题 别把“容易”当“简单”:Gin 框架作者撰文揭秘 88k Star 背后的架构哲学 每个 AI 工程师都应该知道的 20 个循环设计模式 cc-switch-cli:专为终端控与远程开发打造的 Claude Code 多模型切换工具! Andrej Karpathy 解析 Loop Engineering:构建“数日级”长程 Agent 的 9 条黄金法则 HashiCorp 创始人:AI 时代,我们为什么越来越需要有“品味”的程序员? HashiCorp 创始人:AI 时代,我们为什么越来越需要有“品味”的程序员? 一个 Rust 项目吃掉 75GB 硬盘?聊聊 Go 与 Rust 的“缓存焦虑”与拯救指南 折腾过各种语言后,我为什么总是回到 Go 语言? YC 揭秘 AI 原生组织:打造一家在睡梦中自我进化的公司 从 WordPress 到 Hugo:一个 20 年技术博客的迁移实录 偿还十年技术债:深度拆解 Go 1.27 的 GODEBUG 强力清理计划 浏览器里的“安全阴谋”:为什么 Go 1.27 的 UUIDv7 会离奇丧失随机性? Go 1.27新特性前瞻:泛型方法落地,标准库内建 UUID - Tony Bai AI 正在撕裂研发团队:狂欢的“托管派”与心碎的“守夜人” - Tony Bai 屠榜 CNCF!为什么在云原生时代,Go 语言能把 Java、C++ 和 Rust 堵在门外? 上千程序员自爆 AI 的“卧槽时刻”:是推开神界大门,还是跌入黑盒地狱? - Tony Bai 大模型正在见顶!传奇架构师:欢迎来到“平坦曲线时代” - Tony Bai Anthropic 40万大样本揭秘:AI 时代为什么“专家”身价暴涨? - Tony Bai 在 AI 编码时代,为什么我们依然选择 Go 而不是 Rust? DeepMind 亮出王炸:别再手写 Agent Harness 了,AI 已经学会自己写了! 为什么说“编译通过,就能运行”?Google 专家 Alice 揭秘 Rust 的工程美学与底层逻辑 谷歌 SRE 重磅白皮书:当 AI 自动写出 10 倍代码,谁来阻止系统崩溃? 别再省 Token 了!硅谷新共识:浪费算力才是唯一捷径 - Tony Bai Linux 内核顶级维护者:写了 35 年 C,是 Rust 让我重新找回了编程的乐趣 拒领上亿、封杀 AI:Zig 之父为什么 10 年不发 1.0? 写地道的 Go 语言,是否能让你成为了一个更好的开发者? - Tony Bai RSA 将死?Let’s Encrypt 押注 MTCs 迎战后量子时代 C++ 的权力游戏:一部关于妥协、背叛与重生的“史诗神剧” - Tony Bai 终结十年纠结:Go 新提案允许 Example 支持任意函数签名 - Tony Bai 2026年,大厂重构核心系统为何集体投向 Go? - Tony Bai “辛辛苦苦考上985,却发现AI能替代我90%的工作”:今天的高考,我们还在为什么而战? - Tony Bai 传奇黑客 Geohot 炮轰 AI Agent:这是软件工程史上代价最昂贵的灾难! 别把 Go 写成 Java:毁掉项目从过度架构开始 - Tony Bai 开源维护者的困境 - Tony Bai AI 时代如何真正掌握一门新技术?这份非主流学习指南建议永久收藏 - Tony Bai Go 生态17年大浪淘沙:2026年最值得引入的10个“神仙级”QoL工具包 - Tony Bai 再见样板代码!Go 官方新提案:函数一键转接口 - Tony Bai 写代码快 10 倍,不等于研发快 10 倍!Google 揭秘 AI 系统级瓶颈 Google I/O 2026:Jeff Dean 携 DeepMind 众神宣告,AI Agent 正在终结“标准化软件”时代 AI 优化 1.5ms,手写 0.02ms!Ghostty 作者痛批 AI 编程“平庸陷阱” Redis 之父吐槽现代前端的复杂性:我们到底是在解决问题,还是在制造问题? - Tony Bai 无痛消灭技术债:Google I/O 2026 开启 Go 自动重构时代 省下 10% CPU!Uber 揭秘 Go 栈扩容的隐秘代价 从 Go 迁移到 Rust - Tony Bai 悄悄用 Go 重写 AI 基础设施:NVIDIA 的 GPU 云平台为何选择 Go? Shopify 23,000 名工程师背后的 Claude Code 配置方案(你可以直接复刻的完整配置) Google 开源 AX 与 Agent Substrate:构建以 Agent 为核心的云原生计算底座 十年难题终获突破:揭秘 Go 1.27 接口逃逸分析优化 - Tony Bai
171个“已批准”却迟迟未实现的提案:Go语言的十年“欠账清单”
Tony Bai · 2026-07-14 · via Tony Bai

题图

本文永久链接https://tonybai.com/2026/07/14/171-accepted-unimplemented-go-proposals-a-decade-of-technical-debt

大家好,我是Tony Bai。

Go 语言的提案(Proposal)机制,一直被认为是开源社区治理的范本之一:任何人都可以在 golang/go 仓库提交提案,经过公开讨论、每周例会审阅,最终由核心团队给出 Accepted(接受)/ Declined(拒绝)的结论。这套流程运行了十几年,外界普遍评价是“慢,但运行还算正常”。

不过,如果你打开 GitHub 上golang仓库的这条筛选链接:

state:open label:"Proposal-Accepted"

会看到一个略显尴尬的数字——171

也就是说,有 171 个提案已经被官方明确“批准通过”,却因为迟迟没有代码实现和代码合入,Issue 仍然挂在“未关闭”状态。其中年纪最大的一个,编号 #5901encoding/json:支持按 Encoder/Decoder 注册自定义的 marshal/unmarshal 规则),提交于 2013 年 7 月——距今已经 13 年。

“被批准”不等于“被实现”,这在任何工程体系里都不新鲜。但 Go 的特殊之处在于,它的提案库是完全公开、有据可查的,这让我们第一次可以完整地把这堆“技术欠账”翻出来,看看它到底欠了多久、欠在哪、以及官方最近有没有在还。

先做一次“体检”:171个Issue的画像

我们抓取了全部 171 条 Accepted 状态的 Issue,按创建时间、里程碑(Milestone)、涉及的包/工具做了统计。

先看年龄分布,以 2026 年 7 月为基准:

提案年龄 数量 占比
不到 1 年 9 5%
1–2 年 15 9%
2–3 年 22 13%
3–5 年 40 23%
5–8 年 44 26%
8–10 年 32 19%
10 年以上 9 5%

超过一半(约 50%)的已接受提案,积压时间在 5 年以上。这不是个案,是常态。

再看官方给它们排的"档期"(Milestone):

Milestone 数量 含义
Backlog 107 已批准,但暂无明确排期
Unreleased 22 已有代码但尚未随版本发布
Unplanned 21 已批准,明确说"暂不计划"
Go1.28 8 已排入下一个大版本
Go1.27 6 已排入即将发布的版本
Proposal 7 流程状态待整理

近 63% 的提案挂在 Backlog——这是 Go 团队一个相对诚实的做法:与其假装“很快就做”,不如明确标注“暂无人力,欢迎社区认领^_^”。

分类来看,欠账最多的是这几块:

  • x/* 扩展仓库(x/net、x/crypto、x/tools 等):31 个
  • 标准库综合类(无固定包前缀,多为语言/工具链层面):26 个
  • cmd/go 命令本身:22 个
  • 密码学相关(crypto/*x/crypto/*):22 个
  • 其他命令行工具(cmd/vetcmd/compilecmd/asm 等):19 个
  • net / net/http:13 个
  • testing / runtime:各 8 个

一个有意思的规律是:越“边缘”的仓库和越依赖社区贡献的领域,积压越严重x/* 系列仓库本来就不在 Go 核心团队的 KPI 里,crypto 相关提案往往涉及大量向后兼容的谨慎评估,天然就慢。

几个值得展开讲的“钉子户”故事

数据背后,每一个长期未落地的提案都有自己的故事。挑几个有代表性的说一说。

1. 十年之后,它真的要来了:类型推断的复合字面量

#12854spec: type inferred composite literals)创建于 2015 年 10 月,讨论热度极高——279 条评论,是 171 个提案里讨论最激烈的第二名。它想解决的问题很朴素:写 []*Point{{1, 2}, {3, 4}} 这种嵌套复合字面量时,能不能让编译器自动推断出内层的类型,而不用每次都写全 &Point{1, 2}

这个提案在漫长的拉锯之后被正式接受,而根据最新的里程碑标记,它已经被排进了 Go 1.28——也就是说,一个十年前提出的语法改进,很可能会在明年正式落地。这或许是本轮梳理里最好的"欠账终于要还"的例子。

2. 已经实现,却卡在"要不要默认打开":压缩包路径穿越漏洞

#55356archive/tar, archive/zip: add ErrInsecurePath)是个安全类提案,创建于 2022 年 9 月,背后关联了 CVE-2018-25046、CVE-2020-36560 等多个真实漏洞编号——archive/tararchive/zip 长期以来会原样返回压缩包里的路径,如果调用方不加处理直接落盘,就可能被"路径穿越"攻击写到任意目录。

有意思的是,这个提案早在 CL 449937 就已经写好代码合入了,但默认是关闭的,需要显式设置 GODEBUG=zipinsecurepath=1 才能拿到旧行为、=0 才是新的安全检查。原因是社区反馈发现大量 Docker 镜像里的 tar 文件本身就包含绝对路径,贸然把安全检查设为默认开启会大面积破坏现有程序。于是这个 Issue 至今仍然挂着 NeedsDecision 标签——代码已经写完,卡住的是"什么时候把开关默认打开"这个产品决策。这提醒我们:一个提案被标记 Accepted、甚至代码已经合并,也不代表它已经在你的程序里生效。

3. 被讨论了8年,至今没人交作业:go build -static

#26492 创建于 2018 年 7 月,标题很简单:给 go build 加一个 -static 参数,把现在那一长串魔法参数(-ldflags '-extldflags "-fno-PIC -static"' -buildmode pie -tags 'osusergo netgo static_build')封装起来。

八年过去,Issue 底下积累了 42 条评论,几乎全是社区用户在互相传授各种手写的静态编译参数组合,甚至还衍生出了 Windows、macOS、Alpine/musl 下各不相同的坑。核心维护者 Ian Lance Taylor 很早就说过,这个提案本身技术难度不大,缺的是有人愿意投入时间做跨平台测试,标签也一直是 help wanted。这是一个典型的"共识早已达成、代码却始终无人认领"的案例——它比拼的不是技术方案,而是谁愿意花时间去啃这块难啃的边角料。

4. 三年拉锯战:该不该允许"重试"一个测试

#62244cmd/go: add support for dealing with flaky tests),来自前Go核心成员、现Tailscale 工程师 Brad Fitzpatrick,想给 testing.T 加一个 Retry() 方法,让"偶发失败"的测试可以标记后自动重跑。

这条 Issue 引发了标准库维护者 Bryan Mills 等人长达数十条评论的细节争论——重试该发生在哪一层?子测试失败后父测试还能重试吗?会不会掩盖真正的数据竞争 Bug?最终提案在争论中被接受,目前标签里挂着 FixPending(修复代码正在流程中)。它的价值在于告诉我们:哪怕是一个看起来"该有"的功能,Go 团队也会为 API 的每一个语义细节较真到底,这也是为什么积压清单里有大量提案在"接受"和"落地"之间隔着好几年的讨论期。

5. 早就实现了大半,只是"迟迟关不掉":寄存器传参

#40724cmd/compile: switch to a register-based calling convention for Go functions)是本次梳理里讨论最激烈的提案,292 条评论。它提议把 Go 函数调用从"栈传参"改成"寄存器传参",预期能带来 5%–10% 的整体性能提升。

这个提案其实早在 Go 1.17(2021 年)就已经在 amd64、arm64 上落地,是过去几年 Go 运行时最重要的性能优化之一。但 Issue 至今没关——因为其他架构(386、MIPS 等)的寄存器 ABI 还没做完。这类"大提案"往往会被拆成几十个 CL 分批合入,“未关闭"不代表"没有进展”,反而可能是进展最快的那一批。

为什么会攒下这么多"欠账"?

把这些故事放在一起看,会发现"171"这个数字背后其实有几层原因,而不是简单的"Go团队拖延":

第一,“Accepted"从来只是共识,不是排期。

官方的表态非常明确——一旦提案通过,Issue 的定位就从"要不要做"变成"记录实现进度”,但具体谁来做、什么时候做,取决于是否有核心团队成员认领,或者是否有社区贡献者提交 CL。Backlog 里 107 个提案,本质上就是"没人认领"的状态。

第二,很多提案依赖社区,而不是 Google 内部资源。

打上 help wanted 标签的提案(比如 -static 标志),核心团队默认把它当作"欢迎外部贡献"的任务,如果没人主动提交实现,它可以在 Backlog 里一直放着。

第三,涉及行为变更的提案,往往要经过漫长的"软着陆"周期。

ErrInsecurePath 的故事说明,哪怕代码写完了,一旦涉及默认行为的改变,Go 团队宁愿先做成 GODEBUG 开关观察几个版本的兼容性反馈,也不愿贸然强推——这是 Go 1 兼容性承诺决定的谨慎风格,代价就是 Issue 长期挂着不关。

第四,x/* 扩展仓库和密码学模块本身优先级更低。

这两块加起来占了 171 个里的 53 个,接近三分之一,恰恰是因为它们不属于标准库的"必须维护"范围,或者涉及密码学安全审查,天然节奏更慢。

但迹象显示:官方正在"加速消化"

如果只看历史积压,容易得出"Go 提案机制正在失速"的悲观结论。但把镜头拉近到最近几周,会看到一些不一样的信号。

以文章开头提到的三个 Issue 为例,截至发稿(2026 年 7 月上旬),它们全部处于近一周内刚被更新的状态:

  • #62244(flaky test 重试):标签已更新为 FixPending,意味着修复代码正在评审队列中;
  • #55356(压缩包路径安全):近期仍有维护者在讨论默认行为切换的时间表;
  • #26492go build -static):社区在最近一周内仍有新的实践反馈提交。

再结合前面统计到的里程碑分布——Go 1.27(预计 2026 年 8 月发布)已明确排入 6 个历史遗留提案,Go 1.28 排入 8 个,其中就包括那个十年前的"类型推断复合字面量"提案。再往前看这几年的版本节奏:Go 1.26(2026 年 2 月发布)把 gotypesaliastlsunsafeekm 等好几个拖了多个版本的 GODEBUG 开关正式清理转正;Go 1.27 又计划继续清理一批遗留的兼容性开关。

这背后隐约能看到一种工作方式的转变:与其无限期地让一个"默认关闭的新行为"停留在 GODEBUG 里,Go 团队近几个版本明显加快了把这些历史开关"转正"或者"清理"的节奏,某种意义上也是在替多年前的提案"还账"。

如果你是 Go 用户或者贡献者,这份"171个已接受未实现"的清单其实很有实用价值:

  • 如果你正在等待某个 Go 新特性,先查一下它是不是已经"Accepted"却卡在 Backlog。这意味着共识早已达成,缺的只是实现者——如果你有能力,这可能是一个比"从零提案"低得多的贡献门槛。
  • 不要把"Accepted"等同于"即将发布"。一个提案从接受到真正随版本发布,中位数大概率要横跨好几个 Go 大版本,涉及兼容性的改动尤其如此。
  • 关注 Milestone 标签,而不是只看 Accepted 标签。挂着 Go1.27Go1.28 这类具体版本号的提案,才是短期内真正会落地的那一批;BacklogUnplanned 更像是一份"愿望清单"。

Go 的提案机制之所以被认为运行良好,恰恰是因为它把这些"没做完"的事情摆在明面上,而不是悄悄雪藏。

171 这个数字看起来触目惊心,但换个角度看,它也是一份公开、透明、随时可以被验证进度的路线图——这在很多闭源语言和框架里,是完全看不到的。


数据来源:GitHub golang/go 仓库 Issue 检索(state:open label:"Proposal-Accepted"),统计时间为 2026 年 7 月。文中提及的版本发布时间以 Go 官方发布说明为准,如有更新以官方信息为准。


还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。