News Hacker|极客洞察

251 3 小时前 github.com
🤔Woxi:用 Rust 重写 Mathematica 引发的架构、性能与 AI 贡献争议
让 AI 写数学内核,出错谁担责?

🎯 讨论背景

Woxi 是一个用 Rust 重写 Wolfram Mathematica 的开源工程,目标覆盖 Mathematica 1.0 大部分功能并逐步实现社区常用函数(项目方宣称目标包括 >900 个函数)。开发流程中大量使用 LLM/AI agents(评论中提及 Claude 等)生成代码并辅以数千条测试,仓库采用 AGPL 许可证发布。讨论集中在三大问题:体系结构(小核心 + 语言层规则 vs 将数学算法写在 Rust)、AI 生成代码的可审查性与长期维护风险、以及能否复现 Mathematica 多年积累的算法深度与 notebook 体验。评论还对比了现有开源替代品(如 Mathics、Octave)和工具(Rubi、TeXmacs、Jupyter、WASM、Zeppelin),并提到法律/许可证风险与部署可行性。

📌 讨论焦点

架构取舍:把数学逻辑放在 Rust 还是放在 woxilang

有经验的评论者警告说,把多项式等符号数学算法直接写在 Rust 而非在 woxilang(Woxi 的内置语言)会造成长期维护灾难和贡献门槛上升。建议将解释器做成尽可能小的核心(tiny core interpreter),把加减、微积分等作为 term rewriting/模式匹配规则用 woxilang 实现,再在必要时通过 JIT(即时编译)把热点编译为本地代码以兼顾性能。这样可以让解释器改进立即惠及整个平台,数学专家只需学 woxilang 即可贡献复杂规则,避免在 Rust 与语言层之间切分产生的技术债。也有评论指出若不刻意保持小核心,项目自然会趋向把大量复杂逻辑写死在宿主语言中,难以调优与验证正确性。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

AI agents 与代码质量:加速器还是不可审查的黑箱?

项目大量使用 AI agents(评论中提到 Claude)生成代码并宣称已有约 5000 个测试用例,维护者把 agents 当作快速扩展和改进质量的工具。反对者担心 AI 产出的海量提交、极短提交间隔和被提及的数十万行 LOC 会让人工全面审查变得不切实际,从而埋下难以发现的架构性错误和技术债。有人提出用 Mathematica 作为 oracle 做 property-based testing/quickcheck 式自动化验证以建立闭环回归测试,认为这能缓解部分风险;支持者则认为 AI + 自动化测试能极大加速实现。争论焦点在于“生成代码等于经过充分审查”这一假设是否成立——多条评论强调审查正确性往往比写代码更难。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]

能否替代 Mathematica 的成熟生态与算法深度?

许多评论质疑 Woxi 能否复现 Mathematica 多十年累积的优化数值与符号算法、以及丰富的 domain‑specific toolboxes,这些才是 Mathematica 的关键护城河而非仅仅语法。项目方表示要实现 Mathematica 1.0 的大部分功能并逐步涵盖 >900 个常用函数,但评论中举例指出当前某些实现仍然很朴素:集成例程没有实现部分分式分解、基本积分例子缺少 Log 支持,显示在算法深度与覆盖面上仍有差距。讨论还比较了 Mathics、Octave 等开源替代品的命运,结论是能否替代商业系统更多取决于长期维护、工具箱兼容性和交互体验是否达到生产级别。同时有对法律与许可的讨论(clean‑room 实现、版权/专利与 AGPL 许可证对采纳与部署的影响)。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

前端、笔记本与部署:用户体验与嵌入能力的重要性

评论者普遍认为 Mathematica 的 notebook、漂亮的数学排版和交互体验是其核心优势,Woxi 要获得用户必须在前端体验上有竞争力。Woxi 已提到 Woxi Studio、Jupyter Lite 和命令行内核,并宣称可通过 WASM 嵌入与更快启动等部署优势,但有人问是否有能复现富数学排版(如 TeXmacs)的前端,以及如何在 Jupyter/Zeppelin 等现有平台上集成。许可证(AGPL)和实现细节会直接影响在 Docker、CI/CD、云部署等场景的可用性与企业采纳度,因此前端与部署可行性被视为关键衡量点。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

📚 术语解释

woxilang: Woxi 的内置脚本/符号语言,用于定义 rewrite 规则与符号变换。评论中争论是否应把大部分数学逻辑用 woxilang 实现而不是写在 Rust 中。

Wolfram Language: Wolfram Language(Mathematica 的编程/符号语言),以模式匹配和规则重写为核心,包含大量内置函数与领域扩展。

term rewriting / pattern matching: 术语重写(term rewriting)和模式匹配,是以规则将表达式转化为标准形式的编程范式,常用于符号计算和规则驱动的算法实现。

JIT: JIT(Just‑In‑Time,即时编译器),在运行时将热点代码编译为本地机器码以提升性能,评论建议用 JIT 在保留小核心的同时加速数值/符号运算。

AGPL: AGPL(GNU Affero General Public License),一种要求在远程服务场景下也需开源修改的许可证,影响商业部署、上游采纳和镜像使用。

Rubi: Rubi(rulebasedintegration.org),一个基于规则的符号积分库,社区常用它作为 CAS 积分能力的参考或补充,评论提到 Woxi 对 Rubi 兼容性的实现状况。