Zig
由Andrew Kelley于2016年创建的系统级编程语言,定位为C语言的现代继任者,无隐式内存分配,生成高度可预测的机器码
核心事实
时间轴 (近 90 天)
lalinsky.com 的一篇文章演示了如何在 Zig 中构建编译期即可校验的 HTML 模板,将模板错误提前到编译阶段暴露
本文基于 Hacker News 上一则关于 Zig 类型安全 HTML 模板的讨论整理
由于校验逻辑发生在编译期,Zig 类型安全模板最终生成的代码只包含必要的字符串写入操作,几乎不带来运行时开销
Zig 没有宏系统,而是采用统一的编译期执行模型,同一份函数既可以在运行时调用也可以在 comptime 上下文中求值,语义完全一致
Zig 支持编译期计算(comptime),开发者可以在编译阶段执行任意代码、生成类型、校验结构
Ghostty使用Zig语言编写,并直接调用Metal(macOS)和OpenGL(Linux)进行GPU加速渲染
Bun 从 Zig 语言用 AI 重写为 Rust
Zig 从 0.10 版本开始启动自举工程,用 Zig 重写编译器前端,并逐步构建不依赖 LLVM 的自研后端(如 x86、WebAssembly)
Zig 的错误集合(error set)是编译期可枚举的,编译器能静态推断一个函数可能抛出哪些错误
Zig 没有异常机制,而是通过错误联合类型(Error Union Type)在类型系统层面强制处理错误,函数返回值可声明为 !T,调用方必须用 try 或 catch 消费,否则编译不通过
还有 34 条时间轴事件
全部知识事实 (20)
Bun是由Jarred Sumner于2022年发布的JavaScript/TypeScript运行时,其核心部分使用Zig编写
80%已验证Zig是2015年由Andrew Kelley发起的系统级编程语言,定位为C语言的现代替代品
80%已验证Zig禁止AI贡献的核心逻辑是:LLM辅助的PR使维护者投入的审查时间无法转化为对贡献者能力的培养和信任建立
65%待验证Zig的核心设计哲学是'没有隐藏的控制流',程序员应该完全理解和掌控代码的每一个行为
90%待验证J语言使用箭头 -> 尾随指定函数返回类型,与Rust、Zig等现代系统编程语言类似
90%待验证Zig不使用垃圾回收,不支持隐式类型转换,不支持运算符重载
85%待验证Zig是一种追求极致质量和一致性的系统级编程语言
85%待验证Zig项目采用MIT许可证
85%待验证Zig的编译器可以作为C/C++的交叉编译工具链使用
85%待验证Bun是用Zig编写的最知名项目
75%部分验证Zig项目由非营利性质的Zig软件基金会(ZSF)管理
70%部分验证Zig团队的核心理念是'贡献者扑克'——每次代码审查的首要目标是培养新的贡献者,而非仅仅合并代码
70%待验证Bun是一个以高性能著称的JavaScript运行时,最初用Zig语言编写
60%待验证Zig 是由 Andrew Kelley 于 2016 年创建的系统级编程语言,遵循无隐藏分配原则,所有内存分配都必须显式传入 Allocator
60%待验证Bun使用Zig而非C/C++或Rust作为底层实现语言
60%待验证lalinsky.com 的一篇文章演示了如何在 Zig 中构建编译期即可校验的 HTML 模板,将模板错误提前到编译阶段暴露
50%待验证Zig 没有宏系统,而是采用统一的编译期执行模型,同一份函数既可以在运行时调用也可以在 comptime 上下文中求值,语义完全一致
50%待验证Zig 支持编译期计算(comptime),开发者可以在编译阶段执行任意代码、生成类型、校验结构
50%待验证由于校验逻辑发生在编译期,Zig 类型安全模板最终生成的代码只包含必要的字符串写入操作,几乎不带来运行时开销
50%待验证本文基于 Hacker News 上一则关于 Zig 类型安全 HTML 模板的讨论整理
50%