2026 年 7 月,gingerBill 在 YouTube 上发布了一段视频,宣布 Odin 编程语言正式进入 1.0 倒计时。对关注系统编程语言圈子的人来说,这可能是今年最重要的语言生态新闻之一。
Odin 的故事始于 2016 年 7 月的一个晚上。gingerBill 被 C++ 搞烦了,决定自己写一门语言。最初是个 Pascal 克隆(还带着 begin 和 end),但很快演化成了完全不同的东西。他试过给 C 写预处理器来扩展能力,发现是死胡同,于是从头开始。
十年后,这门语言有了 1.1 万 GitHub star,被 JangaFX 用于三款商业 3D 软件(EmberGen、GeoGen、LiquiGen)——这些工具在 Bethesda、CAPCOM、Warner Bros 等游戏和电影大厂的生产管线中运行。Odin 不是玩具语言。

1.0 不等于叫 1.0
这次公告里最让人意外的决定:Odin 的第一个正式版不会叫「1.0」。gingerBill 选择了日期版本号方案——发布候选版预定 2026 年圣诞节,正式版 2027 年 1 月,命名为 Odin 2027。
理由很务实:日期版本号让版本年龄一目了然,也更容易匹配语义化版本控制的节奏。这跟 Ubuntu 的 YY.MM 和 Unity 的年份版本号思路一致,但 gingerBill 强调了一个额外的考量——日期版本可以承诺更清晰的支持周期。
1.0 的核心交付物是一份完整的编译器规格文档(specification)。gingerBill 称之为「严肃的努力」,重点放在「形式化验证路线图上的每一项承诺」——目标很明确:规格要成为编译器行为的权威参考,不是交一份 PDF 了事。
「Batteries Included」的标准库
1.0 路线图中标准库的定位是「batteries included」——不极端,但够用。关键的几个新增:
- HTTP 包:Odin 核心库第一个「batteries included」级别的 Web 组件。目前 Odin 生态中 HTTP 能力主要依赖第三方 binding,进入核心库意味着用 Odin 写 Web 服务不再需要额外依赖
- 更完整的数据结构包:动态数组、哈希表等已有基础上进一步补齐
- 稳定性优先:直到发布窗口,项目的首要目标是修复 bug 而非添加新功能——gingerBill 明确表示「stability is the goal」
另一个即将进入语言本身的功能是内联汇编(inline assembly)。目标很直接:让开发者在不需要离开 Odin 的情况下完成底层优化。对一门定位为「C 替代者」的语言来说,这是基础能力。
Odin 是什么,以及它不是什么
如果不熟悉 Odin,理解它的最好方式是从它所受的影响入手。按 gingerBill 自己的排序:Pascal、C、Go、Oberon-2、Newsqueak、GLSL。Niklaus Wirth 和 Rob Pike 是他公开承认的两位语言设计偶像。
Odin 的核心定位是 data-oriented programming(面向数据编程)。翻译成工程语言:数据结构就是数据,代码就是代码,两者不绑定。没有类、没有方法、没有继承。子类型多态通过 using 实现,但本质上更接近 C 里的虚函数表——只是写起来更舒服,对内存布局的控制也更精细。
几个标志性的设计决策:
- 没有异常。gingerBill 写过一篇《Exceptions — And Why Odin Will Never Have Them》。错误处理走多返回值路线,类似 Go 但更显式
- 没有隐式数值类型转换。C 里那些「这个表达式到底是有符号还是无符号」的困惑,在 Odin 里不存在——想转换,显式写
- 没有 UFCS(Uniform Function Call Syntax)。
x.f(y)语法糖被拒绝的理由是:Odin 没有 method 概念,x可能有名为f的字段,歧义不可接受 - context 系统:每个作用域里有一个隐式的
context值,通过指针隐式传递给所有使用 Odin 调用约定的过程。主要用途是分配器注入和日志拦截——库代码不需要知道调用方用什么分配器,context 帮你传递
这些设计加起来给人一种强烈的「知道自己要什么」的感觉。Odin 不试图取悦所有人——它在乎的是清晰、正交、可预测。
在生产环境里的样子

Odin 最有力的存在证明来自 JangaFX。他们的三款实时 3D 模拟工具全部用 Odin 写成:EmberGen 做体积流体(火、烟、爆炸),LiquiGen 做实时液体模拟,GeoGen 做地形生成。这些不是 side project——EmberGen 被 Bethesda 和 CAPCOM 用于 AAA 游戏的生产管线。
另一个案例是 ChiAha 数字孪生工具包,同样全 Odin 编写,能预测生产线性能和 OEE(整体设备效率),误差在 1% 以内。
Odin 的 vendor 库也值得一看。官方维护了所有主流图形 API 的绑定——OpenGL、Vulkan、Direct3D 11/12、Metal、wgpu、WebGL 1/2——外加 SDL2、GLFW、raylib、miniaudio 等常用库。这对游戏和图形开发者来说意味着开箱即用。
在 Zig、Jai、Rust 之间的位置
2027 年的系统编程语言生态中,Odin 的定位比较独特。Rust 走的是安全性路线,Zig 走的是「更好的 C」加编译时元编程,Jai 还在闭门开发中(Jonathan Blow 的风格)。Odin 走的是 data-oriented + simplicity 路线——语言规格能被普通人记住,标准库刚好够用,性能靠「给你足够低层的控制权」而非「编译器替你优化一切」。
它不会取代 Rust 在安全关键场景下的位置,也不会取代 Zig 在嵌入式/交叉编译场景下的灵活度。但如果你在写游戏引擎、实时模拟、图形工具——或者说在写那种需要「掌控内存布局,但不能为了安全牺牲迭代速度」的软件——Odin 的定位是精准的。
1.0 之后,关键在于生态能否越过临界点——足够多的库、足够多的教程、足够多的公司公开背书。Odin 已经有了 JangaFX 这个重量级案例,但还需要更多。
参考链接:
- https://odin-lang.org/ (Odin 语言官网)
- https://github.com/odin-lang/Odin (GitHub 仓库)
- https://www.youtube.com/@gingerBill (gingerBill — 含 1.0 路线图公告视频)
- https://jangafx.com/ (JangaFX — Odin 的商业用户)