forum
forum copied to clipboard
【Zig 日报】2024-05-04 Zig 项目中依赖的数量,多了好还是少了好?
社区内一个有意思的讨论 Software dependencies in Zig Projects,主题就是一个 Zig 项目,依赖多了好还是少了好。
一些观点:
-
Zig 自带 C/C++ 编译器。因此,如果你的依赖项完全由 Zig 管理(即获取和构建),那么它们是否也用 Zig 编写就没什么区别了。不过,我认为这只适用于不值得用 Zig 重写的大型依赖项。比如 Lua 语言虚拟机。或者是 tree-sitter 或 ffmpeg。我认为一般来说 Zig 项目应该尽可能地完全独立于主机操作系统构建,不管它们是否有 C/C++ 依赖关系。这并不总是可能的(例如,Linux 上的 OpenGL 库) ,但是如果可能的话,它真的非常非常好。
-
我首先想到的是整个 leftpad 危机,只要突然移除一个依赖项,整个软件生态系统就会瘫痪。这有点像 "叠积木"。这并不是说你永远都不会使用依赖关系,永远都要重新发明轮子,但似乎必须有一个 "合理的复杂性阈值",在这个阈值内,你可以决定不依赖第三方,而是自己编写代码。
-
我们应该追求简单,而不是轻松。这更符合齐格的口号,齐格正在朝着这个方向前进。对于那些认为我们不应该不断重新发明轮子的人来说,如果我们没有一次又一次地重新发明轮子,我们就会拥有这样的东西。