Skip to content

前言

⚠️ 警告

Zig 这门语言并不适合计算机初学者,如果你已经对计算机有了基础的了解,并且能够较为熟练的掌握一门高级编程语言,我才推荐你来学习它。

确保你的 zig 版本是最新的 release 版本,再进行学习!

有过多营销号说 zig 已经是 C 的替代品了,这是完全不正确的。将来或许会是,但现在肯定不是,目前 zig 只是一个有那么一丁点热度的高级语言。

你可能会疑惑,为什么要再学习一门如此 low level 的语言, C 难道不好吗?

C 很好,非常好,它非常成功,以至于 C 现在已经不再是一门语言,而是一个标准。 你可能会注意到,现在跨语言调用,基本都是遵循的C ABI,包括编译出来的各种库供其他语言使用,也都是 C 可以使用的动态链接库。

但由于历史原因,C 到现在已经处于一种较为割裂的存在,它本身有着一套自己的标准,但是不同的编译器却有着不同的“专属语法”,也就是不同编译器支持的语法实际上是 C 的超集!同时 C 本身没有一个属于自己的包管理器,各式各样的第三方包管理器。。。五花八门,像meson、cmake、xmake、vcpkg,而且均有上手难度。

历史上有不少语言都自诩是 C 的替代品,像Odin、Ada、Modula-2、Go,他们在某种程度上都算是失败了,当然 Zig 的未来也可能是这样子,成为一个不是C的替代品,单独的一门语言,或许有人使用。但就现在来看,我认为 Zig 还是很有希望成为 C 的代替品的,目前的语法均是围绕着语义明确化,减少隐式的执行,更高效的错误跟踪。

或许可能有人会跟我说 Rust 比 Zig 好,我要说的是你说的基本是对的,目前情况来看,Rust 的的确确比 Zig 好很多,更为完善的生态,更多能拿得出手的代表项目,以及相较 Zig 庞大很多的社区等等,但是在未来谁说的准呢? 更何况 Rust 和 Zig 并不是一个赛道上的东西,在我看来,Rust 的目标是 C++ 的替代, 因此我更愿意称之为“披着高抽象皮的 low level 语言”,Zig 的目标则是 C,而且目前 Zig 的特性也的确在这个方向发展。

Zig 的社区需要更多的人来构建,所以我写了这个文档,帮助新人来更好的理解和学习 Zig!