返回

文章详情

我用Fable将65kLoC的Go重写为Rust,花费了400美元

Hacker News2026年9月1日 18:39

2026年9月1日·3分钟 我一直开玩笑说我应该很久以前就学Rust,但C++的钱根本不够买一套像样的毛皮服。此外,我已经秃头,所以我不能简单地把头发染成蓝色。但随后两件事情同时发生了。首先,我尝试了Matt Pocock的/teach技能来学习Rust,结果我觉得很契合:“教一个C++程序员习惯性的Rust,跳过语法和helloworld,只关注主要的区别。”这个技能就像一个私人教练——克服那种愉快的挑战让我保持参与,同时材料也不会让我感到不堪重负。我推荐大家试试看。大约在同一时间,我碰到了“用Rust重写Bun”的文章,对这个方法产生了好奇:每一个动态工作流都是一个这样的循环——一个工作流:生成一个移植指南,将Zig模式和类型映射到Rust模式和类型机械地将每个.zig文件移植到.rs文件,匹配PORTING.md和LIFETIMES.tsv 解决每个库的编译错误 让子命令如bun test或bun build正常工作 让Bun整个测试套件的每个测试都通过 进行几次大的重构和清理 我觉得重写可以便宜得多。给我看看你的流程图,隐瞒你的表格,我将继续感到困惑。给我看看你的表格,我通常不需要你的流程图;它们会是显而易见的。 ——Fred Brooks 这适用于任何大型语言模型,但Fable 5特别以惊人的精确度跟踪数据流。如果你能够将问题重新表述为数据问题,它可以自主进行复杂的重构、从一种语言重写为另一种语言、提取或合并服务——换句话说,进行根本性的改变。 三个步骤 1. 让大型语言模型将你的代码表示为任意组合的:图形、本体、分层状态机、UML过程图、约束、数学公式 2. 操作该表示 在这一点上,你可以要求它简化状态机,减少状态的数量,或去除隐藏的通信通道(例如,通过共享表,或通过共享RAM中的地址)。 3. 将表示重新放回代码中 现在请求代码——即使是用另一种编程语言。 秘诀 一段时间以来,代理在工具使用方面表现出色,尽其所能将其他代理视为工具调用。 ——Anthropic的帖子 你可以在Fable的提示中添加:避免广泛使用`Glob` / `Grep` / `WebSearch` / `Bash` - 使用`Explore`代理来代替 避免广泛使用`Edit` / `Bash` - 使用通用的`sonnet`或`haiku`子代理来代替 有选择性地使用`Read`,以便自己验证关键声明 Glob、Grep和WebSearch是Claude Code的内置工具。我希望这能帮到你。编码愉快。附言:65kLoC是rune——为LLM时代设计的终端编辑器:在你的终端中结合Obsidian和VSCode,使用⌘键 快捷键 主要关注markdown和语法高亮;语言服务器和调试程序是为代理准备的 Markdown表格 Obsidian库,带有[[wikilinks]] - [x] 买牛奶任务 自动合并、崩溃数据恢复,以及更多… ··· 图片来源于Laura Rivera在Unsplash上的照片 涉及脚注 /teach技能由Matt Pocock ↩ 用Rust重写Bun ↩ 新兴多代理系统中的模式和问题 ↩ 觉得不错吗?获取RSS源以获取通知。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡