前言
⚠️ 警告
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 目前拥有更完善的生态、更多成熟的项目以及更庞大的社区。但两者的设计目标有所不同:Rust 侧重于通过所有权系统提供编译期的内存安全保证,更多是作为 C++ 的现代替代方案;而 Zig 则追求极致的简洁性和可控性,目标是成为 C 的现代替代方案。两者各有优势,适用于不同的场景。
Zig 的社区需要更多的人来构建,所以我写了这个文档,帮助新人来更好的理解和学习 Zig!
