<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tony Bai &#187; Rust</title>
	<atom:link href="http://tonybai.com/tag/rust/feed/" rel="self" type="application/rss+xml" />
	<link>https://tonybai.com</link>
	<description>一个程序员的心路历程</description>
	<lastBuildDate>Thu, 09 Apr 2026 00:20:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>别搞“小而美”了！Rust 开发者请愿：求求标准库学学 Go 吧</title>
		<link>https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/</link>
		<comments>https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/#comments</comments>
		<pubDate>Thu, 09 Apr 2026 00:20:15 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[BackwardCompatibility]]></category>
		<category><![CDATA[BatteriesIncluded]]></category>
		<category><![CDATA[cargo]]></category>
		<category><![CDATA[CodeAudit]]></category>
		<category><![CDATA[crates]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[Maintainability]]></category>
		<category><![CDATA[Modularity]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[OpenSourceCommunity]]></category>
		<category><![CDATA[PackageManager]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[standardlibrary]]></category>
		<category><![CDATA[SupplyChainSecurity]]></category>
		<category><![CDATA[SwordOfDamocles]]></category>
		<category><![CDATA[ThirdPartyDependencies]]></category>
		<category><![CDATA[ZerocostAbstraction]]></category>
		<category><![CDATA[代码审计]]></category>
		<category><![CDATA[供应链安全]]></category>
		<category><![CDATA[可维护性]]></category>
		<category><![CDATA[向后兼容性]]></category>
		<category><![CDATA[安全性]]></category>
		<category><![CDATA[开源社区]]></category>
		<category><![CDATA[标准库]]></category>
		<category><![CDATA[模块化]]></category>
		<category><![CDATA[电池内置]]></category>
		<category><![CDATA[第三方依赖]]></category>
		<category><![CDATA[软件包管理]]></category>
		<category><![CDATA[达摩克利斯之剑]]></category>
		<category><![CDATA[零成本抽象]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6161</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go 大家好，我是Tony Bai。 如果你之前经常听 Go 社区最火的播客 GoTime(很遗憾，该播客2024年末因平台原因停播了)，你一定会熟悉每期节目最后的那个经典环节——“Unpopular Opinion”（非主流观点）。在这个环节，嘉宾们会分享一些看似离经叛道、却往往一针见血的“暴论”。 但就在前几天，这个流行于 Go 社区的“梗”，却被隔壁的 Rust 社区“偷”了过去，并掀起了一场史诗级的“路线之争”。 一位 Rust 开发者，在 r/rust 论坛上发了一篇帖子，标题就叫：《Unpopular opinion: Rust should have a larger standard library》（非主流观点：Rust 应该有一个更大的标准库）。 他在这篇帖子中发出了灵魂拷问： “我不想为了写一个程序，被迫去拉几百个我根本没时间、也没人去审计的第三方依赖包。看看隔壁的 Go 是怎么做标准库的，你几乎可以不依赖任何三方包就构建出复杂的系统！” 这篇帖子瞬间引爆了 Rust 社区。短短一天，帖子收获了近 700 的高赞和近 300 条激烈辩论。 这看起来像是一场简单的“库多库少”之争，但本质上，它背后是 Rust 这门以“零成本抽象、极致安全”著称的语言，在面对日益猖獗的供应链安全威胁和 Go 语言“开箱即用”的降维打击时，所爆发的一场深刻的身份危机与哲学反思。 “小而美”的代价：悬在每个 Rust 项目头顶的达摩克利斯之剑 长期以来，Rust 社区一直为自己“小核心、强生态”的模式感到自豪。Rust 的标准库（std）极其精简，只提供最基础、最核心的功能。任何稍微高级一点的需求，比如随机数生成、异步运行时、序列化，官方都鼓励你去 crates.io 上找社区“钦定”的“明星库”（Blessed Crates）。 这套模式在早期极大地促进了生态的繁荣。但随着 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/stop-being-small-and-beautiful-rust-petition-to-learn-from-go-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go">本文永久链接</a> &#8211; https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go</p>
<p>大家好，我是Tony Bai。</p>
<p>如果你之前经常听 Go 社区最火的播客 <a href="https://changelog.com/gotime/">GoTime</a>(很遗憾，该播客2024年末因平台原因停播了)，你一定会熟悉每期节目最后的那个经典环节——“Unpopular Opinion”（非主流观点）。在这个环节，嘉宾们会分享一些看似离经叛道、却往往一针见血的“暴论”。</p>
<p>但就在前几天，这个流行于 Go 社区的“梗”，却被隔壁的 Rust 社区“偷”了过去，并掀起了一场史诗级的“路线之争”。</p>
<p>一位 Rust 开发者，在 r/rust 论坛上发了一篇帖子，标题就叫：《<a href="https://www.reddit.com/r/rust/comments/1seu7p2/unpopular_opinion_rust_should_have_a_larger/">Unpopular opinion: Rust should have a larger standard library</a>》（非主流观点：Rust 应该有一个更大的标准库）。</p>
<p>他在这篇帖子中发出了灵魂拷问：</p>
<blockquote>
<p>“我不想为了写一个程序，被迫去拉几百个我根本没时间、也没人去审计的第三方依赖包。看看隔壁的 Go 是怎么做标准库的，你几乎可以不依赖任何三方包就构建出复杂的系统！”</p>
</blockquote>
<p>这篇帖子瞬间引爆了 Rust 社区。短短一天，帖子收获了近 700 的高赞和近 300 条激烈辩论。</p>
<p>这看起来像是一场简单的“库多库少”之争，但本质上，它背后是 Rust 这门以“零成本抽象、极致安全”著称的语言，在面对日益猖獗的<a href="https://tonybai.com/2026/02/25/govulncheck-high-signal-to-noise-ratio-security-workflow">供应链安全威胁</a>和 Go 语言“开箱即用”的降维打击时，所爆发的一场深刻的身份危机与哲学反思。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-api-in-action-qr.png" alt="" /></p>
<h2>“小而美”的代价：悬在每个 Rust 项目头顶的达摩克利斯之剑</h2>
<p>长期以来，Rust 社区一直为自己“小核心、强生态”的模式感到自豪。Rust 的标准库（std）极其精简，只提供最基础、最核心的功能。任何稍微高级一点的需求，比如随机数生成、异步运行时、序列化，官方都鼓励你去 crates.io 上找社区“钦定”的“明星库”（Blessed Crates）。</p>
<p>这套模式在早期极大地促进了生态的繁荣。但随着 npm left-pad 事件和各种开源投毒攻击的阴影笼罩全球，这套模式的代价也变得越来越难以承受。</p>
<p>原帖作者一针见血地指出了所有人的噩梦：</p>
<blockquote>
<p>“是的，你可以采取各种缓解措施。但等你发现某个藏在你依赖树第三层的、不起眼的包被植入了恶意软件时，你的服务器密钥可能早就被偷光了！”</p>
</blockquote>
<p>评论区里的一位开发者用一句话概括了所有人的痛点：</p>
<blockquote>
<p>“我完全同意。有时候 std 里就是缺了那么一点至关重要的东西。我能理解这背后的原因，但为了生成一个随机数就要去装一个第三方包，这实在有点小题大做了。”</p>
</blockquote>
<p>这正是 Rust 开发者面临的尴尬：当你只是想生成一个 UUID，或者发起一个 HTTP 请求时，你被迫要对 rand、reqwest、tokio 这些由社区个人或小团体维护的库，付出与 Rust 官方核心团队同等级别的“信任”。</p>
<p>而这种信任，正在变得越来越昂贵和危险。</p>
<h2>隔壁的诱惑：Go 语言的“大一统”模式</h2>
<p>在这场大讨论中，一个名字被反复提及，它就是 Go 语言。</p>
<p>Go 从诞生之初，就选择了与 Rust 截然相反的“自带电池（Batteries Included）”哲学。</p>
<ul>
<li>你想做 Web 开发？net/http 原生支持，性能强大到可以直接裸奔在生产环境。</li>
<li>你想做 JSON/XML 解析？encoding/json(以及实验性的encoding/json/v2)、encoding/xml 是标配。</li>
<li>你想做并发？goroutine 和 channel 是语言级原生特性。</li>
<li>你想生成随机数？math/rand、crypto/rand 随便用。</li>
</ul>
<p>评论区里，一位 Rust 开发者的对比极其扎心：</p>
<blockquote>
<p>“把恶意代码偷偷塞进一个（流行的）Crate 的第四层依赖里，比把它塞进 Rust 的 std 里要容易得多。”</p>
</blockquote>
<p>Go 语言通过一个庞大、稳定、由官方核心团队直接维护的标准库，为开发者提供了一道坚固的“安全护城河”。你可以在不引入任何一个第三方依赖的情况下，构建出一个功能极其完备、性能强大的高并发网络服务。</p>
<p>这种“开箱即用”的安全感和便利性，对于那些深受<a href="https://tonybai.com/2025/05/21/go-crypto-audit">供应链安全审计</a>折磨的企业开发者来说，是致命的诱惑。</p>
<h2>社区的挣扎：当“保守”成为“瓶颈”</h2>
<p>面对社区的“呐喊”，Rust 核心团队的成员和社区大佬们也纷纷下场，给出了极其理性和深刻的解释。他们的回复，揭示了 Rust 在标准库扩张上，面临的“三重枷锁”。</p>
<p><strong>枷锁一：向后兼容性的“诅咒”</strong></p>
<p>一位核心成员引用了 Python 社区的一句名言：</p>
<blockquote>
<p><strong>“标准库，是模块最终的坟场（The standard library is where modules go to die）。”</strong></p>
</blockquote>
<p>一旦一个 API 进入了 std，它就必须背上永不破坏向后兼容的沉重承诺。哪怕 10 年后发现这个设计有缺陷，也只能眼睁睁地看着它腐烂，或者推出一个 urllib2、urllib3 这样极其丑陋的补丁。</p>
<p>Rust 团队宁愿让这些库在社区里自由进化、大浪淘沙，等到它们的设计真正成熟、稳定到可以“永恒”时，再考虑纳入 std。比如 once_cell 和最新的 rand（目前在 nightly 版本中）。</p>
<p><strong>枷锁二：无休止的“维护地狱”</strong></p>
<p>另外一名核心成员指出，将一个库纳入 std，意味着它的维护成本将全部转移到人数本就捉襟见肘的官方维护者身上。而在社区，每个 Crate 都有自己专门的维护者。这是两种完全不同的成本模型。</p>
<p><strong>枷锁三：设计的“过早僵化”</strong></p>
<p>最典型的例子就是异步。原帖作者提议：“Rust 能不能偷一下 Zig 的 IO 思想，这样我们就不需要在 Tokio 和 non-Tokio 生态之间分裂了？”</p>
<p>一位社区大佬立刻反驳：Zig 没有 Rust 的 Send/Sync 标记，两者的异步模型有本质区别。Rust 的异步生态之所以看起来“分裂”，恰恰是语言给了开发者在不同场景下做最优选择的自由。如果过早地在 std 里统一一个官方运行时，反而会扼杀创新。</p>
<h2>破局之路：从“大一统”到“邦联制”</h2>
<p>在这场激烈的辩论中，一些极具建设性的“折中方案”也开始浮现。这或许预示着 Rust 未来的演进方向。</p>
<p><strong>方案一：官方背书的“准标准库（Semi-official）”</strong></p>
<p>一位开发者提出，Rust 项目组可以借鉴 C++ Boost 库的模式，官方接管 serde、rand、tokio 这些“钦定”的明星库，将它们纳入一个统一的 extd (extended) 命名空间下。</p>
<pre><code class="rust">use extd::regex::Regex;
use extd::rand;
</code></pre>
<p>这并不会增加 std 的体积，但给了这些库一个“官方认证”的金字招牌，极大地解决了开发者的信任和审计问题。</p>
<p><strong>方案二：引入“孵化期（Incubation Phase）”</strong></p>
<p>一位开发者建议，应该有一个更明确的孵化流程，让那些有潜力进入 std 的库，先在一个类似 Go golang.org/x 的“实验场”里进行检验，而不是直接从某个个人开发者仓库里一步登天。</p>
<p><strong>方案三：强化 Cargo 的安全审计能力</strong></p>
<p>一些核心成员则认为，问题的根源不在于 std 的大小，而在于 crates.io 的分发机制不够安全。与其“因噎废食”地把所有东西都塞进 std，不如去建立更强大的包安全审计机制，比如：</p>
<ul>
<li><strong>发布隔离期</strong>：新发布的包必须经过 72 小时自动化扫描才能被下载。</li>
<li><strong>签名与信任链</strong>：通过 cargo 增强包签名和审计者签名，让企业可以选择只使用“可信审计者”批准的依赖列表。</li>
</ul>
<h2>小结：一场关于“灵魂”的拷问</h2>
<p>这场由“非主流观点(Unpopular Opinion)”引发的大讨论，表面上是在争论标准库的大小，但其核心，却是一场关于 Rust 与 Go 两种截然不同建国哲学的灵魂拷问。</p>
<ul>
<li><strong>Go 语言</strong>，像一个大一统的、中央集权的帝国。它为你提供了从道路、货币到度量衡的一切基础设施。你享受着极高的安全感和便利性，代价是必须忍受它某些时候的“独裁”与“不灵活”。</li>
<li><strong>Rust 语言</strong>，则更像一个松散的、充满活力的城邦联盟。官方只提供最基础的法律和军队，剩下的一切都交给各个城邦（Crates）自由发展。你拥有无与伦比的自由和选择权，代价是你必须自己承担选择的风险，并时刻提防“外敌入侵”（供应链攻击）。</li>
</ul>
<p>这两种哲学没有绝对的优劣，只有不同场景下的取舍。</p>
<p>但 Rust 社区的这场“请愿”，无疑为我们所有技术人敲响了警钟：<strong>在软件供应链日益脆弱的今天，一个强大、可靠、由顶级专家背书的“官方基础设施”，其价值正在被无限放大。</strong></p>
<p>或许，Rust 的未来，真的需要在“自由”与“安全”之间，找到一个新的平衡点。而隔壁 Go 的作业，他们可能真的需要抄一抄了。</p>
<p>资料链接：https://www.reddit.com/r/rust/comments/1seu7p2/unpopular_opinion_rust_should_have_a_larger/</p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>在你的日常开发中，你是更喜欢 Go 这种“自带电池”的大标准库模式，还是 Rust 这种“小核心+强生态”的自由模式？你是否也曾因为“拉了一堆三方库”而感到安全焦虑？</p>
<p>欢迎在评论区分享你的看法!</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2026 编程语言“饱和度”榜单出炉：JavaScript/Python 已“烂大街”，Go/Rust 成最大赢家？</title>
		<link>https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/</link>
		<comments>https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/#comments</comments>
		<pubDate>Thu, 02 Apr 2026 00:08:43 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AIEra]]></category>
		<category><![CDATA[AI时代]]></category>
		<category><![CDATA[Architecturalthinking]]></category>
		<category><![CDATA[Datadriven]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[HorizontalCompetition]]></category>
		<category><![CDATA[Involution]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ProgrammingLanguages]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SaturationRankings]]></category>
		<category><![CDATA[Shipping]]></category>
		<category><![CDATA[SupplyDemand]]></category>
		<category><![CDATA[SurvivorBias]]></category>
		<category><![CDATA[SystemArchitect]]></category>
		<category><![CDATA[TechDividend]]></category>
		<category><![CDATA[TechStack]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[UnderlyingPrinciples]]></category>
		<category><![CDATA[VerticalDeepening]]></category>
		<category><![CDATA[交付]]></category>
		<category><![CDATA[供需关系]]></category>
		<category><![CDATA[内卷]]></category>
		<category><![CDATA[幸存者偏差]]></category>
		<category><![CDATA[底层原理]]></category>
		<category><![CDATA[技术栈]]></category>
		<category><![CDATA[技术红利]]></category>
		<category><![CDATA[数据驱动]]></category>
		<category><![CDATA[架构思维]]></category>
		<category><![CDATA[横向竞争]]></category>
		<category><![CDATA[系统架构师]]></category>
		<category><![CDATA[纵向深耕]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[饱和度榜单]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6132</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners 大家好，我是Tony Bai。 在这个技术浪潮汹涌、AI 随时可能掀翻牌桌的时代，每一个程序员心中都悬着一个终极问题： “我现在的技术栈，还能吃几年饭？” 我们每天都在焦虑地刷着各种技术文章，试图从 Google、Anthropic、OpenAI、Nvidia等的风向中，窥探下一个技术红利期。但这些信息往往零散、矛盾，甚至充满了各种培训机构的“幸存者偏差”。 就在半个多月前，X 平台上的一位技术博主 Mojisola Alegbe，基于 Stack Overflow、GitHub Trends、JetBrains 等多方数据，整理并发布了一份极其残酷的私房版《2026 编程语言“饱和度”榜单》。 这篇推文就像一颗深水炸弹，在短短几天内获得了 41.2 万的惊人阅读量。大批开发者涌入评论区，有人哀嚎，有人庆幸，有人愤怒，有人不屑。这张榜单之所以能引爆全网，因为它赤裸裸地揭示了我们这个行业最真实的“供需关系”和“内卷现状”。 今天，我们就来深度扒开这张榜单背后的血泪与真相。看看你我手中的“锤子”，到底还能敲几年钉子。 榜单冲击：你的技术栈，在鄙视链的哪一层？ 让我们先深吸一口气，看看这份令人心跳加速的榜单： JavaScript (66%): 极度饱和 (Extremely Saturated) Python (58%): 非常饱和 (Very Saturated) SQL (49%): 非常饱和 (Very Saturated) TypeScript (35-40%): 高度饱和，且仍在快速增长 Java (26%): 成熟/稳定饱和 C# (18%): 中度饱和 PHP (10-11%): 正在衰退，但仍很普遍 C++ (6-7%): 小众，但用于关键系统 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/2026-programming-language-saturation-rankings-go-rust-winners-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners">本文永久链接</a> &#8211; https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners</p>
<p>大家好，我是Tony Bai。</p>
<p>在这个技术浪潮汹涌、AI 随时可能掀翻牌桌的时代，每一个程序员心中都悬着一个终极问题：</p>
<p><strong>“我现在的技术栈，还能吃几年饭？”</strong></p>
<p>我们每天都在焦虑地刷着各种技术文章，试图从 Google、Anthropic、OpenAI、Nvidia等的风向中，窥探下一个技术红利期。但这些信息往往零散、矛盾，甚至充满了各种培训机构的“幸存者偏差”。</p>
<p>就在半个多月前，X 平台上的一位技术博主 Mojisola Alegbe，基于 Stack Overflow、GitHub Trends、JetBrains 等多方数据，整理并发布了一份极其残酷的私房版《<a href="https://x.com/yehhmisi/status/2031715243622015239">2026 编程语言“饱和度”榜单</a>》。</p>
<p>这篇推文就像一颗深水炸弹，在短短几天内获得了 <strong>41.2 万</strong>的惊人阅读量。大批开发者涌入评论区，有人哀嚎，有人庆幸，有人愤怒，有人不屑。这张榜单之所以能引爆全网，因为它赤裸裸地揭示了我们这个行业最真实的“供需关系”和“内卷现状”。</p>
<p>今天，我们就来深度扒开这张榜单背后的血泪与真相。看看你我手中的“锤子”，到底还能敲几年钉子。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/ai-engineer-gpu-introduction-course-qr.png" alt="" /></p>
<h2>榜单冲击：你的技术栈，在鄙视链的哪一层？</h2>
<p>让我们先深吸一口气，看看这份令人心跳加速的榜单：</p>
<ul>
<li>JavaScript (66%): 极度饱和 (Extremely Saturated)</li>
<li>Python (58%): 非常饱和 (Very Saturated)</li>
<li>SQL (49%): 非常饱和 (Very Saturated)</li>
<li>TypeScript (35-40%): 高度饱和，且仍在快速增长</li>
<li>Java (26%): 成熟/稳定饱和</li>
<li>C# (18%): 中度饱和</li>
<li>PHP (10-11%): 正在衰退，但仍很普遍</li>
<li>C++ (6-7%): 小众，但用于关键系统</li>
<li>Go (4-5%): 低饱和，需求增长中</li>
<li>Kotlin (4-5%): 中度小众 (安卓)</li>
<li>Swift (2%): 小型但专业的生态系统</li>
<li>Rust (2-3%): 低饱和，但正在崛起</li>
</ul>
<p>看完这张图，我猜很多人的第一反应是：</p>
<ul>
<li><strong>前端/Python 工程师</strong>：完了，彻底“烂大街”了，明天就去送外卖。</li>
<li><strong>Java 工程师</strong>：稳如老狗，任你风吹雨打，我自岿然不动。</li>
<li><strong>Go/Rust 工程师</strong>：心中窃喜，果然选对了赛道，未来可期！</li>
<li><strong>PHP 工程师</strong>：……（我 PHP 是最好的语言！）</li>
</ul>
<p>但如果事情真的这么简单，那我们这个行业也未免太无趣了。这张榜单真正有价值的地方，在于它炸出了评论区里无数资深架构师和一线开发者的“人间清醒”。</p>
<h2>社区百态：饱和、内卷与“幸存者偏差”</h2>
<p>在这张榜单的评论区，你可以看到整个技术圈最真实的生态缩影。</p>
<p><strong>阵营一：饱和焦虑派</strong></p>
<p>“完了，我刚想学编程，这可怎么办？”<br />
“怪不得现在工作这么难找……”</p>
<p><strong>阵营二：不屑一顾派</strong></p>
<p>“语言只是工具，解决问题才是关键。”<br />
“这种指标毫无意义。”</p>
<p><strong>阵营三：人间清醒派（重点看这里！）</strong></p>
<p>这部分评论，往往来自那些穿越了数个技术周期的老炮。他们的观点，破具含金量。</p>
<p>一位开发者一针见血地指出：</p>
<blockquote>
<p>“语言的饱和度是个误导性指标。真正的问题不是有多少开发者懂它，而是有多少开发者能用它构建出真正有价值的系统。”</p>
</blockquote>
<p>另一位开发者则更加直接：</p>
<blockquote>
<p>“饱和度百分比毫无意义。重要的是：你能交付吗（Can you ship）？我只看三个信号：1. 真实的生产环境部署（而不是教程）；2. 系统设计的深度（而不只是 CRUD）；3. 在压力下调试复杂问题的能力。JavaScript 饱和度 66%？那又怎样，其中 90% 的人连一个可扩展的架构都设计不出来。”</p>
</blockquote>
<p>而一位博主，更是给出了顶级玩家的“搞钱思路”：</p>
<blockquote>
<p>“聪明的开发者从不追逐‘流行’的语言，他们追逐的是‘高价值’的行业<br />
  &#8211; <strong>Python → AI</strong><br />
  &#8211; <strong>C++ → 高性能系统（游戏、金融）</strong><br />
  &#8211; <strong>Rust → 安全基础设施（区块链、操作系统）</strong><br />
  &#8211; <strong>Go → 云平台（K8s、Docker）</strong><br />
  <strong>追逐金钱，而不是追逐炒作（Follow the money, not the hype）。”</strong></p>
</blockquote>
<h2>架构师的破局之道：从“横向内卷”到“纵向深耕”</h2>
<p>扒开社区的口水战，我们可以总结出三条极其宝贵的“反内卷”生存法则。</p>
<p><strong>第一条：停止在“语言层”的低水平竞争</strong></p>
<p>如果你是一个 Python 开发者，你的核心竞争力绝对不是“比别人多会几个 itertools 的函数”。</p>
<p>评论区里的一条建议非常中肯：</p>
<blockquote>
<p>“不要只学 Python 的语法。<a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIyNzM0MDk0Mg==&amp;action=getalbum&amp;album_id=4446480684395986947#wechat_redirect">去学它底层的 C++ 和 CUDA</a>。这才是 2026 年 AI 热潮中真正值钱的地方。”</p>
</blockquote>
<p>同样的道理，如果你是一个前端开发者，让你在面试中脱颖而出的，绝不是多会几个 CSS 动画技巧，而是你对 V8 引擎的内存管理、对大规模前端项目的架构设计、对 WebAssembly 的底层原理的深刻理解。</p>
<p>饱和的永远是“表层应用”，而“底层原理”的护城河，深不见底。</p>
<p><strong>第二条：将你的技术栈，锚定在高价值的“产业赛道”</strong></p>
<p>你选择的语言，决定了你的“工具”；而你选择的行业，决定了你“工具”的价值。</p>
<p>如果你用 Go，但每天只是在写一些简单的 CRUD 业务，那你和用 PHP 的同行并没有本质区别。</p>
<p>但如果你用 Go，去深耕 <strong>Kubernetes Operator 开发、去搞 Service Mesh、去做 eBPF 的底层监控</strong>，那你将进入一个截然不同的“高价值稀缺区”。</p>
<p>对于大多数开发者来说，最好的策略不是去学一门全新的、不饱和的语言（比如 Zig 或 OCaml），而是在你现有的、最熟悉的语言生态里，找到那个与<strong>“高利润、高壁垒”</strong>行业结合最紧密的纵深方向，然后一头扎进去。</p>
<p><strong>第三条：从“语言专家”进化为“系统架构师”</strong></p>
<p>评论区里，有一个非常有趣的现象：初级开发者在讨论“哪个语言好”，而资深开发者在讨论“如何交付（Ship）”。</p>
<p>当一个系统变得复杂时，瓶颈往往早已不在于某个语言的语法特性，而在于：</p>
<ul>
<li>你如何设计一套可观测的日志与监控体系？</li>
<li>你如何在不同的微服务之间做好 <a href="https://mp.weixin.qq.com/s/MUb3r1juqWIBtzlODbbQ-Q">API 的版本管理与兼容性</a>？</li>
<li>你如何<a href="https://mp.weixin.qq.com/s/evEOYgMe2lZmG2bkpoBe5Q">设计数据库的 Schema</a>，才能在未来两年内扛住 10 倍的流量增长？</li>
</ul>
<p>这些“跨语言”的系统设计能力，才是拉开普通程序员和架构师之间收入差距的根本原因。</p>
<p><strong>语言的红利期是短暂的，而架构的复利是终身的。</strong></p>
<h2>小结：你的价值，由你定义</h2>
<p>这张“饱和度”榜单，与其说是一份“死亡通知单”，不如说是一张“体检报告”。它提醒我们，如果你安于现状，只停留在语言的表层舒适区，那么无论你现在用的是 Go 还是 Python，你都随时可能被更便宜、更年轻的开发者所取代。别忘了还有不断“蚕食”初级甚至中高级程序员工作的AI！</p>
<p>在这个充满不确定性的时代，真正的安全感，来源于：</p>
<ol>
<li><strong>向下扎根</strong>，掌握技术栈的底层原理。</li>
<li><strong>向高处走</strong>，将你的能力锚定在高价值的产业。</li>
<li><strong>向外看</strong>，建立跨越语言鸿沟的系统架构思维。</li>
</ol>
<p>不要再为“哪个语言是宇宙第一”而进行无意义的口水战了。</p>
<p>你的价值，从来不是由你用什么语言决定的，而是由你能用这门语言，解决多大、多复杂、多有价值的问题决定的。</p>
<p>资料链接：https://x.com/yehhmisi/status/2031715243622015239</p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>看完这份榜单，你对自己目前的技术栈感到了焦虑，还是庆幸？在你看来，一个语言的“饱和”是危机，还是意味着更成熟的生态和机会？</p>
<p>欢迎在评论区分享你的看法！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>当 Go 还在追求极简时，C++ 26 却又加了四大“史诗级”新特性</title>
		<link>https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/</link>
		<comments>https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/#comments</comments>
		<pubDate>Mon, 30 Mar 2026 23:26:51 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AsynchronousModel]]></category>
		<category><![CDATA[C++26]]></category>
		<category><![CDATA[comptime]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[Contracts]]></category>
		<category><![CDATA[generics]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[HerbSutter]]></category>
		<category><![CDATA[HighPerformance]]></category>
		<category><![CDATA[MemorySafety]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SenderReceiver]]></category>
		<category><![CDATA[standardlibrary]]></category>
		<category><![CDATA[SystemProgramming]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[UndefinedBehavior]]></category>
		<category><![CDATA[ZerocostAbstraction]]></category>
		<category><![CDATA[元编程]]></category>
		<category><![CDATA[内存安全]]></category>
		<category><![CDATA[反射]]></category>
		<category><![CDATA[契约编程]]></category>
		<category><![CDATA[并发]]></category>
		<category><![CDATA[异步模型]]></category>
		<category><![CDATA[未定义行为]]></category>
		<category><![CDATA[标准库]]></category>
		<category><![CDATA[模板]]></category>
		<category><![CDATA[泛型]]></category>
		<category><![CDATA[系统级编程]]></category>
		<category><![CDATA[编译期计算]]></category>
		<category><![CDATA[零成本抽象]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6123</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features 大家好，我是Tony Bai。 在这个 Go、Zig 等“小而美”新语言颇受青睐的时代，如果你去技术社区里问一句：“C++ 这门语言怎么样？” 你大概率会得到一堆充满戏谑的回答：“太复杂了，别学”、“从入门到放弃”、“面试造火箭，工作拧螺丝”。 C++，这门诞生于上世纪 80 年代的编程语言，似乎早已被贴上了“老旧、臃肿、极其反人类”的标签。在很多新生代开发者眼里，它就像一头步履蹒跚的史前巨兽，理应被时代所淘汰。 但就在前天（2026年3月29日），这头“史前巨兽”不仅没有倒下，反而亮出了它那足以撕裂天空的獠牙。 C++ 标准委员会主席、C++ 界的“教父级”人物 Herb Sutter 亲自在博客上宣布：C++26 标准的技术工作，已正式完成！ Herb Sutter 还用极其兴奋的口吻将其定义为“自 C++11 以来最具冲击力的一次发布”。而这次更新的核心，是四个被他称为“Fab Four”（神奇四侠）的史诗级新特性。 当我耐着性子看完全部内容后，我脑子里只剩下四个字：叹为观止。 当 Go 语言的开发者还在为“是否要给语言增加一个三元表达式”，或泛型方法而激烈辩论时，C++ 却反其道而行之，给自己又加装了四门“宇宙级”的重型武器。这到底是 C++ 吹响的绝地反击号角，还是压垮骆驼的最后一根稻草？ 今天，我们就来硬核扒开 C++26 这四大“金刚”，看看它们到底有多强，以及它们将如何影响将来程序员对编程语言的选择。 第一门重炮：反射（Reflection）——“代码生成代码”的终极魔法 Herb Sutter 将反射放在了四大特性之首，并称之为“自模板（Templates）发明以来 C++ 最重要的升级”。 什么是C++ 的反射？简单来说，就是让代码在编译期拥有了“自我审视”和“自我创造”的能力。 在 C++26 之前，如果你想实现一个通用的 JSON 序列/反序列化库，你必须写大量重复的模板代码，或者用各种丑陋的宏来“欺骗”编译器。 但在 C++26 中，你可以像这样写出充满“神性”的代码（代码示意）： 这段代码，在编译的时候就能根据编译时的输入(test.json)自动分析JSON构造，并生成编译时用于计算的一个新类型。这在 Go [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/go-minimalism-vs-cpp26-epic-new-features-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features">本文永久链接</a> &#8211; https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features</p>
<p>大家好，我是Tony Bai。</p>
<p>在这个 Go、Zig 等“小而美”新语言颇受青睐的时代，如果你去技术社区里问一句：“C++ 这门语言怎么样？”</p>
<p>你大概率会得到一堆充满戏谑的回答：“太复杂了，别学”、“从入门到放弃”、“面试造火箭，工作拧螺丝”。</p>
<p>C++，这门诞生于上世纪 80 年代的编程语言，似乎早已被贴上了“老旧、臃肿、极其反人类”的标签。在很多新生代开发者眼里，它就像一头步履蹒跚的史前巨兽，理应被时代所淘汰。</p>
<p><strong>但就在前天（2026年3月29日），这头“史前巨兽”不仅没有倒下，反而亮出了它那足以撕裂天空的獠牙。</strong></p>
<p>C++ 标准委员会主席、C++ 界的“教父级”人物 <strong>Herb Sutter</strong> 亲自在博客上宣布：<a href="https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/">C++26 标准的技术工作，已正式完成！</a></p>
<p>Herb Sutter 还用极其兴奋的口吻将其定义为<strong>“自 C++11 以来最具冲击力的一次发布”</strong>。而这次更新的核心，是四个被他称为“Fab Four”（神奇四侠）的史诗级新特性。</p>
<p>当我耐着性子看完全部内容后，我脑子里只剩下四个字：<strong>叹为观止。</strong></p>
<p>当 Go 语言的开发者还在为“是否要给语言增加一个三元表达式”，或<a href="https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods">泛型方法</a>而激烈辩论时，C++ 却反其道而行之，给自己又加装了四门“宇宙级”的重型武器。这到底是 C++ 吹响的绝地反击号角，还是压垮骆驼的最后一根稻草？</p>
<p>今天，我们就来硬核扒开 C++26 这四大“金刚”，看看它们到底有多强，以及它们将如何影响将来程序员对编程语言的选择。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>第一门重炮：反射（Reflection）——“代码生成代码”的终极魔法</h2>
<p>Herb Sutter 将<strong>反射</strong>放在了四大特性之首，并称之为“自模板（Templates）发明以来 C++ 最重要的升级”。</p>
<p>什么是C++ 的反射？简单来说，<strong>就是让代码在编译期拥有了“自我审视”和“自我创造”的能力。</strong></p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/go-minimalism-vs-cpp26-epic-new-features-2.png" alt="" /></p>
<p>在 C++26 之前，如果你想实现一个通用的 JSON 序列/反序列化库，你必须写大量重复的模板代码，或者用各种丑陋的宏来“欺骗”编译器。</p>
<p>但在 C++26 中，你可以像这样写出充满“神性”的代码（代码示意）：</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/go-minimalism-vs-cpp26-epic-new-features-3.png" alt="" /></p>
<p>这段代码，在编译的时候就能根据编译时的输入(test.json)自动分析JSON构造，并生成编译时用于计算的一个新类型。<strong>这在 Go 语言里，需要借助 reflect 包在运行时（Runtime）以牺牲性能为代价才能做到。而 C++，直接在静态编译期（Compile-time）零成本搞定了！</strong></p>
<p>Herb Sutter 将其形容为“C++ 的十年火箭引擎”。这意味着，未来 C++ 社区将涌现出无数极其强大、但又极其复杂的元编程（Metaprogramming）库。C++ 的学习曲线，将再次被拉到一个新的高度。</p>
<h2>第二道防线：内存安全（Memory Safety）——“只需重编，安全自来”</h2>
<p>如果说反射让 C++ 的上限变得更加遥不可及，那么内存安全的提升，则是 C++ 在向 Go 和 Rust 的核心优势区发起的正面冲锋。</p>
<p>C++ 常年被诟病的核心痛点是什么？<strong>内存不安全</strong>。悬垂指针、未初始化变量读取（导致<a href="https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation">未定义行为</a>）……这些噩梦困扰了 C++ 程序员几十年。</p>
<p>C++26 给出了一个极其诱人的承诺：<strong>你的老代码一行都不用改，只要用 C++26 模式重新编译，就能自动获得大幅度的安全提升！</strong></p>
<p>这主要来源于两个方面的改进：</p>
<ol>
<li><strong>消灭未初始化变量的 UB</strong>：在 C++26 中，读取未初始化局部变量不再是“未定义行为（Undefined Behavior）”。这意味着困扰无数新手的、极其诡异的程序崩溃，将成为历史。</li>
<li><strong>“加固”的标准库</strong>：Google 和 Apple 已经将它们内部经过“加固（Hardened）”的标准库实现贡献给了 C++26。这意味着，当你使用 std::vector, std::string 等容器时，大量的边界检查会自动开启。</li>
</ol>
<p>Herb Sutter 引用了 Google 的内部数据：</p>
<blockquote>
<p>“仅在 Google，这项技术就已经修复了超过 1000 个 Bug，预计每年可以预防 1000 到 2000 个新 Bug 的产生，并将整个生产环境的段错误（Segfault）率降低了 30%。”</p>
</blockquote>
<p>这简直是在对 Go 说：<strong>“你用 GC 换来的那点可怜的安全性，我 C++ 现在也能做到了，而且依然是零成本的！”</strong></p>
<h2>第三把利剑：契约（Contracts）——代码里的“法律条文”</h2>
<p>如果你写过 Go，你一定对满屏的 if param == nil { return errors.New(&#8230;) } 感到厌烦。这种防御性编程，虽然有效，但极其啰嗦。</p>
<p>C++26 正式引入了语言级的<a href="https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface">契约编程</a>。</p>
<p>你可以像签合同一样，为你的函数制定严格的法律条文：</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/go-minimalism-vs-cpp26-epic-new-features-4.png" alt="" /></p>
<p>这些 pre 和 post 是编译器和运行时可以理解并强制执行的“法律”。如果调用者违反了前置条件，程序可以在开发阶段就立刻崩溃并给出明确的报错，而不是等到数据被污染后才在某个奇怪的地方爆炸。</p>
<p>虽然 Go 社区也在讨论类似的泛型断言，但 C++26 已经先行一步，将其做成了语言标准。</p>
<h2>第四个引擎：std::execution——C++ 的“亲儿子”协程模型</h2>
<p>在 C++20 中，虽然引入了 co_await 协程，但它只是一个语法糖，并没有提供一个统一的调度框架。</p>
<p>C++26 终于补上了这块短板，正式推出了 <strong>std::execution</strong>，也被称为 <strong>Sender/Receiver 模型</strong>。</p>
<p>这是一个极其强大、统一的异步模型框架。它让你能以一种声明式的方式，去描述、组合和调度复杂的并发任务流。</p>
<p>下面是一段使用std::execution的代码示例：</p>
<pre><code>// This is an example of a custom algorithm for starting work
// without allocations. This algorithm is also available in
// &lt;exec/start_now.hpp&gt;. (Users that don't write custom sender
// algorithms will not need to use receivers or call connect
// or start.)
template &lt;stdexec::sender_in&lt;stdexec::empty_env&gt; Sender&gt;
struct start_now {
  start_now(Sender sndr)
    : _op(stdexec::connect(std::move(sndr), _sink_rcvr())) {
    stdexec::start(_op);
  }
private:
  // start_now is implemented in terms of this custom receiver,
  // which is used to discard Sender's results.
  struct _sink_rcvr {
    using receiver_concept = stdexec::receiver_t;
    void set_value(auto&amp;&amp;...) noexcept {}
    void set_error(auto&amp;&amp;) noexcept {}
    void set_stopped() noexcept {}
  };
  stdexec::connect_result_t&lt;Sender, _sink_rcvr&gt; _op;
};

int main() {
  // A run loop is a fifo queue of work and a loop to execute the
  // work. It needs to be driven by calling its .run() member fn.
  stdexec::run_loop ctx;
  auto event_loop = ctx.get_scheduler();

  // Create two tasks that cooperatively multitask.
  auto task1 = stdexec::just()
             | stdexec::then([]{ std::puts("hello from task 1! suspending..."); })
             | stdexec::continue_on(event_loop) // suspend
             | exec::repeat_n(5)
             | stdexec::then([]{ std::puts("task 1 is done!"); });

  auto task2 = stdexec::just()
             | stdexec::then([]{ std::puts("hello from task 2! suspending..."); })
             | stdexec::continue_on(event_loop) // suspend
             | exec::repeat_n(8)
             | stdexec::then([]{ std::puts("task 2 is done!"); });

  // Start both tasks. This enqueues them for execution on the run loop.
  auto op1 = start_now(stdexec::start_on(event_loop, std::move(task1)));
  auto op2 = start_now(stdexec::start_on(event_loop, std::move(task2)));

  ctx.finish(); // tell the run loop to stop when the queue is empty
  ctx.run();    // tell the run loop to start executing work in the queue
}
</code></pre>
<p>这可以被看作是 C++ 对 Go 的 Goroutine + Channel 模型，以及 Rust 的 async/await + tokio 模型的终极回应。</p>
<p>它让 C++ 开发者第一次拥有了一套语言原生的、能够轻松编写“无数据竞争（Data-race-free by construction）”并发程序的“亲儿子”工具。</p>
<h2>小结：一场没有退路的豪赌</h2>
<p>反射、安全、契约、并发。C++26 的这四大金刚，每一个都足以在其他语言中引发一场大地震。</p>
<p>我们看到的是一头苏醒的巨兽。它没有选择像 Go 那样“断舍离”，也没有像 Rust 那样“偏执于安全”，而是极其贪婪地选择了：<strong>“我全都要！”</strong></p>
<p>它既想要极致的表达能力和零成本抽象（反射、模板），又想要与 Rust 媲美的内存安全（加固标准库），还想要不输 Go 的并发表达力（std::execution）。</p>
<p>C++26 给老兵们提供了前所未有的强大武器，但也把本就陡峭的学习曲线，又向上抬升了一个令人惊叹的高度，宇宙第一复杂的编程语言，实至名归！</p>
<p>当 Go 的开发者还在为“是否要加个三元表达式”而争论不休时，C++ 已经头也不回地奔向了“万神殿”。</p>
<p>或许，编程语言的终局，真的不是“大一统”，而是“两极分化”：一极是像 Go 一样追求极致简单的“工程师语言”；而另一极，则是像 C++ 这样，专为那 1% 的、追求极致性能和控制力的“宗师级”开发者准备的、布满荆棘的封神之路。</p>
<p><strong>C++26，欢迎来到神的世界，也欢迎来到神的炼狱。</strong></p>
<h2>参考资料</h2>
<ul>
<li>https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/</li>
<li>https://herbsutter.com/2025/06/21/trip-report-june-2025-iso-c-standards-meeting-sofia-bulgaria/ </li>
<li>https://herbsutter.com/2024/07/02/trip-report-summer-iso-c-standards-meeting-st-louis-mo-usa/</li>
<li>https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2996r13.html</li>
<li>https://www.youtube.com/watch?v=7z9NNrRDHQU</li>
<li>https://www.youtube.com/watch?v=oitYvDe4nps</li>
</ul>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>看完 C++26 的这四大“神仙”特性，你是感到兴奋，还是感到了深深的绝望？你觉得 C++ 的这种“大而全”的演进路线是对的，还是 Go 的“小而美”更代表未来？</p>
<p>欢迎在评论区分享你的看法！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rust 核心团队大吐苦水：求求你们别再用 AI 提交“垃圾 PR”了！</title>
		<link>https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/</link>
		<comments>https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/#comments</comments>
		<pubDate>Wed, 25 Mar 2026 23:20:24 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AICode]]></category>
		<category><![CDATA[AI代码]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CodeQuality]]></category>
		<category><![CDATA[Codereview]]></category>
		<category><![CDATA[Contributors]]></category>
		<category><![CDATA[CoreTeam]]></category>
		<category><![CDATA[DunningKrugerEffect]]></category>
		<category><![CDATA[GeekCulture]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Hallucinations]]></category>
		<category><![CDATA[InternalDiscussion]]></category>
		<category><![CDATA[Maintainers]]></category>
		<category><![CDATA[NikoMatsakis]]></category>
		<category><![CDATA[OpenSourceGovernance]]></category>
		<category><![CDATA[OpenSourceProject]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SecurityRisks]]></category>
		<category><![CDATA[SoftwareSupplyChain]]></category>
		<category><![CDATA[SpamPR]]></category>
		<category><![CDATA[TrustContract]]></category>
		<category><![CDATA[代码审查]]></category>
		<category><![CDATA[代码质量]]></category>
		<category><![CDATA[信任契约]]></category>
		<category><![CDATA[内部讨论]]></category>
		<category><![CDATA[垃圾PR]]></category>
		<category><![CDATA[安全风险]]></category>
		<category><![CDATA[幻觉]]></category>
		<category><![CDATA[开源治理]]></category>
		<category><![CDATA[开源项目]]></category>
		<category><![CDATA[极客文化]]></category>
		<category><![CDATA[核心团队]]></category>
		<category><![CDATA[生产力]]></category>
		<category><![CDATA[维护者]]></category>
		<category><![CDATA[自动化]]></category>
		<category><![CDATA[贡献者]]></category>
		<category><![CDATA[软件供应链]]></category>
		<category><![CDATA[达克效应]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6102</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai 大家好，我是Tony Bai。 在这个大模型狂飙突进的时代，只要在推特或者掘金上刷一刷，你几乎每天都能看到这样的“成功学”分享： “我是如何用 Claude Code + 4.6 Sonnet 在一天内向知名开源项目提交了 10 个 PR 的！” “用 Cursor 混 GitHub 绿点，原来这么简单！” 这些利用 AI 工具轻松突破“开源门槛”的开发者们，正在享受着前所未有的技术平权红利。 但你有没有想过，站在这些开源项目背后的核心维护者（Maintainers）们，正在经历着怎样的地狱？ 继Go核心团队拒绝 AI 署名，为AIGC 时代的Go项目划下的“工程红线”后，前不久，Rust 项目的核心开发者、语言设计团队负责人 Niko Matsakis 在内部发起了一场长达数周的“大摸底”，旨在收集 Rust 核心贡献者和维护者们对于 AI 辅助编程的真实看法。 目前阶段性地汇总出的这份长达 20 多页的内部讨论纪要，犹如一枚深水炸弹，撕开了“AI 编程繁荣”背后的残酷真相：毫无节制的 AI 生成代码，正在不可逆转地榨干 Rust 核心团队的精力，甚至将开源社区推向崩溃的边缘。 今天，我们就来扒开这份极其硬核的内部讨论，看看在这个世界上一贯严谨、对代码质量要求极高的社区里，顶级的Rust工程师们是如何看待、抵制、甚至反制 AI 编程的。 当 AI 沦为“盲目自信”的催化剂 在很多人的幻想中，AI 是小白进阶的导师，是帮你看懂复杂底层源码的引路人。 但在 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/rust-project-perspectives-on-ai-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai">本文永久链接</a> &#8211; https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai</p>
<p>大家好，我是Tony Bai。</p>
<p>在这个大模型狂飙突进的时代，只要在推特或者掘金上刷一刷，你几乎每天都能看到这样的“成功学”分享：</p>
<p><em>“我是如何用 Claude Code + 4.6 Sonnet 在一天内向知名开源项目提交了 10 个 PR 的！”</em></p>
<p><em>“用 Cursor 混 GitHub 绿点，原来这么简单！”</em></p>
<p>这些利用 AI 工具轻松突破“开源门槛”的开发者们，正在享受着前所未有的技术平权红利。</p>
<p>但你有没有想过，站在这些开源项目背后的核心维护者（Maintainers）们，正在经历着怎样的地狱？</p>
<p>继<a href="https://tonybai.com/2026/02/15/go-core-team-rejects-ai-authorship/">Go核心团队拒绝 AI 署名，为AIGC 时代的Go项目划下的“工程红线”</a>后，前不久，Rust 项目的核心开发者、语言设计团队负责人 <strong>Niko Matsakis</strong> 在内部发起了一场长达数周的“大摸底”，旨在收集 Rust 核心贡献者和维护者们对于 AI 辅助编程的真实看法。</p>
<p>目前阶段性地汇总出的这份长达 20 多页的<a href="https://nikomatsakis.github.io/rust-project-perspectives-on-ai/feb27-summary.html">内部讨论纪要</a>，犹如一枚深水炸弹，撕开了“AI 编程繁荣”背后的残酷真相：<strong>毫无节制的 AI 生成代码，正在不可逆转地榨干 Rust 核心团队的精力，甚至将开源社区推向崩溃的边缘。</strong></p>
<p>今天，我们就来扒开这份极其硬核的内部讨论，看看在这个世界上一贯严谨、对代码质量要求极高的社区里，顶级的Rust工程师们是如何看待、抵制、甚至反制 AI 编程的。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>当 AI 沦为“盲目自信”的催化剂</h2>
<p>在很多人的幻想中，AI 是小白进阶的导师，是帮你看懂复杂底层源码的引路人。</p>
<p>但在 Rust 维护者们的眼里，绝大多数情况恰恰相反：<strong>AI 正在沦为某些开发者盲目自信的催化剂。</strong></p>
<p>一位Rust贡献者一针见血地指出了问题所在：</p>
<blockquote>
<p>“AI 给那些原本心怀愧疚、不敢随便提交低质量代码的人，盖上了一个‘官方批准’的假印章。对于那些处于‘达克效应（指能力欠缺的人产生虚幻的优越感）’状态的开发者来说，AI 简直就是一剂催化剂。它极大地膨胀了他们的自信，却严重削弱了他们真正的能力。”</p>
</blockquote>
<p>在传统的开源世界里，“提交 PR”是一项极其庄重的工作。你需要阅读庞大的代码库，理解设计哲学，甚至要为了改一行代码而去推演上下文的几百个变数。这种“艰难的门槛”本身就是一种过滤机制。</p>
<p>但现在呢？</p>
<p>你只需要把报错信息扔给大模型或专门的编码智能体，比如Claude Code，它会生成一段看起来“极度合理”、语法看似“完美无瑕”的 Rust 代码。你连这行代码底层的生命周期（Lifetime）都没看懂，就欢天喜地地点了 git commit。</p>
<p><strong>你以为你是在为开源做贡献，其实你只是把“寻找代码中细微致命毒药”的工作，无情地转嫁给了那些用爱发电的 Rust 维护者。</strong></p>
<h2>被“AI 传声筒”折磨到崩溃的维护者</h2>
<p>如果说 AI 生成的代码只是质量差，那维护者大不了直接关闭 PR 就可以了。真正让 Rust 核心团队感到绝望甚至想要“退网”的，是那些把 AI 当作<strong>“传声筒”</strong>的贡献者。</p>
<p>让我们来看另一个让核心成员愤怒到使用加粗字体的真实案例：</p>
<blockquote>
<p>“一些贡献者甚至充当起了审查者（Reviewer）和大模型之间的‘传声筒’！他们复制我提问的 Review 意见，扔给大模型，然后把大模型生成的胡言乱语直接复制回来回复我。<strong>看在上帝的份上，求求你们停下吧！我想强调，这极其令人抓狂。这是导致我极度倦怠（Burn out）的头号因素！</strong>”</p>
</blockquote>
<p>开源项目不仅仅是一堆冷冰冰的代码，它更是一个“人与人交流、碰撞、建立信任”的社区（正如 Peter Naur 在经典文章《<a href="https://gist.github.com/onlurking/fc5c81d18cfce9ff81bc968a7f342fb1">Programming as Theory Building</a>》中所言）。</p>
<p>当维护者满怀期待地与你讨论某个特性的底层设计时，你却用极其冗长、没有营养、甚至充满幻觉的 AI 废话来敷衍他们。这不仅是在浪费时间，更是在<strong>无情地践踏开源社区最宝贵的“信任契约”。</strong></p>
<p>另一位Rust贡献者的控诉则充满了无奈：</p>
<blockquote>
<p>“我完全不知道该怎么解决这个问题：‘没错，你很快就生成了一段看起来很合理的代码，但它在微妙的细节上完全是错的，而现在你正在浪费所有人的时间去排查它’。”</p>
</blockquote>
<p>在没有 AI 的时代，分辨垃圾代码很容易；但在 AI 时代，大模型最擅长的，就是把垃圾包装成米其林三星的模样端给你。</p>
<h2>全面封杀，还是“用魔法打败魔法”？</h2>
<p>面对这群不知疲倦的“AI 水军”，Rust 核心团队该怎么办？</p>
<p>在这份内部文档中，关于“如何对待 AI”的讨论，呈现出了极其撕裂的两种极端：</p>
<h3>极端一：道德洁癖与坚决抵制</h3>
<p>一些拥有极客精神的老兵认为，目前所有的 LLM 都是建立在“盗窃版权数据”的基础上的。不仅如此，大模型的训练正在消耗极度恐怖的能源，甚至让那些本该关闭的煤炭发电厂死灰复燃，加剧气候危机。</p>
<p>对于这些开发者而言，在 Rust 中拥抱 AI，就是对开源精神的背叛，是“令人作呕的”。他们主张<strong>全面封杀 AI 提交</strong>，并要求所有贡献者必须证明其代码完全由人类编写。</p>
<h3>极端二：承认现实，用魔法打败魔法</h3>
<p>但现实是残酷的。Niko Matsakis 等负责人非常清楚：“潘多拉的魔盒已经打开，堵是堵不住的。”</p>
<p>既然无法阻止人们用 AI 写 PR，那就想办法用规则甚至<strong>用 AI 自身</strong>来防御 AI。</p>
<p>在这场激烈的讨论中，Rust 团队提出了几项极具参考价值的<strong>“防御性架构与策略”</strong>，值得每一个饱受 AI 代码折磨的团队学习：</p>
<ol>
<li>引入“反垃圾邮件”级的审查门槛：不再一视同仁地对待所有 PR。建立类似<a href="https://tonybai.com/2026/02/12/ai-garbage-code-hashicorp-founder-vouch-rebuilding-open-source-trust/">“Web-of-Trust（信任网）”</a>的机制。只有当你在社区里通过人类交互证明了你的能力（提交过 N 次高质量代码）后，你的 PR 才会被优先审核。对于那些上来就提交上千行完美格式代码的陌生账号，直接打入冷宫。</li>
<li>强制签署“反 AI 免责声明”：在提交 PR 时，强制要求作者勾选确认：“我完全理解我提交的每一行代码，并能亲自回答 Reviewer 的任何问题；我没有直接复制大模型的回复来敷衍维护者。” 如果一旦发现充当“AI 传声筒”，立即实施封禁。</li>
<li>以毒攻毒，引入 AI 门卫：既然你们用大模型批量生成 PR，那我们就用大模型来做“初筛”。在人类 Reviewer 看代码之前，先让 AI Agent 去自动扫描那些“看似合理实则荒谬”的逻辑漏洞，直接打回重做。</li>
</ol>
<h2>AI 狂欢下的“零付费”收割</h2>
<p>在整份纪要中，最让我感到扎心的一段话，是关于“开源维护者生存现状”的拷问。</p>
<p>目前，像 OpenAI、Anthropic 这样的 AI 巨头，估值动辄千亿美元。它们的模型能写出越来越好的 Rust 代码，很大程度上是因为它们疯狂吸收了 Rust 社区十几年积累的心血。</p>
<p>然而，当这些估值千亿的公司推出“编程 Agent”，导致开源社区的维护工作量呈指数级爆发时，<strong>那些没日没夜帮这些“AI 垃圾代码”擦屁股的 Rust 核心维护者们，却拿不到一分钱的报酬！</strong></p>
<p>一位核心成员悲愤地提议：</p>
<blockquote>
<p>“也许我们应该直接去找那些 AI 公司（他们内部也在大量使用 Rust），要求他们出资赞助我们的维护者。虽然很多人在道德上抵制这些公司，但我依然希望拿他们的钱来养活我们的兄弟们。”</p>
</blockquote>
<p>这就好比一家巨无霸外卖平台，每天把几十万份外卖倾倒在你的社区门口，然后让社区里那些没有工资的清洁工志愿者去疯狂打扫。</p>
<p><strong>在 AI 巨头狂欢的盛宴下，开源世界的基石正在被悄无声息地榨干。</strong></p>
<h3>小结：退潮之后，谁在裸泳？</h3>
<p>这份长达 20多 页的讨论，给所有沉浸在“AI 改变命运”幻觉中的开发者敲响了一记震耳欲聋的警钟。</p>
<p>不可否认，AI 确实是极其强大的工具。文档中也有不少成员承认，使用 AI 让他们感到了“赋能（Empowered）”，让他们能轻松搞定平时不愿意碰的繁琐文档和构建脚本。</p>
<p><strong>但工具的强大，永远无法掩盖使用者的平庸。</strong></p>
<p>当你可以用 Claude Code 在 10 秒内生成一段精妙的多线程 Rust 代码时，请记住：</p>
<p><strong>只有当你真正懂所有权（Ownership）、懂借用检查（Borrow Checker）、懂底层内存布局，并且能在发生诡异 Panic 时独立完成 Debug 的那一刻，这段代码才真正属于你。</strong></p>
<p>否则，你不过是 AI 巨头商业版图上，一个毫无感情的、廉价的“代码搬运工”。</p>
<p>不要用战术上的（生成代码）勤奋，去掩盖战略上的（底层认知）懒惰。</p>
<p>在代码生成的迷雾中，保持清醒的头脑，去深钻那些 AI 无法替代的系统级设计思维和底层工程哲学，才是我们在大模型时代唯一的生路。</p>
<p>资料链接：https://nikomatsakis.github.io/rust-project-perspectives-on-ai/feb27-summary.html</p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>在你的日常开发或开源贡献中，有没有被同事或陌生人提交的“AI 垃圾代码”狠狠坑过？你觉得开源社区应该全面封杀 AI 代码，还是张开双臂拥抱它？</p>
<p>欢迎在评论区疯狂吐槽与分享！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>告别古法编程黄金时代：AI 时代不会再有新编程语言诞生的土壤</title>
		<link>https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/</link>
		<comments>https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/#comments</comments>
		<pubDate>Mon, 23 Mar 2026 23:45:43 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AgenticCoding]]></category>
		<category><![CDATA[AIProgramming]]></category>
		<category><![CDATA[AI编程]]></category>
		<category><![CDATA[AndrejKarpathy]]></category>
		<category><![CDATA[ArtificialIntelligence]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[ClaudeCode]]></category>
		<category><![CDATA[CodeGeneration]]></category>
		<category><![CDATA[CorpusHegemony]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[HandcraftedCode]]></category>
		<category><![CDATA[IntermediateRepresentation]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[NaturalLanguageProgramming]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ProgrammingLanguages]]></category>
		<category><![CDATA[ProgrammingParadigm]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Software3.0]]></category>
		<category><![CDATA[SoftwareEngineering]]></category>
		<category><![CDATA[SoftwareFactory]]></category>
		<category><![CDATA[spec]]></category>
		<category><![CDATA[TechEvolution]]></category>
		<category><![CDATA[中间码]]></category>
		<category><![CDATA[人工智能]]></category>
		<category><![CDATA[代码生成]]></category>
		<category><![CDATA[古法编程]]></category>
		<category><![CDATA[大模型]]></category>
		<category><![CDATA[技术演进]]></category>
		<category><![CDATA[提示词]]></category>
		<category><![CDATA[智能体编程]]></category>
		<category><![CDATA[编程范式]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[自然语言编程]]></category>
		<category><![CDATA[规格说明书]]></category>
		<category><![CDATA[语料霸权]]></category>
		<category><![CDATA[软件工厂]]></category>
		<category><![CDATA[软件工程]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6092</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era 大家好，我是Tony Bai。 如果你回望过去十五年的软件工程史，那无疑是编程语言百花齐放的黄金时代。 为了对抗日益膨胀的系统复杂度，人类绞尽脑汁地发明新的“咒语”： Google 推出了 Go 语言，用极简的 Goroutine 拯救了深陷并发地狱的后端工程师； Mozilla 孕育了 Rust，用严苛的所有权机制向内存泄漏和数据竞争宣战； 苹果用 Swift 埋葬了晦涩的 Objective-C； JetBrains 用 Kotlin 为笨重的 Java的使用者提供了一个更优雅的选择； 微软用 TypeScript 彻底规范了狂野的 JavaScript 生态。 每一次新语言的诞生，都伴随着开发者们的狂欢。我们热衷于讨论语法糖、对比编译速度、争论哪种范式更优雅。我们在各大论坛上为自己喜爱的语言摇旗呐喊。 但这已经是最后的余晖了。 站在 2026 年的节点上，当你看着 Claude Code、Cursor 或各类 Coding Agent 在几秒钟内倾泻出数千行逻辑严密的代码时，一个残酷的真相正在浮出水面： 大模型（LLM）的爆发，彻底抽干了孕育下一代通用编程语言的土壤。属于人类的“造语言”游戏，结束了。 这不是危言耸听，而是基于技术演进第一性原理的必然推演。 语料霸权：新语言无法跨越的“生态死局” 在 AI 时代，一门编程语言的生命力不再取决于它的语法有多么优雅，而取决于它在 AI 模型中的“语料权重”。 现存的主流语言（Python, Java, JavaScript, Go, C/C++等）在 GitHub [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/no-soil-for-new-programming-languages-in-ai-era-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era">本文永久链接</a> &#8211; https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era</p>
<p>大家好，我是Tony Bai。</p>
<p>如果你回望过去十五年的软件工程史，那无疑是编程语言百花齐放的黄金时代。</p>
<p>为了对抗日益膨胀的系统复杂度，人类绞尽脑汁地发明新的“咒语”：</p>
<p>Google 推出了 Go 语言，用极简的 Goroutine 拯救了深陷并发地狱的后端工程师；</p>
<p>Mozilla 孕育了 Rust，用严苛的所有权机制向内存泄漏和数据竞争宣战；</p>
<p>苹果用 Swift 埋葬了晦涩的 Objective-C；</p>
<p>JetBrains 用 Kotlin 为笨重的 Java的使用者提供了一个更优雅的选择；</p>
<p>微软用 TypeScript 彻底规范了狂野的 JavaScript 生态。</p>
<p>每一次新语言的诞生，都伴随着开发者们的狂欢。我们热衷于讨论语法糖、对比编译速度、争论哪种范式更优雅。我们在各大论坛上为自己喜爱的语言摇旗呐喊。</p>
<p><strong>但这已经是最后的余晖了。</strong></p>
<p>站在 2026 年的节点上，当你看着 <a href="http://gk.link/a/12EPd">Claude Code</a>、Cursor 或各类 Coding Agent 在几秒钟内倾泻出数千行逻辑严密的代码时，一个残酷的真相正在浮出水面：</p>
<p><strong>大模型（LLM）的爆发，彻底抽干了孕育下一代通用编程语言的土壤。属于人类的“造语言”游戏，结束了。</strong></p>
<p>这不是危言耸听，而是基于技术演进第一性原理的必然推演。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>语料霸权：新语言无法跨越的“生态死局”</h2>
<p>在 AI 时代，一门编程语言的生命力不再取决于它的语法有多么优雅，而取决于它在 AI 模型中的<strong>“语料权重”</strong>。</p>
<p>现存的主流语言（Python, Java, JavaScript, Go, C/C++等）在 GitHub 上积累了数年甚至十余年的海量开源代码。这些代码构成了大模型训练的底座，赋予了 AI 极高的“代码智商”。</p>
<p>当你用 Python 或 Go 提问时，AI 能够瞬间理解你的意图，补全复杂的逻辑，甚至自动发现隐藏的 Bug，因为它的“脑子”里装着上千万个成熟的 Python/Go 示例。</p>
<p><strong>但对于一门新语言来说，这是绝对的死局。</strong></p>
<p>假设明天某个天才发布了一门名为 Nova 的新语言，号称性能超越 C，安全性超越 Rust，语法如 Python 般简洁。</p>
<p>结果会怎样？</p>
<ul>
<li>AI 不会写：因为训练语料里没有 Nova 的代码，大模型对它一无所知，无法提供智能补全。</li>
<li>人类不会用：在“没有 AI 辅助就感觉不会写代码”的今天，一个习惯了口述意图，让AI Coding Agent 自动生成全量代码的程序员，绝不可能去碰一门必须纯手工敲击、AI 无法帮他编写和Debug的语言。</li>
</ul>
<p>这就形成了一个无解的<strong>马太效应</strong>：</p>
<pre><code>没人写就没有语料 -&gt; 没有语料 AI 就不会写 -&gt; AI 不会写人类就不想学 -&gt; 更没人写。
</code></pre>
<p><strong>现存的主流语言通过“语料霸权”，彻底锁死了新语言上升的通道。</strong></p>
<h2>需求降维：为什么我们不再需要“更好写”的语言？</h2>
<p>人类发明新语言的根本动力，是<strong>“人脑的带宽有限”</strong>。</p>
<p>C++ 太容易写出内存泄漏，人脑排查太痛苦，所以我们发明了 Rust，让编译器做“真理警察”。</p>
<p>Java 处理异步回调太繁琐（Callback Hell），所以我们发明了各种新的语法糖。</p>
<p>我们一直在努力打造更锋利、更安全的斧头，因为那是人类自己要挥舞的斧头。</p>
<p>但在 Agentic Coding（智能体编程）时代，挥舞斧头的不再是人，而是不知疲倦的 AI。</p>
<p>当你可以用自然语言对 Agent 说：<em>“用 C++ 实现一个高并发的 HTTP 服务器，并严格检查所有内存泄漏风险，写出 100% 覆盖率的测试用例。”</em></p>
<p>只要 AI 的推理能力足够强，加上自动化的沙箱验证（Eval），它完全可以写出极度安全、高效的 C++ 代码。</p>
<p>如果 AI 能够不知疲倦地处理最繁琐的语法、填补最冗长的样板代码（Boilerplate），并且不出错，那么“语言本身是否易读、是否好写” 似乎就变得不再重要了。</p>
<p>因为代码根本不是给人看的，也不是人写的。当“人脑带宽”不再是瓶颈，发明一种“让人类写得更舒服”的新语言，就失去了最大的现实动机。</p>
<h2>语言的两极化：自然语言与“AI 中间码”</h2>
<p>如果不再有新的面向人类的通用编程语言，未来的代码世界会变成什么样？</p>
<p>答案是：<strong>极端的两极分化。</strong></p>
<p><strong>上层：英语（或自然语言）成为终极编程语言。</strong></p>
<p>Andrej Karpathy 的预言正在成为现实（Software 3.0）。人类不需要学习晦涩的语法，人类只需要学习如何清晰、严谨地表达意图，编写能够精准约束 AI 的 <strong>Spec（规格说明书）</strong>。我们与机器的接口，退回到了人类最擅长的媒介。</p>
<p><strong>底层：只有机器能读懂的“AI 专属语言”。</strong></p>
<p>如果你是大模型厂商（比如 OpenAI 或 Google），当你发现 90% 的代码都是你的模型生成的，你还会让模型生成冗长、为了兼顾人类可读性而充满妥协的 Java 或 Python 代码吗？</p>
<p>不会的。巨头们极有可能会研发一种<strong>专门面向 AI 优化的中间表示语言（Intermediate Representation, IR）</strong>。</p>
<p>这种语言对人类来说如同天书，但对于模型来说：</p>
<ul>
<li>Token 效率极高：原本需要 1000 个 Token 表达的逻辑，这种语言只要 50 个 Token，极大节省推理成本和上下文窗口。</li>
<li>逻辑高度压缩：天生适合并行计算和智能体之间的状态传递。</li>
</ul>
<p>AI 会将人类的自然语言直接“编译”成这种中间码，然后运行。</p>
<p>在这个过程中，介于自然语言和机器码之间、那种专门为了“让人类勉强能懂又能让机器执行”而存在的传统编程语言，其生存空间将被彻底抽空。</p>
<h2>小结：致敬“古法编程”的黄金时代</h2>
<p><img src="https://tonybai.com/wp-content/uploads/2026/no-soil-for-new-programming-languages-in-ai-era-2.png" alt="" /></p>
<p>这听起来有些感伤，但这就是技术演进的无情车轮。</p>
<p>就像今天，依然有人沉迷于机械表的齿轮咬合，依然有人热爱在暗房里冲洗胶卷。</p>
<p><strong>“纯手工编写代码（Handcrafted Code）”</strong>——这种我们曾引以为傲的工业生产方式，未来可能也会退化成一种个人的“艺术爱好”或“思维体操”。我们称之为<strong>“古法编程”</strong>。</p>
<p>在某个安静的周末，你或许依然会打开编辑器，为了兴趣手撸一段优雅的 Go 并发或者 Rust 生命周期，享受那种久违的、直接控制机器的“心流”多巴胺。</p>
<p>但在残酷的商业战场上，古法编程即将落幕。</p>
<p>不要再为语法糖而争论不休，不要再期待下一个能拯救你的新语言。</p>
<p>去锻炼你的系统思维吧，去学着用自然语言精准地描绘你的蓝图。因为在下一个时代，<strong>定义目标的造物主，永远比精通语法的泥瓦匠更稀缺。</strong></p>
<hr />
<p><strong>你还在坚持“古法编程”吗？</strong></p>
<p>面对 AI 现场生成代码的冲击，你是否还会为了某种语言的“优雅语法”而兴奋？在你的理想中，未来的“AI 专用中间码”应该长什么样？你是更享受亲自掌控每一行代码，还是更向往定义目标的“造物主”角色？</p>
<p>欢迎在评论区留下你对“古法编程”时代的最后致敬！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenAI 创始人盛赞 Rust，却遭开发者反驳：Go 才是大模型眼里的“香饽饽”！</title>
		<link>https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/</link>
		<comments>https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/#comments</comments>
		<pubDate>Sun, 22 Mar 2026 23:18:11 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[Agent]]></category>
		<category><![CDATA[boring]]></category>
		<category><![CDATA[CodeGeneration]]></category>
		<category><![CDATA[ConcurrencyModel]]></category>
		<category><![CDATA[ConsistentStyle]]></category>
		<category><![CDATA[Context]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[gofmt]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[MemorySafety]]></category>
		<category><![CDATA[Minimalism]]></category>
		<category><![CDATA[openai]]></category>
		<category><![CDATA[ProbabilityPrediction]]></category>
		<category><![CDATA[ProgrammingParadigm]]></category>
		<category><![CDATA[Readability]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SafetyGuardrail]]></category>
		<category><![CDATA[SimpleSyntax]]></category>
		<category><![CDATA[StaticTyping]]></category>
		<category><![CDATA[上下文]]></category>
		<category><![CDATA[代码生成]]></category>
		<category><![CDATA[内存安全]]></category>
		<category><![CDATA[可读性]]></category>
		<category><![CDATA[大模型]]></category>
		<category><![CDATA[安全兜底]]></category>
		<category><![CDATA[并发模型]]></category>
		<category><![CDATA[无趣]]></category>
		<category><![CDATA[智能体]]></category>
		<category><![CDATA[极简主义]]></category>
		<category><![CDATA[概率预测]]></category>
		<category><![CDATA[编程范式]]></category>
		<category><![CDATA[语法简单]]></category>
		<category><![CDATA[静态类型]]></category>
		<category><![CDATA[风格统一]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6088</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm 大家好，我是Tony Bai。 在这个大模型重塑编程范式的当下，如果你想开发一个自主运行的智能体（Agent），或者想让大模型（LLM）帮你生成上万行的核心业务代码，你会选择哪门编程语言？ 如果你去问 OpenAI 的总裁兼联合创始人 Greg Brockman，他的答案非常直接： “Rust is a perfect language for agents, given that if it compiles it&#8217;s ~correct.” （Rust 是开发 Agent 的完美语言，因为只要它能编译通过，它就基本是正确的。） 这句话听起来极其硬核且有道理。Rust 引以为傲的所有权模型和严苛的编译器，就像一个极度刻薄的审查员。既然大模型经常“胡言乱语”，那不如交给 Rust 编译器来兜底。 但有趣的是，Greg 的这番高论，最近在推特（X）上遭到了不少一线资深开发者的强烈反驳。其中，一条阅读量近 7 万的推文直指核心痛点，甚至抛出了一个让无数 Gopher（Go 开发者）极度舒适的反直觉结论： “别吹 Rust 了，在大模型眼里，语法简单、风格统一的 Go 才是真正的‘香饽饽’！” 今天，我们就来扒一扒这场顶级“语言战争”背后的神仙打架，看看为什么 Go 语言身上那些曾经被全网群嘲的“缺点”，如今却成了大模型时代最无敌的护城河。 大模型写 Rust，真的安全吗？ 发起反驳的开发者 Emil Privér 一针见血地指出了用大模型写 Rust 的最大陷阱：“逃课”心理。 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/go-is-the-best-programming-language-for-llm-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm">本文永久链接</a> &#8211; https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm</p>
<p>大家好，我是Tony Bai。</p>
<p>在这个大模型重塑编程范式的当下，如果你想开发一个自主运行的智能体（Agent），或者想让大模型（LLM）帮你生成上万行的核心业务代码，你会选择哪门编程语言？</p>
<p>如果你去问 OpenAI 的总裁兼联合创始人 <strong>Greg Brockman</strong>，他的答案非常直接：</p>
<blockquote>
<p><em>“Rust is a perfect language for agents, given that if it compiles it&#8217;s ~correct.”</em><br />
  （Rust 是开发 Agent 的完美语言，因为只要它能编译通过，它就基本是正确的。）</p>
</blockquote>
<p>这句话听起来极其硬核且有道理。Rust 引以为傲的所有权模型和严苛的编译器，就像一个极度刻薄的审查员。既然大模型经常“胡言乱语”，那不如交给 Rust 编译器来兜底。</p>
<p>但有趣的是，Greg 的这番高论，最近在推特（X）上遭到了不少一线资深开发者的强烈反驳。其中，<a href="https://x.com/emil_priver/status/2034971247348535399">一条阅读量近 7 万的推文</a>直指核心痛点，甚至抛出了一个让无数 Gopher（Go 开发者）极度舒适的反直觉结论：</p>
<p><strong>“别吹 Rust 了，在大模型眼里，语法简单、风格统一的 Go 才是真正的‘香饽饽’！”</strong></p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/go-is-the-best-programming-language-for-llm-2.png" alt="" /></p>
<p>今天，我们就来扒一扒这场顶级“语言战争”背后的神仙打架，看看为什么 Go 语言身上那些曾经被全网群嘲的“缺点”，如今却成了大模型时代最无敌的护城河。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/building-industrial-grade-agent-skills-qr.png" alt="" /></p>
<h2>大模型写 Rust，真的安全吗？</h2>
<p>发起反驳的开发者 Emil Privér 一针见血地指出了用大模型写 Rust 的最大陷阱：<strong>“逃课”心理</strong>。</p>
<p>Greg Brockman 认为 Rust 编译器能阻止大模型犯错。但这有一个前提：大模型必须老老实实地去解生命周期（Lifetime）和所有权（Ownership）的方程。</p>
<p>然而现实是，大模型也是会“偷懒”的。</p>
<p>Emil 敏锐地指出，当现代 LLM 在生成复杂的 Rust 业务逻辑，且实在绕不过编译器的各种借用检查报错时，它们会极其鸡贼地使出大招：<strong>直接套上一层 unsafe {} 块，或者无脑使用 .unwrap() 来强行绕过编译器的安全审查！</strong></p>
<p>你在指望编译器兜底，大模型却在底下悄悄开了“后门”。</p>
<p>就像评论区一位开发者吐槽的那样：“当你看到大模型为了图省事，把一段关键操作包在 unsafe 里，并且依然能顺利编译通过时，你还敢说它‘只要编译通过就基本正确’吗？”</p>
<p>虽然有开发者反驳说，可以通过配置强制禁止 unsafe。但大模型的“逃课手段”防不胜防，比如疯狂滥用 RefCell 导致运行时 Panic，这在编译器眼里是合法的，但在生产环境下却是灾难。</p>
<h2>Go 的“无趣”，成了最顶级的生产力</h2>
<p>既然 Rust 太“聪明”导致大模型容易弄巧成拙，那大模型到底喜欢什么样的语言？</p>
<p>Emil 给出的答案是：<strong>Go。</strong></p>
<p>他的底层逻辑非常硬核。</p>
<p>他认为，大模型（LLMs）的本质是基于大量预训练语料进行<strong>下一个 Token 的概率预测</strong>。对于这种预测机制来说，<strong>一段代码的上下文看起来越“同质化（Looks the same）”，大模型生成的准确率就越高。</strong></p>
<p>这就牵扯到了 Go 语言一个常年被群嘲的“缺点”：<strong>啰嗦、缺乏表现力、没有花里胡哨的语法糖。</strong></p>
<p>在 Go 里，如果你想写一个循环，你只有一种办法：for 循环。</p>
<p>没有 while，没有 do-while，没有 foreach，更没有各种炫技的函数式流处理。</p>
<p>而在 Rust 或者 JavaScript 等语言里，你想遍历一个数组，至少有 5 种写法。甚至在不同的开源库里，大家的编码风格都千奇百怪。</p>
<p>在人类看来，Go 语言简直“无趣”到了极点。但在大模型这种无情的“概率预测机器”眼里，<strong>Go 简直就是天堂！</strong></p>
<p>因为 Go 语言有着近乎暴君般的强制格式化工具 gofmt，以及全宇宙最少、最没有歧义的语法关键字。无论你是 Google 的顶级工程师，还是刚入门三个月的新手，写出来的 Go 代码结构几乎是一模一样的。</p>
<p>这种极度“收敛”和“无聊”的代码风格，恰恰完美契合了大模型的预测机制。</p>
<p>当所有的 Go 项目看起来都像是一个模子里刻出来的，大模型在生成上下文时就不需要去猜测“这个项目的主人喜欢用哪种流派”。它闭着眼睛往下预测，准确率就能轻易碾压其他语言。</p>
<p><strong>Go，这种“一眼望到底”的特性，让它成为了大模型眼里的头号“香饽饽”。</strong></p>
<h2>AI 时代的软件工程师，该选什么语言？</h2>
<p>推特评论区里，争论依然在继续。</p>
<p>但透过这场口水战，我们作为一线的软件工程师，应该看透一个更深层次的时代演进：</p>
<p><strong>在过去十年，程序员们热衷于发明各种奇技淫巧，比拼谁的代码写得更短、更具“魔法”；但在未来，当 80%以上 的代码都将由 AI Agent 自动生成时，“可读性”与“无歧义”将成为一门编程语言最核心的生产力。</strong></p>
<p>Go 语言的联合缔造者 Rob Pike 当年顶着巨大的压力，坚持不给 Go 加各种复杂的特性。很多人觉得他固执、老派。但在十多年后的今天，当大模型海啸席卷而来时，我们才突然惊觉：</p>
<p>Go 语言那种<strong>“强迫你用最笨、最直白的方式写代码”</strong>的设计哲学，不仅让它在微服务时代大杀四方，更让它在 AGI 时代，成为了大模型最忠实、最可靠的合作伙伴。</p>
<p>当大模型吐出一段复杂的 Rust 代码，你可能还要花十分钟去审查它有没有隐藏的逻辑陷阱；</p>
<p>但当大模型吐出一段 Go 代码，那满屏极其直白的 if err != nil，让人类工程师一眼就能看穿它的核心逻辑。</p>
<p><strong>没有魔法，才是大模型时代最强的防御。</strong></p>
<p>资料链接：https://x.com/emil_priver/status/2034971247348535399</p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>在日常开发中，你让 ChatGPT/Claude 帮你写过哪种语言的代码？你觉得它写 Go、Python 还是 Rust 时的准确率最高？</p>
<p>欢迎在评论区分享你的实战感受！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>被嘲笑比 Python 还慢？扒开 Go 正则表达式的底层，看看它为了防范“系统猝死”付出了什么</title>
		<link>https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/</link>
		<comments>https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/#comments</comments>
		<pubDate>Mon, 16 Mar 2026 23:28:31 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[CatastrophicBacktracking]]></category>
		<category><![CDATA[Codereview]]></category>
		<category><![CDATA[DenialOfService]]></category>
		<category><![CDATA[DFA]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[GarbageCollection]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[MemoryManagement]]></category>
		<category><![CDATA[NFA引擎]]></category>
		<category><![CDATA[PCRE]]></category>
		<category><![CDATA[Prefilters]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RE2]]></category>
		<category><![CDATA[ReDoS]]></category>
		<category><![CDATA[RegularExpressions]]></category>
		<category><![CDATA[RuntimeEfficiency]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SIMD]]></category>
		<category><![CDATA[ThompsonNFA]]></category>
		<category><![CDATA[Zig]]></category>
		<category><![CDATA[代码审查]]></category>
		<category><![CDATA[内存管理]]></category>
		<category><![CDATA[向量化指令]]></category>
		<category><![CDATA[垃圾回收]]></category>
		<category><![CDATA[性能基准测试]]></category>
		<category><![CDATA[拒绝服务攻击]]></category>
		<category><![CDATA[正则表达式]]></category>
		<category><![CDATA[深度优先搜索]]></category>
		<category><![CDATA[灾难性回溯]]></category>
		<category><![CDATA[确定性有限自动机]]></category>
		<category><![CDATA[运行效率]]></category>
		<category><![CDATA[预过滤]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6050</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/17/why-is-go-regex-so-slow 大家好，我是Tony Bai。 如果有人问你：在处理纯 CPU 密集型的文本匹配时，Go 和 Python 哪个快？ 相信 99% 的 Go 开发者会毫不犹豫地把票投给 Go。毕竟，一门编译型的静态语言，怎么可能输给拖着 GIL 锁的解释型脚本语言？ 但现实往往比小说更魔幻。 最近，在 Reddit 的 r/golang 论坛上，一张残酷的 Benchmark 跑分图引发了整个 Go 社区的剧烈震荡。一位开发者，使用极其常见的日志解析正则表达式（提取 IP、时间、URI 等），对各大语言进行了一次横评。 结果令人大跌眼镜：同样的数据集，Rust 跑了 3.9 秒，Zig 跑了 1.3 秒，而 Go 居然跑了整整 38.1 秒！整整比第一名 Zig 慢了接近 30 倍！ 如果你再去翻看 Go 官方的 Issue #26623，会看到更绝望的数据：早在2018年的一次正则基准测试中，Go 不仅被 C++ 和 Rust [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/why-is-go-regex-so-slow-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/17/why-is-go-regex-so-slow">本文永久链接</a> &#8211; https://tonybai.com/2026/03/17/why-is-go-regex-so-slow</p>
<p>大家好，我是Tony Bai。</p>
<p>如果有人问你：在处理纯 CPU 密集型的文本匹配时，Go 和 Python 哪个快？</p>
<p>相信 99% 的 Go 开发者会毫不犹豫地把票投给 Go。毕竟，一门编译型的静态语言，怎么可能输给拖着 GIL 锁的解释型脚本语言？</p>
<p>但现实往往比小说更魔幻。</p>
<p>最近，在 Reddit 的 r/golang 论坛上，一张残酷的 Benchmark 跑分图<a href="https://www.reddit.com/r/golang/comments/1rr2evh/why_is_gos_regex_so_slow/">引发了整个 Go 社区的剧烈震荡</a>。一位开发者，使用极其常见的日志解析正则表达式（提取 IP、时间、URI 等），对各大语言进行了一次横评。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/why-is-go-regex-so-slow-2.png" alt="" /></p>
<p>结果令人大跌眼镜：同样的数据集，Rust 跑了 3.9 秒，Zig 跑了 1.3 秒，而 Go 居然跑了整整 38.1 秒！整整比第一名 Zig 慢了接近 30 倍！</p>
<p>如果你再去翻看 Go 官方的 <a href="https://github.com/golang/go/issues/26623">Issue #26623</a>，会看到更绝望的数据：早在2018年的一次正则基准测试中，Go 不仅被 C++ 和 Rust 碾压，甚至连 Python 3、PHP 和 Javascript 都能在正则上把 Go 按在地上摩擦。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/why-is-go-regex-so-slow-3.png" alt="" /></p>
<p>一时间，无数 Gopher 信仰崩塌：“为什么 Go 的标准库 regexp 这么慢？”、“连简单的正则都做不好，Go 凭什么做云原生霸主？”</p>
<p>今天，我们就来硬核扒开 Go 语言 regexp 包的底层设计和实现。你会发现，这不是 Go 团队的技术拉跨，而是一场关于“性能、安全与工程哲学”的博弈。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>原罪：你以为的慢，其实是替 CGO 负重前行</h2>
<p>面对“为什么 Go 的正则比 Python 还慢”的灵魂拷问，Go 核心团队成员 Ian Lance Taylor 给出了第一层解释。</p>
<p>在 Python、PHP 甚至 Node.js 中，你以为你是在运行脚本，其实它们底层都在悄悄“作弊”。这些语言的正则表达式引擎，几乎全部是用高度优化的 C 语言库（主要是 PCRE，Perl Compatible Regular Expressions）编写的。</p>
<p>当你在 Python 里调用 re.match() 时，它瞬间就穿透到了 C 语言的底层，享受着现代 CPU 指令集的极致加速。</p>
<p>那 Go 为什么不用 C？因为 Go 是一门有着“极度洁癖”的语言。</p>
<p>如果 Go 的标准库引入了 C 语言的 PCRE，就必须通过 CGO 来调用。而 CGO 的上下文切换成本极高，更致命的是，它会彻底破坏 Go 引以为傲的“跨平台交叉编译”能力。你再也不能在一个简单的 go build 后，把二进制文件无痛丢到任何 Alpine 容器里了。</p>
<p>因此，Go 团队做出了第一个艰难的决定：完全使用纯 Go 语言，从零手写一个正则表达式引擎。</p>
<p>脱离了 C 语言几十年的底层优化积累，用原生代码去硬刚别人的 C 引擎，这是 Go 看起来“慢”的表层原因。</p>
<p>但这，仅仅是冰山一角。</p>
<h2>路线之争：为了防止系统“猝死”，Go 抛弃了速度</h2>
<p>真正让 Go 正则变得“慢”的，是算法架构上的降维选择。这牵扯到 Go 语言的缔造者之一、大神 Russ Cox (rsc) 的一段往事。</p>
<p>在正则表达式的底层世界里，存在着两大流派：</p>
<ol>
<li><strong>基于回溯（Backtracking）的 NFA 引擎</strong>：代表人物是 PCRE（被 Python、Java、PHP 广泛使用）。</li>
<li><strong>基于 Thompson NFA / DFA 的引擎</strong>：代表人物是 RE2（被 Go、Rust 采用）。</li>
</ol>
<p>PCRE 引擎极快，它支持各种花里胡哨的语法（如前瞻断言 Lookaround、反向引用 Backreferences）。它的算法逻辑是“不撞南墙不回头”的深度优先搜索（DFS）。在匹配正常字符串时，它快如闪电。</p>
<p>但它有一个极其致命的死穴：ReDoS（正则表达式拒绝服务攻击）。</p>
<p>想象一下你写了一个看似无害的正则：</p>
<pre><code>^([a-zA-Z0-9]+\s?)+$
</code></pre>
<p>如果黑客故意传入一个极其恶意的字符串：aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!（注意最后的感叹号）。</p>
<p>PCRE 引擎会陷入可怕的“灾难性回溯”。它会尝试所有可能的组合，时间复杂度瞬间飙升到 <strong>O(2^n)</strong> 级。短短几十个字符的输入，能让单核 CPU 满载运行几年都算不出结果！</p>
<p>2019 年，互联网巨头 Cloudflare 就因为在 WAF 防火墙中写错了一个极其简单的正则表达式，CPU资源瞬间耗尽，导致全球80% 的通过 Cloudflare 代理的网站受到影响，陷入瘫痪长达 27 分钟。这就是 PCRE 回溯引擎的恐怖破坏力。</p>
<p>Russ Cox 在设计 Go 的 regexp 包时，定下了一条铁律：系统安全与可预测性，绝对高于单次请求的极限性能。</p>
<p>因此，Go 彻底抛弃了危险的回溯引擎，选择了基于 <strong>Thompson NFA</strong> 的算法（源自他之前在Google主导设计的 C++ RE2 引擎）。这种算法保证了匹配时间永远是<strong>线性复杂度 O(n)</strong>。</p>
<p>无论黑客传入多么恶意的字符串，Go 的正则引擎绝对不会发生灾难性回溯。它牺牲了在美好情况下的极致快感，换取了在极端恶劣环境下的金身不坏。</p>
<p>这算是 Go 团队最顶级的“克制”吧。</p>
<h2>硬核剖析：Go 的正则，时间到底去哪了？</h2>
<p>既然算法是 O(n) 的，为什么 Go 依然比同样采用 RE2/DFA 思想的 Rust 慢那么多呢？</p>
<p>如果你去追踪 Go 官方的 <a href="https://github.com/golang/go/issues/19629">Issue #19629</a>和<a href="https://github.com/golang/go/issues/11646">Issue #11646</a>，通过 pprof 分析 Go 正则匹配的 CPU 耗时，你会看到几个令人头疼的瓶颈：</p>
<p><strong>1. 沉重的 UTF-8 解析税</strong></p>
<p>Rust 和 C 的很多正则引擎，底层是直接在“字节（Byte）”级别游走的。而 Go 为了贯彻它对 Unicode 的原生支持，regexp 包在内部极其频繁地将输入流解码为 Rune（Go 的 Unicode 字符单位）。这种逐个解析 Rune 的操作，带来了巨大的计算开销。</p>
<p><strong>2. NFA 虚拟线程的内存震荡</strong></p>
<p>在 Go 的底层源码中，你可以看到耗时最高的两个函数是 (<em>machine).add 和 (</em>machine).step。</p>
<p>Go 是通过维护两个“状态队列（稀疏集）”来模拟 NFA 的并行推进的。每读取一个字符，引擎就要把所有可能的状态添加到下一个队列中。这导致了海量的内存重分配（Allocation）和切片拷贝。哪怕是匹配一个简单的长字符串，底层都在疯狂地挪动内存。</p>
<p>既然这么慢，为什么不把 C++ RE2 里那个极速的 DFA（确定性有限状态自动机）移植到 Go 里呢？</p>
<p><a href="https://github.com/golang/go/issues/11646">Issue #11646</a> 记录了这次尝试。开发者 Michael Matloob 曾经试图将 RE2 的 DFA 移植过来，但被 Russ Cox 拦下了。原因很直接：DFA 虽然快，但它在运行时会动态生成大量的状态，如果不加以严格限制，极易引发内存耗尽（OOM）。在 Go 带有 GC 的内存模型下，频繁创建和销毁庞大的 DFA 状态缓存，会让垃圾回收器不堪重负。</p>
<p>于是，Go 的标准库在“安全、内存、性能”的三角博弈中，选择了妥协于现状。</p>
<h2>社区的探索：SIMD 降维打击与 100倍加速的 coregex</h2>
<p>官方的克制固然令人敬佩，但对于身处一线的业务开发者来说，由于正则太慢导致的 CPU 告警，是实实在在的痛点。</p>
<p>“既然官方不愿意改，那我们就自己造轮子！”</p>
<p>在近期的 Issue #26623 中，一位名为 kolkov 的开发者带着他的开源库 coregex 杀入了战场，向 Go 标准库发起了直接的挑战。</p>
<p>coregex 是一个完全用纯 Go 编写的正则库，它的出现直接将 Go 的正则性能拉到了与 Rust 并驾齐驱，甚至在某些场景下超越 Rust 的境地。</p>
<p>它是怎么做到的？它在底层祭出了几个大杀器：</p>
<ol>
<li><strong>SIMD 预过滤（Prefilters）</strong>：它使用了手写的汇编代码（AVX2/SSSE3 指令集），将正则中的静态字符串提取出来，利用 CPU 的向量化指令，一次性对比 32 个字节。像匹配 .*&#46;txt 这种正则，速度直接飙升了 <strong>1500倍</strong>！</li>
<li><strong>带缓存的 Lazy DFA</strong>：它绕过了标准库每次都重算 NFA 的毛病，在运行时动态构建 DFA 缓存，大幅消除了内存分配。</li>
<li><strong>写时复制（COW）的捕获组</strong>：标准库在处理提取子串时会疯狂分配切片。coregex 通过切片状态共享，让内存分配直接减少了 50%。</li>
</ol>
<p>在 kolkov 提供的 CI 跑分中，在 6MB 的输入下，coregex 处理邮箱、URI 的耗时仅为 1.5 毫秒，而标准库耗时高达 260 毫秒。<strong>足足快了 170 倍！</strong></p>
<p>然而，这段极其硬核的改进，依然很难入Go团队法眼，更不用谈在短期内被合并进 Go 的标准库。</p>
<p>一方面，Go 官方目前正在推进自己的内建 SIMD 方案（Issue #73787），不想接入手写的汇编代码；另一方面，社区大牛 Ben Hoyt 在使用 coregex 时发现，如果开启 Longest() 模式（最长匹配模式），这个库的性能会发生严重退化。</p>
<p>这再次印证了标准库开发的残酷：在某几个特定场景下跑到全宇宙第一很容易，但要在一套 API 里无死角地兜底全世界所有的奇葩正则输入，难如登天。</p>
<h2>在 Go 中写正则的正确姿势</h2>
<p>大致了解了底层原理，回到日常开发中，我们该如何应对 Go 正则的性能瓶颈？作为高级 Go 开发者，请务必将以下三条军规刻在脑子里：</p>
<p><strong>第一条：能不用正则，就坚决不用</strong></p>
<p>如果你只是想检查字符串是否包含子串，或者进行简单的前后缀匹配，<strong>永远优先使用 strings.Contains()、strings.HasPrefix() 等内置函数。</strong> 它们底层有优化的实现，在这样简单场景下，速度是 regexp 包不可比拟的。</p>
<p><strong>第二条：将编译前置，远离循环</strong></p>
<p>如果你翻看新手代码，最常见的低级错误就是在 for 循环或者每次 HTTP 请求里调用 regexp.Compile()。</p>
<p>正则的编译过程（生成 NFA 字节码）极其消耗 CPU。请永远在全局变量或 init() 函数中使用 regexp.MustCompile()，将其编译好并复用。Go 的 Regexp 对象是并发安全的，随便多 Goroutine 调用。</p>
<p><strong>第三条：在极端性能要求下，打破“洁癖”</strong></p>
<p>如果你的核心业务（比如高频日志清洗、海量数据 ETL）确实被 regexp 卡住了脖子，不要硬抗。</p>
<p>你可以选择引入通过 CGO 调用 PCRE的Go binding库（比如https://github.com/GRbit/go-pcre），但要注意防范 ReDoS 攻击，或google/re2的Go binding(比如https://github.com/wasilibs/go-re2)，又或是在业务侧尝试社区的野路子 coregex。在生存面前，架构的“洁癖”是可以适当妥协的。</p>
<h2>小结</h2>
<p>“为什么 Go 的正则这么慢？”</p>
<p>这并非一个简单的工程失误。它是一道分水岭，隔开了“追求跑分好看的玩具代码”与“守护千万级并发集群的生产级设计”。</p>
<p>Russ Cox 宁愿忍受整个开源界的群嘲，也没有为了刷榜而去引入危险的回溯引擎。这或许就是 Go 语言能够成为云原生时代头部语言的原因：<strong>不盲目追求上限的巅峰，而是死死守住安全下限。</strong></p>
<h2>参考资料</h2>
<ul>
<li>https://www.reddit.com/r/golang/comments/1rr2evh/why_is_gos_regex_so_slow/</li>
<li>https://github.com/golang/go/issues/26623</li>
<li>https://github.com/golang/go/issues/19629</li>
<li>https://github.com/golang/go/issues/11646</li>
<li>https://swtch.com/~rsc/regexp/</li>
</ul>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>在你的日常开发中，有没有被由于“写了糟糕的正则表达式”而导致 CPU 飙升 100% 的惨痛经历？你又是如何排查和优化的？</p>
<p>欢迎在评论区分享你的血泪史</p>
<hr />
<p><strong>认知跃迁：读懂底层机制，才能看透系统架构的本质</strong></p>
<p>从放弃 CGO 选择纯 Go 实现，到防范 ReDoS 采用 NFA，再到社区为了榨干 CPU 性能而引入 SIMD。Go 语言的每一个看似“不合理”的设计背后，都隐藏着深邃的系统级考量。</p>
<p>然而，令人遗憾的是，很多开发者写了五六年的 Go 代码，遇到性能瓶颈依然只能靠“瞎猜”和“重启”。他们对 Go 的内存逃逸、Goroutine 调度机制以及标准库的底层数据结构一无所知。</p>
<p>如果你渴望突破“熟练调包侠”的瓶颈，想要像 Russ Cox 这样的顶级大厂架构师一样，看透 Go 语言背后的底层逻辑，建立起自己坚不可摧的技术护城河——</p>
<p>我的极客时间专栏 <strong>《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》</strong> 正是为你量身定制。</p>
<p>在这 30+ 讲极其硬核的内容中，我不仅带你剥开语法糖，深挖 Goroutine 调度、Channel 哲学；更会带你全面吃透 Go 的工程化实践，把底层性能调优背后的逻辑一次性讲透。</p>
<p>目标只有一个：助你完成从“Go 熟练工”到“能做顶级架构决策的 Go 专家”的蜕变！</p>
<p>扫描下方二维码，加入专栏。不要用战术上的勤奋，掩盖战略上的懒惰。让我们一起用架构师的视角，重新认识 Go 语言。</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-4.png" alt="" /></p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>别傻了，写出极致整洁的代码，是你升不了职的根本原因</title>
		<link>https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/</link>
		<comments>https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/#comments</comments>
		<pubDate>Sun, 15 Mar 2026 00:04:50 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AdverseSelection]]></category>
		<category><![CDATA[ArchitectureDesign]]></category>
		<category><![CDATA[CareerCompetitiveness]]></category>
		<category><![CDATA[CodeCleanliness]]></category>
		<category><![CDATA[Complexity]]></category>
		<category><![CDATA[DesignPhilosophy]]></category>
		<category><![CDATA[DistributedArchitecture]]></category>
		<category><![CDATA[EngineeringProwess]]></category>
		<category><![CDATA[EvaluationSystem]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[Impact]]></category>
		<category><![CDATA[IncentiveMechanisms]]></category>
		<category><![CDATA[LessIsMore]]></category>
		<category><![CDATA[Overengineering]]></category>
		<category><![CDATA[PerfectlyCleanCode]]></category>
		<category><![CDATA[Promotion]]></category>
		<category><![CDATA[Restraint]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[simplicity]]></category>
		<category><![CDATA[SoftwareEngineering]]></category>
		<category><![CDATA[SystemDesign]]></category>
		<category><![CDATA[TechnicalGeeks]]></category>
		<category><![CDATA[TechnicalValues]]></category>
		<category><![CDATA[代码洁癖]]></category>
		<category><![CDATA[克制]]></category>
		<category><![CDATA[分布式架构]]></category>
		<category><![CDATA[复杂性]]></category>
		<category><![CDATA[少即是多]]></category>
		<category><![CDATA[工程实力]]></category>
		<category><![CDATA[影响力]]></category>
		<category><![CDATA[技术价值观]]></category>
		<category><![CDATA[技术极客]]></category>
		<category><![CDATA[极致整洁]]></category>
		<category><![CDATA[架构设计]]></category>
		<category><![CDATA[激励机制]]></category>
		<category><![CDATA[简单]]></category>
		<category><![CDATA[系统设计]]></category>
		<category><![CDATA[职场晋升]]></category>
		<category><![CDATA[职场竞争力]]></category>
		<category><![CDATA[设计哲学]]></category>
		<category><![CDATA[评价体系]]></category>
		<category><![CDATA[软件工程]]></category>
		<category><![CDATA[过度设计]]></category>
		<category><![CDATA[逆向淘汰]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6042</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity 大家好，我是 Tony Bai。 今天讲点得罪人的大实话。如果你是一个有代码洁癖、崇尚极简主义、总是能用最干净的逻辑解决复杂问题的“老实人”程序员，那么接下来的内容，可能会戳痛你。 因为在我们当下的技术职场里，有一个残酷的潜规则：“几乎没人会因为把代码写得太简单，而获得晋升。” “简单是一种伟大的美德，但复杂性往往卖得更好。” —— 艾兹格·迪杰斯特拉 为什么“PPT架构师”总能赢你？ 想象一个极其真实的职场年度晋升场景。 你是工程师 A。你接到了一个核心需求，经过缜密思考，你砍掉了伪需求，用 50 行极其优雅、无状态、无需外部依赖的代码解决了问题。两天上线，零 Bug，下一个接手的人一眼就能看懂。然后你默默回去修下一个 Bug。 你的同事 B 接到了类似的需求。他敏锐地嗅到了“搞一波大动作”的机会。他引入了最新的消息队列，搞了一套基于 Pub/Sub 的微服务解耦机制，外加一个极度灵活的动态配置中心。他拉着各部门开了 5 次架构对齐会，花了 3 个星期，提交了 50 个 PR。 到了年底晋升答辩，命运的齿轮开始转动。 B 在 PPT 上展示了他那张密密麻麻、满是高大上名词的“企业级事件驱动架构图”，评委频频点头，惊呼“具备极强的技术深度和前瞻性布局”，B 顺利拿到了高层级的晋升（Staff/Principal）。 而你呢？你不仅什么都没拿到，甚至连材料都写不出几行字。因为你把问题解决得太简单了，导致你的贡献变成了“隐形的”。 这当然不是老板故意使坏，而是我们的评价体系出现了极其严重的“逆向淘汰”Bug。 你很难为你“没有构建的灾难”去编织一个宏大的叙事。这套错位的激励机制，甚至从你面试的那一天就开始了。回想一下系统设计面试，如果你给出一个单体数据库+直白API的务实方案，面试官会皱眉；但如果你在白板上疯狂画微服务、分库分表、分布式锁，面试官才会满意地点头。 你学到了什么？你学到的是：复杂性才能显得你聪明，哪怕它是毫无必要的。 克制，才是最高级的炫技 难道老实人就活该吃亏吗？面对职场里这种“未挣得的复杂性（Unearned complexity，那些不必要的、额外的复杂元素）”，我们到底该怎么办？ 作为一名写了多年代码、也面试过N多人的老兵，我想带你看看Go 语言的生存哲学。 如果你把编程语言拟人化，Go 就是那个在技术圈里坚持写简单代码的“老实人”。 在众多技术论坛上，用 Rust 编写一个极其复杂的生命周期标注，或者玩弄高级宏，往往能赢得满堂喝彩，被视为“真正的技术极客”。而 Go 团队呢？他们拒绝加入复杂的特性，坚持去构造函数、去继承。结果常常被嘲笑“简陋”、“缺乏智力挑战”。 这就和你我在职场中的处境一模一样：人们很容易为解决极其复杂问题的精巧设计而惊叹，却极难去赞美为了“把复杂性挡在门外”而付出的巨大克制。 但结果呢？Go [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/over-engineering-trap-no-promotion-for-simplicity-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity">本文永久链接</a> &#8211; https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity</p>
<p>大家好，我是 Tony Bai。</p>
<p>今天讲点得罪人的大实话。如果你是一个有代码洁癖、崇尚极简主义、总是能用最干净的逻辑解决复杂问题的“老实人”程序员，那么接下来的内容，可能会戳痛你。</p>
<p>因为在我们当下的技术职场里，有一个残酷的潜规则：“几乎没人会因为把代码写得太简单，而获得晋升。”</p>
<blockquote>
<p>“简单是一种伟大的美德，但复杂性往往卖得更好。” —— 艾兹格·迪杰斯特拉</p>
</blockquote>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>为什么“PPT架构师”总能赢你？</h2>
<p>想象一个极其真实的职场年度晋升场景。</p>
<p><strong>你是工程师 A</strong>。你接到了一个核心需求，经过缜密思考，你砍掉了伪需求，用 50 行极其优雅、无状态、无需外部依赖的代码解决了问题。两天上线，零 Bug，下一个接手的人一眼就能看懂。然后你默默回去修下一个 Bug。</p>
<p><strong>你的同事 B</strong> 接到了类似的需求。他敏锐地嗅到了“搞一波大动作”的机会。他引入了最新的消息队列，搞了一套基于 Pub/Sub 的微服务解耦机制，外加一个极度灵活的动态配置中心。他拉着各部门开了 5 次架构对齐会，花了 3 个星期，提交了 50 个 PR。</p>
<p>到了年底晋升答辩，命运的齿轮开始转动。</p>
<p>B 在 PPT 上展示了他那张密密麻麻、满是高大上名词的“企业级事件驱动架构图”，评委频频点头，惊呼“具备极强的技术深度和前瞻性布局”，B 顺利拿到了高层级的晋升（Staff/Principal）。</p>
<p>而你呢？你不仅什么都没拿到，甚至连材料都写不出几行字。因为你把问题解决得太简单了，导致你的贡献变成了<strong>“隐形的”</strong>。</p>
<p>这当然不是老板故意使坏，而是我们的评价体系出现了极其严重的“逆向淘汰”Bug。</p>
<p>你很难为你“没有构建的灾难”去编织一个宏大的叙事。这套错位的激励机制，甚至从你面试的那一天就开始了。回想一下系统设计面试，如果你给出一个单体数据库+直白API的务实方案，面试官会皱眉；但如果你在白板上疯狂画微服务、分库分表、分布式锁，面试官才会满意地点头。</p>
<p>你学到了什么？你学到的是：复杂性才能显得你聪明，哪怕它是毫无必要的。</p>
<h2>克制，才是最高级的炫技</h2>
<p>难道老实人就活该吃亏吗？面对职场里这种“未挣得的复杂性（Unearned complexity，那些不必要的、额外的复杂元素）”，我们到底该怎么办？</p>
<p>作为一名写了多年代码、也面试过N多人的老兵，我想带你看看Go 语言的生存哲学。</p>
<p>如果你把编程语言拟人化，Go 就是那个在技术圈里坚持写简单代码的“老实人”。</p>
<p>在众多技术论坛上，用 Rust 编写一个极其复杂的生命周期标注，或者玩弄高级宏，往往能赢得满堂喝彩，被视为“真正的技术极客”。而 Go 团队呢？他们拒绝加入复杂的特性，坚持去构造函数、去继承。结果常常被嘲笑“简陋”、“缺乏智力挑战”。</p>
<p>这就和你我在职场中的处境一模一样：人们很容易为解决极其复杂问题的精巧设计而惊叹，却极难去赞美为了“把复杂性挡在门外”而付出的巨大克制。</p>
<p>但结果呢？Go 凭借着这种极简，支撑起了整个云原生时代的半壁江山。Go 证明了一个硬道理：<strong>真正的工程实力，从来不是看你能堆砌多少种设计模式，而是看你能否用最直白的结构，解决最复杂的业务。</strong></p>
<p>任何一个新手都能把系统搞复杂；只有具备了足够的经验和自信，你才懂得何时应该留白。</p>
<h2>破局路径：如何包装你的“简单”？</h2>
<p>如果你认同“简单”的价值，但又不想在绩效和晋升上吃亏，你就必须学会一套<strong>“防御性职场包装术”</strong>。</p>
<p>记住这个核心心法：你的代码可以很简单，但你必须让别人看到你达成简单的“思考过程”有多复杂。</p>
<p>工作成果本身是不会说话的，你需要把“决定不做什么（Value of NOT building）”转化为你的影响力。从今天起，改变你的表达方式。</p>
<h2>你照着做就行：晋升/答辩对线话术模板</h2>
<p>无论是在写周报、写晋升材料，还是在架构评审会上，直接套用以下模板：</p>
<h3>场景一：写晋升材料 / 简历</h3>
<p>❌ <strong>吃亏的普通写法：</strong></p>
<blockquote>
<p><em>“独立负责了功能 X 的开发，编写了 50 行核心代码，按时上线，没有出 Bug。”</em><br />
  （评委：这活儿实习生也能干。）</p>
</blockquote>
<p>✅ <strong>高绩效的降维打击写法：</strong></p>
<blockquote>
<p><em>“主导了功能 X 的架构演进。深度评估了包括事件驱动架构、自定义中间件抽象等三种高并发方案，从 ROI（投入产出比）和系统熵增角度，排除了现阶段不必要的过度设计，为团队节省约 15 人日的研发与运维成本。最终敲定极简直白架构，两天内完成交付，并在过去 6 个月内保持零故障运行，确立了团队‘务实驱动’的工程标杆。”</em></p>
</blockquote>
<h3>场景二：架构评审会遭遇“过度设计”逼问</h3>
<p>当有人在会议上质问你：<em>“难道我们不应该加个抽象层，为了未来百万并发做防范（future-proof）吗？”</em></p>
<p>不要立刻妥协去加代码。</p>
<p>✅ <strong>教科书级硬核回击：</strong></p>
<blockquote>
<p><em>“我做过推演：如果以后确实需要扩展，添加这个层级只需要大约 2 天的重构代价；但我同样评估了，如果现在就强行加上，会立刻增加 30% 的系统复杂度和长期的维护成本。基于目前的业务增速，这属于‘未挣得的复杂性’。权衡之下，我认为我们现在的架构决策应该是‘等待’。”</em></p>
</blockquote>
<p>你不是在对抗，你是在向所有人展示：<strong>你看到了复杂性，并且你用专业的工程判断力，主动选择击碎了它。</strong></p>
<h2>写在最后</h2>
<p>无论你是写日常业务代码，还是设计分布式系统，<strong>“简单”永远是最难达到的境界。</strong></p>
<p>如果我们继续只奖励复杂性，无视简单性，就不要对屎山代码越来越臃肿感到惊讶。希望这篇文章，能帮到那些依然在坚持写出整洁、克制代码的无名英雄们。</p>
<p><strong>今日互动：</strong></p>
<p>你在公司里，是那个苦逼的“工程师A”吗？你见过最离谱的“PPT过度架构”是什么样的？</p>
<p>欢迎在评论区吐个槽。</p>
<hr />
<p><strong>突破瓶颈，构建属于你的“极简工程审美”</strong></p>
<p>很多读者问我，如果不去学那些花里胡哨的设计模式，怎么提升核心竞争力？我的答案是：深入理解一门把“简单”做到极致的语言，去品味它背后的架构决策。</p>
<p>如果你的 Go 技能卡在了“熟练”到“精通”的瓶颈期，渴望提升软件设计能力，驾驭复杂项目却缺乏章法——</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力。目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-4.png" alt="" /></p>
<hr />
<p><strong>认知升级：跳出内卷，成为“定义规则”的人</strong></p>
<p>有很多读者看完可能会问：<em>Tony老师，如果我不去卷那些花里胡哨的复杂架构，在这个技术内卷的时代，我该如何建立自己不可替代的核心竞争力？</em></p>
<p>我的答案是：<strong>转换赛道，从“拧螺丝的人”升级为“造工厂的人”。</strong></p>
<p>尤其是在大模型爆发的今天，如果你还在试图靠“手敲成千上万行复杂的代码”来证明自己的不可替代性，你不仅会输给那些擅长写PPT的同事，更会被不知疲倦的 AI 无情淘汰。因为机器，比你更擅长制造复杂的代码。</p>
<p>真正的聪明人，早就停止了这场无效的内卷。他们把“简单”的工程哲学发挥到了极致：<strong>他们只专注于最高价值的“定义目标与架构决策”，然后把所有繁琐的、底层的“拧螺丝”工作，统统外包给 AI Agent。</strong></p>
<p>厌倦了为了晋升而制造复杂性？想要彻底跳出旧的评价体系，实现开发效率的降维打击？</p>
<p>我的新专栏<strong>《AI原生开发工作流实战》</strong>正是为你准备的破局利器。在这个专栏里，我不教你虚无缥缈的理论，只教你如何把 AI Agent（如 Claude Code）变成你手下最不知疲倦的“高级外包”。</p>
<ul>
<li><strong>告别低效内耗，重塑开发范式</strong>：用 AI 抹平代码复杂度的壁垒，让你专注于业务与架构本质。</li>
<li><strong>驾驭 AI Agent 工作流</strong>：手把手教你实现从需求分析、代码生成到测试的自动化流水线。</li>
<li><strong>实现职场跃升</strong>：带你从苦哈哈的“AI 工具使用者”，进化为规范驱动开发的“工作流指挥家（软件工厂厂长）”。</li>
</ul>
<p>不要再用战术上的勤奋（写复杂的代码），去掩盖战略上的懒惰（拒绝使用新杠杆）。</p>
<p>扫描下方二维码，开启你的 AI 原生开发之旅，把复杂留给机器，把晋升留给自己。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>拉个 JSON 居然要装 5 个第三方库？终于明白 Go 的标准库到底有多“霸道”</title>
		<link>https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/</link>
		<comments>https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/#comments</comments>
		<pubDate>Wed, 11 Mar 2026 00:48:45 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[BatteriesIncluded]]></category>
		<category><![CDATA[CompatibilityGuarantee]]></category>
		<category><![CDATA[CrossPlatform]]></category>
		<category><![CDATA[DecisionFatigue]]></category>
		<category><![CDATA[DependencyHell]]></category>
		<category><![CDATA[EngineeringPhilosophy]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[HighPerformance]]></category>
		<category><![CDATA[JSONParsing]]></category>
		<category><![CDATA[JSON解析]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[NetworkRequests]]></category>
		<category><![CDATA[Nim]]></category>
		<category><![CDATA[ProductionReady]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[standardlibrary]]></category>
		<category><![CDATA[SupplyChainSecurity]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[ZeroDependency]]></category>
		<category><![CDATA[供应链安全]]></category>
		<category><![CDATA[依赖地狱]]></category>
		<category><![CDATA[兼容性保证]]></category>
		<category><![CDATA[决策疲劳]]></category>
		<category><![CDATA[工程哲学]]></category>
		<category><![CDATA[开箱即用]]></category>
		<category><![CDATA[微服务]]></category>
		<category><![CDATA[标准库]]></category>
		<category><![CDATA[生产级]]></category>
		<category><![CDATA[网络请求]]></category>
		<category><![CDATA[跨平台]]></category>
		<category><![CDATA[零依赖]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6017</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success 大家好，我是Tony Bai。 在现代软件开发中，我们似乎已经患上了一种名为“依赖上瘾”的绝症。 新建一个项目，你敲下的第一行命令大概率不是写业务逻辑，而是 npm install、cargo add 或者 pip install。我们潜意识里已经默认：语言本身只提供最基础的砖块，稍微高级一点的功能（比如发起个网络请求、解析个 JSON），都必须去浩如烟海的开源社区里“淘金”。 但这种习以为常的生态繁荣，真的是一件好事吗？ 近日，在 Reddit 的 r/golang 社区，一个题为《标准库是 Go 成功的一部分吗？》的帖子，像一颗深水炸弹，炸出了无数程序员对于“依赖地狱（Dependency Hell）”的疯狂吐槽。 发帖人分享了一个极其真实且让人啼笑皆非的日常小故事： 他想写一个微型应用，目的非常单纯——从家里的太阳能光伏电池 Web 服务器上抓取一个 JSON 文件，解析出来，然后把能源数据显示在屏幕上。 他首先用 Go 语言写了一版。极其丝滑，仅靠自带的标准库就搞定了网络请求和 JSON 解析，编译出一个干干净净的二进制文件，直接跑通。 几天后，他闲来无事，想测试一下其他编译型语言： 他尝试了 D 语言，发现在不依赖第三方库的情况下，D 语言根本无法在三大主流操作系统上顺利完成“下载并解析 JSON”这个基础任务。 他转头去折腾目前红得发紫的 Rust，结果发现，如果不借助 reqwest（处理 HTTP）和 serde（处理 JSON）这两个庞大的第三方 Crates，面对这个简单的需求，他同样寸步难行。 一圈折腾下来，只有 Nim 勉强做到了原生支持。 这个看似不起眼的小实验，无意间撕开了现代软件工程一块遮羞布，也揭示了 Go 语言在后端开发中一个极其“霸道”、却常被新手低估的绝对优势：降维打击般的标准库（Standard Library）。 今天，我们就来深度剖析一下，为什么大量工程师越来越偏爱 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/standard-library-is-part-of-the-go-success-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success">本文永久链接</a> &#8211; https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success</p>
<p>大家好，我是Tony Bai。</p>
<p>在现代软件开发中，我们似乎已经患上了一种名为“依赖上瘾”的绝症。</p>
<p>新建一个项目，你敲下的第一行命令大概率不是写业务逻辑，而是 npm install、cargo add 或者 pip install。我们潜意识里已经默认：语言本身只提供最基础的砖块，稍微高级一点的功能（比如发起个网络请求、解析个 JSON），都必须去浩如烟海的开源社区里“淘金”。</p>
<p><strong>但这种习以为常的生态繁荣，真的是一件好事吗？</strong></p>
<p>近日，在 Reddit 的 r/golang 社区，一个题为《<a href="https://www.reddit.com/r/golang/comments/1rkfmnj/standard_library_part_of_the_go_success/">标准库是 Go 成功的一部分吗？</a>》的帖子，像一颗深水炸弹，炸出了无数程序员对于“依赖地狱（Dependency Hell）”的疯狂吐槽。</p>
<p>发帖人分享了一个极其真实且让人啼笑皆非的日常小故事：</p>
<p>他想写一个微型应用，目的非常单纯——从家里的太阳能光伏电池 Web 服务器上抓取一个 JSON 文件，解析出来，然后把能源数据显示在屏幕上。</p>
<p>他首先用 Go 语言写了一版。极其丝滑，仅靠自带的标准库就搞定了网络请求和 JSON 解析，编译出一个干干净净的二进制文件，直接跑通。</p>
<p>几天后，他闲来无事，想测试一下其他编译型语言：</p>
<ul>
<li>他尝试了 <strong>D 语言</strong>，发现在不依赖第三方库的情况下，D 语言根本无法在三大主流操作系统上顺利完成“下载并解析 JSON”这个基础任务。</li>
<li>他转头去折腾目前红得发紫的 <strong>Rust</strong>，结果发现，如果不借助 reqwest（处理 HTTP）和 serde（处理 JSON）这两个庞大的第三方 Crates，面对这个简单的需求，他同样寸步难行。</li>
<li>一圈折腾下来，只有 Nim 勉强做到了原生支持。</li>
</ul>
<p>这个看似不起眼的小实验，无意间撕开了现代软件工程一块遮羞布，也揭示了 Go 语言在后端开发中一个极其“霸道”、却常被新手低估的绝对优势：<strong>降维打击般的标准库（Standard Library）。</strong></p>
<p>今天，我们就来深度剖析一下，为什么大量工程师越来越偏爱 Go 这种“零依赖”的极简哲学。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>你以为你在写代码，其实你在做“库的选品”</h2>
<p>在很多主打“生态繁荣”的编程语言中，标准库被视为一种“最小公集”。语言的设计者把高级特性推给社区，美其名曰“保持语言的核心轻量”。</p>
<p>这听起来很美好，但在实际的商业工程中，它带来了一个极其消耗心智的隐性成本：<strong>决策疲劳（Decision Fatigue）</strong>。</p>
<p>想象一下，当你用 Node.js 或者 Rust 仅仅需要发起一个异步 HTTP 请求时，你需要经历怎样痛苦的内心戏？</p>
<ol>
<li>打开包管理网站，搜索 “http client”。</li>
<li>面对排名前 5 的主流库，你开始像个电商买手一样比对：A 库的 Star 数最高但半年没更新了；B 库的 API 最优雅但是性能测试差点意思；C 库支持最新的异步模型但文档写得像天书。</li>
<li>你甚至还要去翻看它们的 GitHub Issues，看看有没有致命的内存泄漏。</li>
<li>纠结了一下午，终于选定了一个库，引入依赖，然后开始痛苦地学习它那套独创的 API 调用法则。</li>
</ol>
<p><img src="https://tonybai.com/wp-content/uploads/2026/standard-library-is-part-of-the-go-success-3.png" alt="" /></p>
<p>而在 Go 中，这一切内耗根本不存在。</p>
<p>正如 Reddit 帖子评论区一位资深 Gopher 一针见血指出的：</p>
<blockquote>
<p>“Go 的成功不仅在于它轻量、简单、易学，还在于它自带了一个庞大且极其优秀的标准库。因此，在开始处理每个微小的子任务之前，你不需要去评估一堆第三方库。”</p>
</blockquote>
<p>Go 的哲学是“开箱即用”。net/http 就在那里，encoding/json(以及json/v2) 就在那里。它直接消灭了你在技术选型上的无意义内耗，让你可以把 100% 的脑力，全部砸在能给公司赚钱的业务逻辑上。</p>
<h2>不是所有的标准库，都敢叫“生产级”</h2>
<p>看到这里，Python 开发者可能会不服气：“Python 也有非常丰富的标准库啊，我们叫 Batteries included（自带电池）！”</p>
<p>没错，Python 的标准库确实庞大，但问题在于：<strong>它好用吗？它能直接扛高并发吗？</strong></p>
<p>Python 自带的 urllib API 设计得极其反人类，导致全网的 Python 教程都在教你第一时间去 pip install requests。</p>
<p>如果你提供的标准库只是一个“能跑就行”的玩具，开发者迟早还是要逃向第三方库的怀抱。其他语言的标准库，大多只敢称自己是“开发级（Dev-level）”的替代品。</p>
<p>但 Go 的标准库，是真正意义上的“生产级（Production-ready）”。</p>
<p>以 Go 的 net/http 为例。它不仅仅是能发个请求那么简单，它底层直接内置了工业级的连接池、自动支持 HTTP/2、拥有极其精细的超时控制，并且在骨子里完美契合了 Go 的 Goroutine 并发模型。</p>
<p>在这个世界上，有无数估值数十亿美元的独角兽公司，他们的高并发微服务底层，<strong>没有套 Nginx，没有套 Tomcat 或 Gunicorn，而是直接裸跑在 Go 标准库的 net/http.Server 之上！</strong> 这在其他语言的生态里，简直是不可想象的。</p>
<p>同样，Go 的 crypto 包也不是随便拼凑的开源算法，它是由谷歌著名的密码学家亲自操刀设计和维护的。它被全球安全界公认为是业界最安全、最难被开发者“误用”的密码学实现之一。</p>
<h2>每一次引入第三方库，都是在给系统埋雷</h2>
<p>在现代软件工程中，有一句极其沉重的话：<strong>“依赖即债务”</strong>。</p>
<p>你想要一个香蕉，但开源社区给你的是一只拿着香蕉的大猩猩，以及大猩猩背后的一整片热带雨林。你敲下的每一个 npm install，都在把公司的核心系统暴露给未知的风险。</p>
<p>前几年的 Java Log4j 史诗级漏洞事件，以及三天两头上头条的 NPM 恶意投毒、删库跑路事件（比如著名的 left-pad 事件），给全行业上了血淋淋的一课。当你引入一个计算日期的第三方包时，它可能又间接依赖了 50 个你闻所未闻的子依赖，其中哪怕有一个包的作者被黑客盗了号，你的服务器底裤就被看穿了。</p>
<p>发帖的楼主深刻地探讨了这一点：</p>
<blockquote>
<p>“保持项目没有外部依赖，让维护变得更加容易。开发者经常忘记，向项目中添加一个依赖，就增加了一份审查恶意代码的责任。”</p>
</blockquote>
<p>Go 强大的标准库，为你提供了一道天然的“供应链安全护城河”。</p>
<p>像前面提到的“拉取光伏面板 JSON 并解析”这样的任务，在 Go 中是零外部依赖的。</p>
<p>零外部依赖，就意味着零第三方供应链风险。这种“自给自足”的底气，在如今极度苛求数据安全、合规性审计的企业级开发中，绝对是降维打击般的加分项。</p>
<h2>被忽视的跨平台与 Unicode 魔法</h2>
<p>除了宏观的网络和并发处理，Go 的标准库在极其底层、却又极其折磨人的领域，展现出了极其深厚的内功。</p>
<p>熟悉 C/C++ 的老兵一定懂得，在底层处理多语言编码（locales）和宽字符（wide chars）是一场怎样的噩梦。而 Go 的标准库原生且完美地接纳了 UTF-8。从 strings 包到 unicode/utf8，再到字符串底层极其优雅的字节切片（Byte Slice）设计，让多语言文本处理变得如同呼吸一般自然。</p>
<p>更不用提 Go 那近乎魔法的<strong>跨平台交叉编译</strong>。</p>
<p>Go 的标准库（如 os、path/filepath）对底层操作系统的 API 差异进行了极致的抽象。作为开发者，你可以在一台舒舒服服的 Mac 上写代码，只需加一个环境变量 GOOS=linux，就能瞬间利用标准库编译出一个毫无平台依赖的静态二进制文件，直接扔到 Ubuntu 服务器上完美运行。</p>
<p>这种抽象能力，让一切第三方跨平台打包工具都显得极其多余。</p>
<h2>Go 1 的承诺，十年前的代码今天依然能跑</h2>
<p>最后，Go 的标准库之所以被几百万开发者绝对信任，离不开 Go 团队当年立下的一个近乎严苛的誓言：<strong>Go 1 兼容性保证（Go 1 Compatibility Guarantee）</strong>。</p>
<p>这意味着什么？这意味着你在 2012 年基于 Go 1.0 标准库写下的一段处理 HTTP 的代码，在今天最新的 Go 1.26 编译器下，不仅能一字不改地编译通过，而且运行行为保持绝对一致！</p>
<p>在任何其他语言的开源生态中，很多曾经辉煌一时的第三方霸主库，都会因为作者的精力衰退、兴趣转移或资金断裂，最终走向被废弃（Deprecated）的命运。当你依赖的库停止维护时，你的整个项目组都要被迫进行痛苦的代码大重构。</p>
<p>开源世界充满了不确定性，而 Go 的标准库，背后站着的是谷歌顶级的工程团队，拥有与这门语言同等漫长的寿命周期。</p>
<p>这种确定性的安全感，是任何高星的第三方库都无法给予你的。</p>
<h2>写在最后：最好的工具，就是让你感受不到它的存在</h2>
<p><img src="https://tonybai.com/wp-content/uploads/2026/standard-library-is-part-of-the-go-success-2.png" alt="" /></p>
<p>我们常说，Go 是一门为<strong>“大规模软件工程”</strong>而生的语言。</p>
<p>这种工程基因，不仅仅体现在它的极速编译和极简语法上，更深深地烙印在它那套“霸道”的标准库里。</p>
<p>它逼着你放下对“奇技淫巧”的追求，逼着你放弃花里胡哨的第三方依赖，回归到用最稳固的基石，构建最健壮的系统的正道上来。</p>
<p>当然，Go 的标准库并不完美，比如<a href="https://tonybai.com/2026/03/01/goodbye-google-uuid-go-standard-library-crypto-uuid">千呼万唤始出来的官方 UUID 至今仍让社区望眼欲穿</a>。但在构建现代云原生应用、微服务 API 和数据网关时，它依然交出了一份近乎满分的答卷。</p>
<p>它告诉了所有高级架构师一个硬道理：<strong>最好的工具，是让你感受不到工具存在的工具；最强大的库，是让你根本不用去寻找库的库。</strong></p>
<hr />
<p><strong>今日互动吐槽</strong></p>
<p>你在平时的开发中，被哪个第三方库（依赖地狱）狠狠坑过？或者你觉得 Go 的标准库里，现在最缺哪个核心功能？</p>
<p>欢迎在评论区开喷吐槽！</p>
<hr />
<p><strong>认知跃迁：读懂底层骨架，才能驾驭“降维打击”</strong></p>
<p>很多写了几年 CRUD 的朋友问我：<em>“Tony 老师，既然 Go 的标准库这么牛，那我只要背熟标准库的 API 是不是就能进大厂了？”</em></p>
<p>大错特错。会调 API 只是技工，看懂底层设计才是架构师。</p>
<p>Go 语言“少即是多”的工程美学，其精髓并不在于它提供了什么函数，而在于它是如何用极简的代码，实现千万级并发与跨平台抽象的。比如 net/http 背后那精妙的 Goroutine 调度模型，比如 context 是如何控制全局超时的。</p>
<p>如果你渴望突破技术瓶颈，不再满足于做一个“只会调包的熟练工”，而是想从骨子里吃透 Go 的系统级设计思维——</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》正是为你量身打造。</p>
<p>在这 30+ 讲硬核内容中，我将带你剥开语法糖，深入标准库与并发模型的底层骨架，锻造你编写高可用、生产级微服务的顶级工程实践能力。</p>
<p>目标只有一个：助你完成从“Go 熟练工”到“能做架构决策的 Go 专家”的蜕变！</p>
<p>扫描下方二维码，加入专栏，让我们一起深挖这门语言背后的“降维打击”之力。</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-4.png" alt="" /></p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>硬核测评：哪门语言最受 AI 宠爱？13 种语言横向对比，Go 表现如何？</title>
		<link>https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/</link>
		<comments>https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/#comments</comments>
		<pubDate>Mon, 09 Mar 2026 00:02:44 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AIAgent]]></category>
		<category><![CDATA[AIProgramming]]></category>
		<category><![CDATA[AI智能体]]></category>
		<category><![CDATA[AI编程]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[BorrowChecker]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[ClaudeCode]]></category>
		<category><![CDATA[CodeGeneration]]></category>
		<category><![CDATA[CompilationSpeed]]></category>
		<category><![CDATA[DeveloperExperience]]></category>
		<category><![CDATA[DynamicLanguages]]></category>
		<category><![CDATA[FunctionalLanguages]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[InferenceCost]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[mini-git]]></category>
		<category><![CDATA[Ocaml]]></category>
		<category><![CDATA[PerformanceReview]]></category>
		<category><![CDATA[ProgrammingLanguages]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[StaticLanguages]]></category>
		<category><![CDATA[TypeChecking]]></category>
		<category><![CDATA[代码生成]]></category>
		<category><![CDATA[借用检查器]]></category>
		<category><![CDATA[函数式语言]]></category>
		<category><![CDATA[动态语言]]></category>
		<category><![CDATA[基准测试]]></category>
		<category><![CDATA[开发者体验]]></category>
		<category><![CDATA[性能测评]]></category>
		<category><![CDATA[推理成本]]></category>
		<category><![CDATA[类型检查]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[编译速度]]></category>
		<category><![CDATA[静态语言]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6010</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance 大家好，我是Tony Bai。 随着 Claude Code、Gemini Cli、Codex 等 AI 编程工具的全面普及，“让 AI 写代码”已经从极客的玩具变成了日常的生产力。随之而来的是一个触及灵魂的问题：哪种编程语言最适合交给 AI 去写？ 作为 Gopher，我们一直为 Go 语言的“极简语法”、“极速编译”和“强类型安全”感到自豪。我们理所当然地认为，这种没有任何隐式魔法、像白开水一样的语言，绝对是 LLM 的最爱。 然而，现实总是比直觉更骨感。近日，Ruby 核心提交者 Yusuke Endoh（@mame）发布了一份名为 ai-coding-lang-bench 的硬核定量测评报告。他使用 Claude Code（Opus 4.6 模型）对 13 种主流编程语言进行了系统性横向对比。 在这场涵盖了动态语言、静态语言和函数式语言的混战中，Go 语言的表现究竟如何？ 是力压群雄，还是黯然失色？那些备受人类推崇的静态类型系统，在 AI 面前是否成了累赘？ 本文和大家一起阅读和拆解这份报告，为你揭晓 AI 时代的语言偏好图谱。 实验设计：让 AI 写一个 Mini-Git 在评价这份报告之前，我们先来看看它的实验设计，这是目前业内少见的、针对 AI Agent 的工程化能力的量化评估。 任务目标：让 Claude Code (Opus 4.6) [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/hardcore-review-13-languages-ai-favorite-go-performance-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance">本文永久链接</a> &#8211; https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance</p>
<p>大家好，我是Tony Bai。</p>
<p>随着 <a href="http://gk.link/a/12EPd">Claude Code</a>、<a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIyNzM0MDk0Mg==&amp;action=getalbum&amp;album_id=4067128336651386882#wechat_redirect">Gemini Cli</a>、Codex 等 AI 编程工具的全面普及，“让 AI 写代码”已经从极客的玩具变成了日常的生产力。随之而来的是一个触及灵魂的问题：<strong>哪种编程语言最适合交给 AI 去写？</strong></p>
<p>作为 Gopher，我们一直为 Go 语言的“极简语法”、“极速编译”和“强类型安全”感到自豪。我们理所当然地认为，这种没有任何隐式魔法、像白开水一样的语言，绝对是 LLM 的最爱。</p>
<p>然而，现实总是比直觉更骨感。近日，Ruby 核心提交者 Yusuke Endoh（@mame）发布了<a href="https://github.com/mame/ai-coding-lang-bench">一份名为 ai-coding-lang-bench 的硬核定量测评报告</a>。他使用 Claude Code（Opus 4.6 模型）对 13 种主流编程语言进行了系统性横向对比。</p>
<p>在这场涵盖了动态语言、静态语言和函数式语言的混战中，<strong>Go 语言的表现究竟如何？</strong> 是力压群雄，还是黯然失色？那些备受人类推崇的静态类型系统，在 AI 面前是否成了累赘？</p>
<p>本文和大家一起阅读和拆解这份报告，为你揭晓 AI 时代的语言偏好图谱。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>实验设计：让 AI 写一个 Mini-Git</h2>
<p>在评价这份报告之前，我们先来看看它的实验设计，这是目前业内少见的、针对 AI Agent 的工程化能力的量化评估。</p>
<p><strong>任务目标</strong>：让 Claude Code (Opus 4.6) 从零开始实现一个 mini-git（简化版的 Git）。这是一个极具代表性的任务，它包含了文件 I/O、哈希计算、数据结构操作以及命令行接口，足以考验模型对语言生态的综合运用能力。</p>
<p>测试被巧妙地分为两个阶段，模拟了真实的软件生命周期：</p>
<ul>
<li>v1 (新项目构建)：实现基础的 init, add, commit 和 log。</li>
<li>v2 (特性扩展)：在 v1 的基础上，增加 status, diff, checkout, reset, rm, show 等复杂指令。</li>
</ul>
<p><strong>提示词（Prompt）极其极简</strong>：“阅读 SPEC-v1.txt，实现它，并确保 test-v1.sh 测试通过。”这种设计最大程度地减少了人类指令的干预，纯粹考验 AI 代理在闭环环境下的自主编码、调试和测试能力。</p>
<p><strong>参赛选手（13种语言/15种配置）</strong>：</p>
<ul>
<li>动态语言：Python, Ruby, JavaScript, Perl, Lua</li>
<li>动态+类型检查器：Python/mypy, Ruby/Steep</li>
<li>静态语言：TypeScript, Go, Rust, C, Java</li>
<li>函数式语言：Scheme (动态), OCaml (静态), Haskell (静态)</li>
</ul>
<p>每种语言配置运行 <strong>20 次</strong>，以消除 LLM 生成的随机性带来的误差，并统计其耗时（Time）、成本（Cost，即 Token 消耗）和代码行数（LOC）。</p>
<h2>核心发现：动态语言逆袭，Go 位居第二梯队</h2>
<p>如果仅看总耗时和总成本（v1 + v2），测试结果呈现出了令人瞩目的阶梯式分布。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/hardcore-review-13-languages-ai-favorite-go-performance-2.png" alt="" /></p>
<h3>第一梯队：Ruby, Python, JavaScript 的绝对统治</h3>
<p>在这场 AI 编程竞速中，Ruby（73.1s）、Python（74.6s）和 JavaScript（81.1s）组成了无可争议的第一阵营。</p>
<p>它们不仅生成速度最快、消耗 API 成本最低（均在 $0.40 以下），而且在 20 次测试中表现出了极高的稳定性（标准差极小）。</p>
<p>对于 AI 来说，生成这三种语言的代码就像呼吸一样自然。它们无需繁琐的项目初始化配置（如 Cargo.toml 或 package.json），可以做到“建个文件直接跑”，这种极简的工作流在 v1 阶段（新项目构建）优势极大。</p>
<h3>第二梯队：被“强类型”拖慢脚步的 Go 与 Java</h3>
<p>现在，来回答大家最关心的问题：Go 表现如何？</p>
<p>答案是：位居第二梯队。Go 的总耗时为 101.6s，平均成本 $0.50。中规中矩。Go 虽然在语法上非常克制，但依然落后于 Python 和 JS 等动态语言。与之类似，Java（115.4s）也因为繁琐的语法结构和强类型约束，留在了这一梯队。</p>
<p>尽管如此，Go 在整个 20 次测试中没有出现一次失败（0 次 fail），这证明了 <a href="https://tonybai.com/2026/01/04/stop-lying-to-the-compiler">Go 的编译器在防止 AI 产生“幻觉 Bug”方面，发挥了极其可靠的安全网作用</a>。</p>
<h3>“后进生”阵营：Rust 与 C 的挣扎</h3>
<p>备受人类极客推崇的 Rust（113.7s，且有 2 次失败）和底层的 C（155.8s）在测试中显得步履维艰。</p>
<p>尤为值得注意的是，在总共 600 次的独立运行中，只有 Rust (2次) 和 Haskell (1次) 出现了测试失败（未能最终跑通 Shell 脚本）的情况。这两门语言都以其极高的心智负担和“编译器教你做人”的严格程度而闻名。</p>
<p>这也是将Rust列入“后进生”阵营的主要原因。如果用《飞驰人生》的拉力赛来比喻，Rust 相当于在40站的赛季中，有两站没能完赛！</p>
<h2>深度剖析：为什么 AI 更偏爱动态语言？</h2>
<p>在传统的工程视角中，“静态类型防止低级 Bug”、“动态语言难以维护”是金科玉律。但在 LLM 驱动的 Agent 开发流中，这个逻辑为何失效了？作者 Yusuke Endoh 提出了几个关键的解释维度。</p>
<h3>训练数据的“虹吸效应”</h3>
<p>LLM 的能力直接取决于训练语料的规模和质量。Python、JavaScript 和 Ruby 是过去十几年 Web 开发的绝对主流。GitHub 上海量的这三种语言的开源代码、StackOverflow 上的问答，为 Claude Code 提供了极其丰富的“预训练肌肉记忆”。</p>
<p>当 AI 需要实现一个功能时，它在 Python 的隐空间（Latent Space）中寻找最优解的路径，远比在 Haskell 甚至 Rust 中要清晰、笔直得多。</p>
<h3>静态类型的“双刃剑”与重构阻力</h3>
<p>静态类型系统的初衷是约束人类，防止我们在重构时犯错。但在 AI 的“ Prompt -> 生成 -> 测试报错 -> 思考 -> 再生成”的迭代循环中，严格的类型检查反而成了巨大的“摩擦力”。</p>
<ul>
<li>编译成本与调试死锁：在 Rust 或 C 中，当 AI 生成的代码出现类型不匹配时，它需要花费大量的 Token 去阅读复杂的编译器报错信息。有时，为了解决一个简单的借用检查器（Borrow Checker）报错，AI 可能会陷入漫长的、无休止的“试错-编译失败”死循环。</li>
<li>重构牵一发而动全身：在 v2 特性扩展阶段，往往需要修改现有的数据结构。对于 Python，AI 只需要在字典里加个 key；而对于 Rust 或 Java，这可能意味着需要重构一系列的 Struct、更新类型签名、甚至修改与之相关的无数个函数的参数声明。这种“爆炸半径”极大地增加了耗时。</li>
</ul>
<h3>“附加类型检查”的巨大损耗</h3>
<p>报告中一个非常有意思的对照组是：原生动态语言 vs 附加类型检查器的动态语言。</p>
<ul>
<li>Python (74.6s) vs Python/mypy (125.3s) —— 变慢了 1.6~1.7 倍。</li>
<li>Ruby (73.1s) vs Ruby/Steep (186.6s) —— 变慢了 2.0~3.2 倍！</li>
</ul>
<p>这证明了，迫使 AI 在动态语言中编写严谨的类型注解（Type Annotations），是一项极其昂贵的任务。模型需要耗费额外的算力去推导类型、生成类型声明文件，并且在类型检查器报错时，还要去修复那些在纯动态模式下可能根本不影响运行的“伪 Bug”。</p>
<h3>代码量（LOC）的迷思：越短越好吗？</h3>
<p>我们通常认为，写得越少，跑得越快。但数据打破了这个迷思。</p>
<p>Haskell 和 OCaml 生成的最终代码行数（224行和 216行）是所有语言中最少的，甚至少于 Python 和 Ruby。然而，它们在生成时间上的表现却排在倒数（Haskell 耗时最长，达 174s）。</p>
<p>这表明，对于 AI 来说，函数式语言那种高度抽象、信息密度极大的代码，生成和推理的成本远高于像 Python、Go 那种稍微啰嗦但逻辑平铺直叙的“大白话”代码。浓缩的未必是精华，对于 LLM 来说，高度浓缩往往意味着更高的生成熵和更高的试错概率。</p>
<h2>行业启示：我们需要重新思考 AI 时代的技术栈选型</h2>
<p>面对这份详实的基准测试报告，无论你是 CTO 还是普通开发者，都必须开始重新审视未来的技术选型逻辑。</p>
<h3>动态语言是快速原型的“绝对王者”</h3>
<p>如果你正在启动一个新项目，或者需要用 AI Agent 快速验证一个业务流程，Python 和 TypeScript 是首选（报告中 JavaScript 表现优于 TS，但在实际工程中 TS 的综合权衡更佳）。</p>
<p>不要迷信“大型项目必须一开始就上强类型编译语言”。在需求快速变化的初期，让 AI 用动态语言狂飙突进，是获取业务反馈最高效的手段。</p>
<h3>性能王者们的困境：Go 与 Rust 在 AI 时代掉队了吗？</h3>
<p>看到测评数据，很多 Gopher 可能会感到失落：难道注重工程严谨性和系统级性能的静态语言，真的在 AI 时代掉队了吗？</p>
<p>结论并非如此悲观。我们需要明确一点：Agent 测评的速度，不等于软件最终运行的速度。</p>
<ul>
<li>业务试错 vs 基础设施：AI Agent 目前最擅长、也最快速能完成的，是写“胶水逻辑”和“业务 CRUD”。在这些领域，Python 确实快。但当你的系统涉及到高并发、内存精细控制、或者需要打包为轻量级容器部署时，人类依然需要 Go。</li>
<li>容错的底线：在这场 600 次的庞大测试中，只有 Rust 和 Haskell 出现了最终测试失败，而 Go 保持了完美的 100% 成功率。这恰恰说明，Go 在“极度灵活（易幻觉）”与“极度严格（难生成）”之间，找到了一个非常微妙的平衡点。它可能不是 AI 写得最快的，但它一定是 AI 写出来最让人放心的系统级语言。</li>
</ul>
<p>我们不应期待 AI Agent 能够像写 Python 脚本一样，如德芙般丝滑地生成出一个复杂的 Go 并发系统。但在 AI 给出的初稿之上，Go 语言极佳的可读性和统一的规范，将为人类工程师的最终审查（Code Review）节省巨大的精力。</p>
<h2>小结：下一个十年的编程语言，长什么样？</h2>
<p>ai-coding-lang-bench 给我们上了生动的一课。它揭示了当前 LLM 的偏好：<strong>它们喜欢有海量训练数据的、灵活的、不需要应对死板编译器的语言。</strong></p>
<p>但我们必须认识到，这只是一份基于 2026 年初模型（Claude Opus 4.6）的快照。未来的 AI 编程语言形态，可能会朝着两个方向演进：</p>
<ol>
<li>AI Native 语言的诞生：抛弃目前设计给人类阅读的语法，出现一种专门为了降低 LLM 生成 Token 成本、且天然抗幻觉的机器中间语言。</li>
<li>现有静态语言的“Agent 友好化”编译模式：Go 和 Rust 可能会进化出一种特殊的编译模式。在这个模式下，编译器不仅是冷冰冰地报错，还能以结构化的、对 LLM 更友好的方式提供“修复建议”，从而大幅缩短 Agent 修复编译错误的反馈回路。</li>
</ol>
<p>无论如何，浪潮已经来临。在 AI 主导代码生成的新时代，我们评价一门编程语言的标准，正在从“它对人类大脑是否友好”，悄然转变为<strong>“它对大模型推理是否友好”</strong>。</p>
<p>而在这场新赛道上，动态语言们，已经抢跑了。</p>
<p>本文核心数据与图表均来源于 GitHub 项目 <a href="https://github.com/mame/ai-coding-lang-bench">mame/ai-coding-lang-bench</a>。</p>
<hr />
<p><strong>你的 AI 编程初体验</strong></p>
<p>看完这个排名，你是感到意外，还是早已感同身受？在你日常使用 AI 编程时，你觉得它写哪种语言最让你省心？你是否也曾为了修一个 AI 写的编译错误而陷入“死循环”？</p>
<p>欢迎在评论区分享你的“AI 协作”红黑榜！</p>
<hr />
<p>“语言的严格性正在变成 AI 的摩擦力？在 AI 时代，掌握一套能驱动 Agent 自动化、自修复的‘工作流’比死磕语法更重要。我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将教你如何利用 Claude Code 结合 Spec 驱动开发，构建真正高产出的‘软件工厂’。”</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
