T
traeai
登录
返回首页
The JetBrains Blog

Why Zig Isn’t 1.0 (Yet)

7.1Score
Why Zig Isn’t 1.0 (Yet)

TL;DR · AI 摘要

Why Zig Isn’t 1.0 Yet The JetBrains Blog Company Follow - Follow: - X X - Facebook Facebook - Linkedin Linkedin - Instag...

核心要点

  • 主题聚焦:Why Zig Isn’t 1.0 Yet
  • 来源:The JetBrains Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#云计算#产品
打开原文

为什么 Zig 还不是 1.0(目前还不是)

公司

关注

  • 关注:
  • X X
  • Facebook Facebook
  • Linkedin Linkedin
  • Instagram Instagram
  • Youtube Youtube
  • RSS RSS
  • Tiktok Tiktok

访问 jetbrains.com

社区

开发者认可

生态系统

访谈

语言设计

语言

为什么 Zig 还不是 1.0(目前还不是)

James Hilton

大多数编程语言都遵循一个熟悉的轨迹:早期的实验性发布、快速迭代,然后在某个时刻,发布一个 1.0 版本,标志着稳定性和被广泛采用的潜力。

Zig 并没有遵循这条常见的道路。原因可能是什么呢?

Andrew Kelley 在 2018 年辞去了工作,开始构建一种编程语言。八年之后,Zig 已经被用于 Ghostty、TigerBeetle 和 Uber 的跨编译。它在 Stack Overflow 上被评为最受推崇的前五语言之一。但唯一缺少的一样东西就是 1.0 版本。对许多工程师来说,这引发了一个显而易见的问题:“为什么这么久还没发布?”更重要的是:“这是否值得担忧?”

在最近与 JetBrains 的一次对话中,Zig 的创建者 Andrew Kelley 直接回答了这些问题。而答案可能会让你感到惊讶!

🎥 点击这里观看完整的采访 → https://jb.gg/andrew-kelley-zig-interview

Andrew Kelley 在阿姆斯特丹 JetBrains 办公室进行采访拍摄时的照片

一个熟悉的里程碑,却有着不熟悉的定义

在大多数生态系统中,1.0 版本意味着明确的稳定性、成熟度和对向后兼容性的承诺。这是许多团队在生产环境中采用某种技术前所等待的信号。

但正如 Kelley 所指出的,这个定义可能并不像表面看起来那样清晰。本质上,一个 1.0 版本只是一个承诺——保证未来的更改不会破坏现有代码。除此之外,它对语言是否真正准备好长期使用几乎没说什么。

不同的语言对这个里程碑有着截然不同的解读。一些语言在早期就锁定了一些特性,此后避免进行重大更改。另一些语言则发布了 1.0 版本,但继续在幕后快速演进。版本号保持不变,但语言本身却在不断变化。

Zig 选择了完全不同的道路。

故意不发布

Kelley 的观点中特别突出的一点是,Zig 缺少 1.0 版本并不是疏忽或延迟,而是一个有意识的选择。

与其急于宣布稳定性,这个项目更注重于在锁定特性之前,确保基础部分的正确性。

当你了解 Zig 是如何构建和维护的时,这个决定就更容易理解了。与许多现代语言生态系统不同,Zig 并没有受到风险投资的资助,也不是由企业的时间表驱动的。它由一个小型独立团队在非营利基金会下开发,主要依靠个人捐赠者支持。

这种结构消除了开发者常见的压力来源。

没有需要达到增长目标的压力,没有为了表面效果而发布里程碑版本的必要,也没有外部力量推动项目提前定义“完成”。其结果是一个可以耐心等待的开发过程,甚至在某些情况下,可以故意放慢节奏。

但这种耐心自然伴随着权衡。

Vitaly Bragilevsky 和 Andrew Kelley 在采访拍摄时的照片

毫无疑问,1.0版本的发布将加速Zig的采用。许多公司和开发者将这个标签视为一个关键信号或信任的同义词。

Kelley公开承认了这一点。当Zig最终达到1.0版本时,采用率很可能会大幅上升。

然而,该项目仍然优先考虑长期设计,而非短期增长。

这种紧张关系——在采用率和对细节的关注之间——正是Zig的方法变得特别有趣的地方。与其问“我们能多快达到1.0?”,该项目提出的是一个不同的问题:

“如果我们今天发布它,我们会后悔锁定哪些内容?”

这种非传统但令人耳目一新的表述将目标从速度转移到了持久性上。

对进步的不同哲学

从更宏观的角度来看,这种方法不仅仅是关于版本号——它反映了贯穿Zig设计的更广泛的哲学。

在一些生态系统中,人们推崇“快速发布,之后再修复”的理念,而Zig则试图找到一个中间地带,使其能够在最小复杂度的情况下提供强大的功能,而不积累长期的设计债务。

Kelley将这种方法描述为“以更少实现更多”,这意味着在简单性中寻找杠杆,而不是通过添加功能或抽象层来实现。

这种哲学超越了语言本身。它影响了工具、依赖项,甚至社区流程的决策。核心主题是保持一致性:现在避免不必要的复杂性,这样你就永远不需要去支持它。

从这个角度来看,Zig在达到1.0版本上的延迟并不是犹豫——而是克制。

重新思考“准备就绪”的含义

所有这些都引发了一个更广泛的问题,这不仅限于Zig:技术真正“准备就绪”到底意味着什么?

如果1.0只是一个兼容性承诺,它是否是值得依赖的信号?或者它已经成为某种更微妙事物的代理,比如信任、生态系统成熟度或长期稳定性?

Zig的方法挑战了这个问题背后的基本前提。它表明,准备就绪可能不是一个单一的里程碑,而是通过一系列有意识的决定,决定哪些内容不应过早确定。

这种方法最终是加速还是限制采用,仍有待观察。

从左到右:Vitaly Bragilevsky(主持人)、Andrew Kelley(嘉宾)和Oxana Mazurchak(项目负责人和节目制作人)

观看完整对话

尽管所有这些都很有趣,但这只是更广泛讨论中的一条线索。在完整的采访中,Andrew Kelley深入探讨了从Zig相对于C和Rust的定位,到其对AI生成贡献的立场,再到未来十年编程可能的面貌等话题。

如果你对系统编程——以及更广泛的编程语言设计——可能的发展方向感兴趣,那么这非常值得一观。立即观看完整视频!

AndrewKelley

clanguage

github

opensource

programming

Rust

systems programming

Zig

zigLang

  • 分享
  • Facebook
  • Twitter
  • LinkedIn

上一篇

介绍Cloud9 JetStream主题用于JetBrains IDEs

AI 可能会生成不准确的信息,请核实重要内容

Why Zig Isn’t 1.0 (Yet) | The JetBrains Blog | traeai