Loris Cro
Loris Cro 的博客。
文章
我的软件开发北极星
一位软件开发者分享其个人优先级框架:第一,软件应对最终用户有用,并追求成为"让人热爱的软件";第二,软件必须正确,故障会损害用户价值;第三,软件应可维护且高效,避免浪费资源。作者强调,无Bug但坑用户的软件、内存安全但缺乏正确性设计的代码、优雅但无法维护的抽象,都是偏离方向的。最终用户的价值才是衡量一切的北极星。全文以鲜明个人立场和真实反思写成,无模板化包…
你必须修复你的断言(assert)
软件工程中一个普遍但有害的做法:在生产环境禁用断言(assert)。本文以 Zig 语言为例深入剖析断言机制,指出关闭断言会让你对自己编写的代码产生错误的安全感——错误的断言未被发现,后续代码继续在错误假设上叠加,最终埋下可利用的安全漏洞。作者结合 Ghostty 两个无需内存破坏即可远程执行命令的真实 CVE、TigerBeetle 始终开启断言、自己的…
Zig与LLVM的新关系(2020)
Zig语言正迎来里程碑式转变:从依赖LLVM后端的C++编译器,迈向纯Zig实现的自托管编译器,使LLVM成为可选依赖。核心亮点是专为调试构建设计的增量编译+原地二进制补丁(in-place binary patching),能将当前占编译时间70%以上的LLVM步骤几乎降为零。文章详细解释了这项罕见技术的设计思路——位置无关代码、全局偏移表、DWARF调…
在 Zig Days 上,请少谈 LLM
Zig 语言社区核心成员 Loris Cro 发文呼吁,在社区协作编程活动 Zig Days 上应主动限制关于大语言模型(LLM)的讨论和使用。Zig Days 是每月一次的线下协作编程活动,参与者自发组队或独立完成项目。作者认为,当下 LLM 相关话题正在"吸走房间里所有的空气",挤占了数据结构和算法、问题求解方法等更值得深入交流的内容。同时,他建议参与…
如何写出更多博客文章(2024)
一位资深软件工程师分享自己克服写作障碍的"心智热力学三定律":第一,必须内心真正相信写作有价值,捷径是把"为获得关注而写"作为策略,借助社交反馈校准内在动力;第二,技术文章走红的关键是教会读者新东西,找到读者当前认知位置(X)并帮他们推进到X+1,太浅或太深都无效;第三,好文章需要把握时代精神并超出平均水平一点点,但越是专家,受众越窄,需要更努力找到让更广…
Scripty:极简嵌入式脚本语言的设计与反思
作者分享了自己亲手打造的一门极简脚本语言 Scripty——故意没有循环、没有 if、没有变量赋值,整个程序只是一个单一表达式,专为嵌入字符串和模板充当查询语言而设计。作者在静态站点生成器 Zine 中长期实际使用它,最近才认真优化使其对他人可用。文章深入交代了设计动机(痛恨花括号宏模板语言,认为模板应分离表达式层与文档层)、VM 实现细节(栈式解释器 +…
Contributor Poker and Zig's AI Ban
在SQLite查询中实现编译时列名安全检查
一位Zig开发者分享了用约20行代码为SQLite查询添加编译时列名安全校验的实战方案。核心做法是利用Zig的comptime机制,在编译期解析SELECT语句提取列名并构建哈希映射,让(.id)替代容易出错的(0)。作者明确承认这并非完整的SQL解析器,但对自己的项目"足够好"——失败模式(如遇到SQL函数)会直接产生编译错误而非运行时诡异行为。文章更宝…
用 Zig 维护 C/C++ 基础设施
本文提出一个反主流的观点:与其追随「Rewrite It in Rust」风潮重写 C/C++ 基础设施,不如用 Zig 作为工具链来改善旧有生态的开发者体验。作者是 Zig 核心贡献者 Loris Cro,他认为系统编程门槛高、构建工具混乱(Make/CMake/Autotools)、交叉编译困难才是新人却步的根源,而不是 C/C++ 本身不可救药。Zi…
Asynchrony is not Concurrency
Zig 新异步 I/O 设计解析
核心看点:Zig 核心贡献者 Loris Cro 详解下一代异步 I/O 重大重构,宣布"彻底击败函数着色问题"。新引入 Io 接口让调用方注入具体 I/O 实现,如同 Allocator 模式,从此一个库无需维护同步/异步两套代码。代码示例逐步展示如何通过 io.async + Future.await 表达并发,并原生支持取消操作。标准库将提供四种实现…