17611538698
info@21cto.com

Zig 的创始人:我对软件的标准是“毫不妥协的完美”

技术人生 0 15 23小时前
图片

导读:Andrew Kelley 在采访中将按月付费使用云端 AI 编码描述为“一种极其疯狂的提议”。

Zig 编程语言的发明者兼终身仁慈独裁者 Andrew Kelley 最近接受了工具供应商 JetBrains 的 Rust 生态系统负责人 Vitaly Bragilevsky 的采访。 

这是再提一下Zig,Zig 是一种通用编程语言,其目标是达到与 C 语言相同的性能。

正如 Kelley 所说,它“更少出现致命错误”。

Zig 是一种小众语言,在最新的 RedMonk 编程语言排名中位列第 82 位,但深受用户喜爱;去年 Stack Overflow 的调查显示,Zig 是第四大最受推崇的语言,这里的“受推崇”指的是那些希望继续使用 Zig 的开发者。

我们发现这次采访内容不够连贯,可能是因为剪辑方式的原因,尽管如此,它还是触及了开发者如今面临的许多关键问题,包括人工智能、GitHub 的可靠性问题以及编程语言的选择。

Kelley还访谈解释了他为何选择创建 Zig。
尽管现在已经存在 C、C++、Rust 和 Go 等其他语言。他说,他最初的目标是开发一个数字音频工作站。他尝试过 Go,但发现它与 C 库的互操作性很差,而且垃圾回收机制会导致音频延迟。他尝试过 C++,或者使用 C++ 编译器编写 C 风格的代码,但发现即使是小错误也会导致内存损坏等 bug,需要花费数周时间才能修复。他还尝试过 Rust,但“编写符合 Rust 规则的代码非常困难”,并且花了一个月的时间才让字体渲染正常工作。
Kelley的解决方案是另辟蹊径,那便是创造一种新的编程语言。他说,Zig“在保留C语言所有强大功能的同时,还改进了C语言的缺陷和不足。”

据我们所知,Zig的数字音频项目仍处于早期阶段

Zig 项目以其不依赖人工智能的政策而闻名,该政策已明确写入其行为准则Kelley解释说,原因是人工智能的贡献“总是垃圾”,而且会占用代码审查时间,而团队认为这些时间应该更好地用于人类的贡献。然而,他对人工智能的看法远比这些最初的言论所暗示的要复杂得多。

他反对人工智能的原因之一是它无法被“教导”,而团队却重视指导贡献者,以便他们日后能够成为更优秀的贡献者,甚至成为核心团队的一员。 

人工智能工具的另一个缺点是其非确定性,因此其输出始终需要审核,即使是像重构函数名称这样简单的操作也不例外。Kelley更喜欢他可以完全信赖的确定性工具。

关于“vibe coding”(将所有编码工作委托给人工智能),Kelley表示这很有趣,但他不想使用“由四家公司控制”的技术。他还说:“我不会放弃使用自己的电脑和电力,转而通过网络在别人的电脑上使用闭源程序,还要每月付费。对我来说,这简直就是疯了。”

“我总是听到人们说人工智能代码运行得出奇地好。但对我来说,这并不是我衡量软件的标准。我对软件的标准是毫不妥协的完美。”

他这种完美主义的态度也体现在 Zig 的发展历程中。

Zig 历经 11 年,终于发布了 0.16 版本,而每次发布都伴随着重大的破坏性变更。“当我们发布 1.0 版本时,那将是一个真正倾注了全部心血、毫不妥协的杰作,”他说道。

他还表示,正式版将保证向后兼容性,而在预发布版本中,团队可以不受此限制地继续改进语言。他的目标是打造一种能够服务未来 50 年的程序设计语言。

关于Zig 为什么从 GitHub 迁移,Kelley 解释说:“GitHub 对我们来说已经不再适用。我们来这里是为了编写软件。如果我们的持续集成服务器不好用,就需要找到一个合适的。”

Zig 已经迁移到了 Codeberg,Kelley 表示 Codeberg “本质上是 GitHub 的一个克隆版本,所以过渡非常容易。” 

Kelley 称很喜欢 Codeberg,这是一家德国非营利组织,他的理由是“我认为非营利组织比初创公司或企业更稳定。” 

Zig 本身由 Zig 软件基金会资助,该基金会是一家美国 501非营利组织。

Zig 存在一个争议点是三年前的一个决定,即“从 Zig 项目中彻底移除 LLVM、Clang 和 LLD 库”,尽管 Clang 编译器仍将保留。Kelley 表示:“你肯定希望避免核心产品依赖其他库。我们对 LLVM 犯了个错误,所以我们正在努力纠正这个错误。”

如果 JetBrains 希望获得对其工具的认可,那它恐怕要失望了。“我从没用过 JetBrains 的产品,因为它是闭源的,”Kelley 说。他表示,自己使用终端和 Vim(Vi 的改进版)进行编程。 

我们尚未了解 Zig 1.0 的确切发布时间。不过,根据其小组发布说明,“0.17.0 的发布周期将会很短。”

作者:洛逸

参考:

https://www.youtube.com/watch?v=iqddnwKF8HQ

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信