C++ 老哥的破防时刻:Bend 2 性能贴脸 C,还给 AI 上了道紧箍咒
周末刷 Hacker News,看到个帖子 585 分,标题叫 "Bend 2 Is Here"。点进去之前我以为又是哪个 Rust 新框架,点进去之后,我这个写了几年 C++ 的老哥,心态有点炸。Bend 2 是一门新语言,9 月 18 号刚发布。官方口号一句话:**Bend BLOCKS mistakes - with proof**—— 用数学证明拦住错误。你在 LAWS.bend 文件里声明 "法则",比如 "这个游戏的胜利条件不可能被绕过",从此 AI 生成的代码,只要敢违反法则,编译都过不了。官方演示里直接让 Claude 去破坏规则,结果被拦得明明白白,跟念紧箍咒一样。
这套证明检查的技术,就是大 AI 实验室用来解开放数学难题(比如 Navier-Stokes 方程)的那套。以前是顶尖数学家的玩具,现在被做成了编程语言的安检门 —— 你写的每行代码,过一遍 "数学证明" 才能进门。
性能方面更是贴脸开大:单核跑接近 C 的速度;同一份二进制,不改一行代码,扔到 16 核或者 GPU 上直接起飞,官方在 Apple M4 Max 上实测 GPU 比单核快最高 100 倍。底层是 HigherOrderCO 团队攒了十年的 interaction nets 研究,从 HVM 一路迭代到现在。
不过最扎心的是作者自己说的那句话:Bend 2 是 "practical, not idealistic",设计上更接近 C,而不是 Haskell。翻译一下就是:连搞函数式研究的人,最后都选择了向 C 的性能看齐。而我们 C++ 程序员还在跟段错误、内存泄漏、模板报错搏斗的时候,人家新语言已经研究 "怎么证明 AI 写的代码是对的" 了。
顺带一提,今天还有个叫 KillSwitch 的语言上了 Show HN,思路更野:**故意设计成让 LLM 难以编写的语言**。作者是写 Nim 那位 dom96,还给各家大模型出了套基准测试,明摆着让 AI 出糗。
你品品这两派的哲学:
**Bend**:AI 随便写,编译器当裁判,违反法则按回去
**KillSwitch**:AI 你最好别碰,这语言跟你八字不合
一个 "欢迎来写、错了拦截",一个 "你别过来啊"。
放到我们 C++ 的语境里想,其实挺有意思的。我们这行的传统是:编译器只帮你查类型错误,逻辑错误全靠 code review 和玄学调试。现在新语言直接把 "正确性" 做成了一道数学题 —— 这大概是未来十年语言设计的暗线。
好了不说了,我去试玩 Bend 2 的 demo 了。回头写篇上手笔记,看看这玩意儿写起来到底像 C 还是像 Haskell。你们要是也去玩了,评论区交流下体感。 鱼油别急,我帮你把这篇帖子拆成几个关键点:
[*]Bend 2 不是 C++ 杀手。 它底层是 interaction nets / HVM,卖点是“一份代码自动并行到多核/GPU”。单核接近 C 通常指特定基准,不等于生态、库、调试、工具链都追平 C++。
[*]“证明拦错”是加强版契约。 在 LAWS.bend 里写法则,编译器检查 AI 生成的代码是否违反。类似 static_assert、契约、形式化验证,但更系统。注意:法则要人写,证明范围有限,不是万能。
[*]KillSwitch 是另一种思路。 故意让 LLM 难写,属于对抗 AI 的研究语言。和 Bend 正好相反:一个用证明约束 AI,一个用设计劝退 AI。
[*]C++ 的位置没变。 C++ 强在生态、控制、兼容、存量。新语言提醒我们:未来语言会更多把“正确性”做进编译期。
给 C++ 老哥的建议:
别只卷语法,补三样东西:
[*]契约与不变量:把“这里必须成立”写出来。
[*]并行与运行时:理解自动并行、GPU 卸载的边界。
[*]验证工具:Sanitizer、Fuzzer、静态分析、形式化验证思想。
一句话总结:
Bend 2 值得玩,但别破防。它更像一个信号:语言从“帮你编译”走向“帮你证明”。C++ 不会一夜消失,但“会定义正确性”的人会越来越吃香。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]