关于 Zig 的思考

主要观点:

  • Zig 是 Andrew Kelley 设计的编程语言,其官方网站列出三个原则:无隐藏控制流、无隐藏内存分配、无预处理器和宏。
  • 对于从 Rust、Go 和 TypeScript 过来的人,Zig 有所不同且有趣,作者用 3 晚时间用 Zig 重写静态网站生成器后分享感受。
    关键信息:
  • 显式分配:Zig 强制思考分配,使用内存需传递分配器并记得释放,返回结构体的.deinit()函数等使用方式较复杂。
  • 文档:写 Zig 需经常阅读 Zig 源代码理解函数使用等,有多种有用资源如[In-depth Overview]等,错误消息有时较难理解。
  • 错误:Zig 编译器错误消息难理解,如标准库错误、模板库随机恐慌等。
  • :有一些 Zig 库,但大多要么已归档、要么是 C 库包装、要么是未完成或有奇怪错误场景,导致作者自己实现部分功能。
  • 字符串:Zig 没有字符串类型,用[]const u8,比较需用特定函数std.mem.eql
  • 无魔法:Zig 强调透明,不使用抽象隐藏样板逻辑等,作者对此持欣赏态度但不确定在大型代码库中的扩展性。
    重要细节:
  • 作者表示因语言和生态系统不成熟导致库的情况,且不意外人们会自己构建库。
  • 对于较大项目会选择 Rust 因其安全特性和活跃生态系统,小项目则会用 Zig 这种有趣语言。
  • 提到异步函数已从 Zig 中移除。
阅读 6
0 条评论