---
outline: deep
showVersion: false
---

# 前言

::: warning ⚠️ 警告

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

:::

实在是太多营销号视频无脑说 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！

:::warning ⚠️ 警告
确保你的 zig 版本是最新的 `release` 版本，再进行学习！
:::
