21CTO导读:独立自主的Zig语言是如何创建的,它的作者是个什么样的人?本文一看究竟。
你是否曾对手头的编程工具感到深深的窒息?在追求极致性能和底层控制力时,总是被各种莫名其妙的障碍死死卡住?
绝大多数程序员会选择妥协、忍受,或者在技术论坛上吐槽几句。但 Andrew Kelley——Zig 编程语言的创造者兼“终身仁慈独裁者(BDFL)”,选择了最疯狂的一种解法:
既然你们都这么难用,那我就自己从零造一个!
经过 11 年的打磨,Zig 已经成长为当今系统编程领域最受瞩目的“黑马”。它背后没有大厂的资本裹挟,没有浮躁的快速迭代,只有一场关于追求极致、拒绝妥协的硬核长跑。
Andrew Kelley 打造 Zig 的起因非常具体:他当时只想写一个数字音频工作站(DAW)。
作为一个对实时性和性能有极高要求的系统项目,他挨个尝试了市面上的主流编程语言,结果被全盘“劝退”:
JavaScript:抽象层级太高,根本无法榨干计算机的底层硬件潜能;
Go 语言:与 C 语言库的互操作性极其恶劣,况且垃圾回收(GC)带来的随机卡顿,对实时音频来说完全是致命灾难;
Rust:严格的所有权系统和复杂的借用检查,让他尝试修改一点微小代码时就会引发连锁编译报错,开发效率极度低下;
C++:虽然性能过关,但极其容易犯错,一个打字失误导致的内存损坏,常常要花上好几个星期去排查。
当撞了一头包之后,Kelley 深刻意识到:问题不在于自己的技术,而在于工具本身。
一个狂妄却又极其笃定的念头在他脑海中升起:
“我可以做得更好。我可以比 C++ 更好,比 Rust 更好,比 Go 更好,也比 JavaScript 更好!”
Zig 语言,便由此诞生。
Zig 的核心灵魂只有一条:绝不向劣质的用户体验妥协。
在传统开发者的思维里,我们习惯于思考:“用我现有的工具链,能做到什么程度?”
但在 Zig 的哲学里,这种思维必须被彻底颠覆为:“硬件和计算机本质上能做到什么?我如何利用任何可能的工具链(甚至自己亲手打造一个),去把计算机的每一分潜力彻底榨干?”
这种对性能、内存布局和控制力的极端偏执,促成了 Zig 杀手级的优势——完全独立且极致优雅的工具链。
没有复杂的交叉编译噩梦:Zig 的工具链完全脱离了系统组件依赖。无论你在什么操作系统上,想要参与一个 Zig 项目的构建,贡献指南永远只有极简的一行命令:
zig build跨界降维打击:连 Uber 都开始采用 Zig 的工具链(zig cc)来交叉编译其 Go 语言代码,以此完美解决了 Go 语言在处理 C 代码交叉编译时的沉疴旧疾。
虽然 Zig 开发了 11 年依然没有发布 1.0 版本,但它早就凭实力打服了一众硬核工程团队:
| 项目 / 企业 | 应用场景与核心优势 |
| Bun | 当红的超高速 JavaScript 运行时,底层大量的关键“胶水代码”全部由 Zig 打造。 |
| TigerBeetle | 极速金融交易数据库。它使用 Zig 实现了全内存预分配,后续绝不进行任何动态分配,从而获得了极度稳定且可预测的超低延迟。 |
| Ghostty | 由 Mitchell Hashimoto 开发的高性能终端模拟器,展现了 Zig 在现代桌面系统级软件上的惊人表现力。 |
| Uber | 利用 Zig 强大的跨平台 C 编译器能力,为其基础设施提供无缝编译支持。 |
在如今这个快餐式开发、VC 驱动、AI 漫天飞的时代,Zig 的发展路径可以说是一场对当今技术圈生态的“全面反叛”。
Zig 由美国的 Zig 软件基金会(501(c)(3) 非营利组织)运营,这与商业联盟性质的 Rust 基金会有着本质区别。
整个团队极其精干:仅有 Andrew Kelley 1 名全职雇员和 5 名核心合约开发者。2024 年约 67 万美元的收入全数来自个人与企业捐赠,超 90% 直接发给开发者作为薪水,Kelley 本人的年薪仅相当于纽约高级工程师的中位数。
这种纯粹的财务独立,给了 Kelley 极大的底气:
“我可以坦然地对任何赞助商说:‘抱歉,我们不会按你的意思改。如果你撤资,我们也照样能活。’”
因为嫌弃 GitHub 的持续集成(CI)服务器越来越难用,团队毫不犹豫地将主代码库直接迁到了德国非营利平台 Codeberg。
同时,为了防止命运被他人绑架,Zig 正在彻底剥离对 LLVM 编译器后端的依赖,自研专属后端。目前已实现增量编译,将百万行代码库的更新重新编译时间缩短到了 50 毫秒以内!
Zig 社区有一条名声在外的高压线:严禁任何 AI 生成的代码贡献。
Kelley 的理由直接而犀利:
浪费生命:AI 提交的代码大多是没有任何价值的“平庸垃圾”,严重消耗核心团队宝贵的 Code Review 时间;
破坏开源精神:开源社区的核心是“导师制(Mentorship)”,即通过审查帮助人类开发者成长;而 AI 根本“无法被教导”;
确定性信仰:对于追求“毫不妥协的完美”的系统软件来说,非确定性的 AI 概率逻辑本身就是一种风险。
有趣的是,Zig 采用极其宽松的 MIT 协议,完全不介意 AI 巨头拿 Zig 的代码去训练大模型——“这是我们给世界的无条件礼物,证明了我们的价值。”)
那么,在系统级编程语言的角斗场上,Zig 到底处于什么位置?
Go 语言试图替代 C,但它放弃了底层的绝对掌控力;而 Zig 继承了 C 的全部能力,却修复了 C 的致命基因缺陷:
更安全的语义:提供段错误时的完整栈追踪;
精细化控制:C 语言固化了整数溢出行为,而 Zig 允许开发者自主选择溢出语义(是回绕还是直接报错);
无缝迁移:C 程序员转向 Zig 没有任何思维断层,上手就能获得大幅减少 bug 的爽快感。
类型系统:Rust 依靠庞大复杂的类型论和 Trait 特征系统来强制保证内存安全;Zig 则极其简洁,强调代码的绝对直观与可读性。
内存哲学:Rust 引导开发者走向 RAII 和所有权机制;Zig 则将分配器(Allocator)显式化,鼓励开发者根据场景选择具体的分配策略(如 Arena 区域分配)。
思维差异:在 Rust 里,你在竭力满足编译器和借用检查器的规则;而在 Zig 里,你是在直接指挥 CPU 应该如何工作。
当被问及为什么 11 年了还没发布 1.0 时,Kelley 的回答透露出一种罕见的长远眼光:
1.0 意味着绝对向后兼容的严肃承诺。他绝不接受“先快速发布,事后再修修补补”的快餐文化。
“我的目标,是打造一种能稳定服务未来 50 年的语言。”
在所有人都在追逐 AI 替代人类写代码、用巨头闭源工具速成的当下,Andrew Kelley 和他的 Zig 就像是一个孤独而执着的守夜人。
他坚信:人类永远不会停止亲手敲下代码的乐趣。最好的软件,永远来自于那些尊重用户、把用户当成计算机真正的“老板”的匠人精神。
对于所有开发者而言,无论你最终是否使用 Zig,它的存在都像是一声警钟:
我们对软件的期待,究竟是满足于“居然奇迹般地没有报错”,还是追求那种“可预测的、扎扎实实的卓越”?
Zig 坚定地选择了后者。
你在日常开发中,曾被哪门语言的“历史包袱”或“规则陷阱”坑得最惨?
你看好 Zig 这种“去 AI 化、去资本化”的极客长跑模式吗?
欢迎在评论区留下你的硬核观点哦!~
作者:场长
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。