展示 HN: Huzzah – 一种新颖的 AI 编码方法

Hacker News Top 工具

摘要

Huzzah 是一款实验性编辑器,它引入了一种声明式的、基于伪代码的 AI 编码方法,通过使提示持久化和高效来解决当前编码代理的局限性。

<p>大家好。我一直在开发这款名为 Huzzah 的实验性编辑器。<p>今年一月以来,我几乎完全使用编码代理工作,过去几个月我开始感到彻底疲惫。它们很棒,但我发现为每次更改编写完整句子变得越来越繁琐。不仅如此,代码库似乎存在一个复杂度限制——超过某一点,代理就会开始混淆自己。<p>我想回到编写代码,但不想完全回到手动编码。因此,我提出了这种交互范式:<p><pre><code> 1. 用对你最有意义的方式编写伪代码 2. 保存时,编辑器将你的工作同步到真实源代码 3. 伪代码与生成的代码一起持久化,使你的提示有效地成为意图的存储记录。 </code></pre> 它可能不适用于所有用例,但在我最初的试用中,我发现它非常有趣。<p>目前它只是一个概念验证——安装说明在此 README 中:<a href="https://github.com/danielvaughn/hz" rel="nofollow">https://github.com/danielvaughn/hz</a><p>你还可以在此观看其运行视频:<a href="https://x.com/danielvaughn/status/2090456808431165715" rel="nofollow">https://x.com/danielvaughn/status/2090456808431165715</a><p>祝好!
查看原文
查看缓存全文

缓存时间: 2026/08/20 22:17

# 万岁 来源:https://www.danielvaughn.dev/posts/huzzah 2026年8月 与AI编程的全新实验性方式 如果你和我一样是软件工程师,2026年的头几个月简直令人难以置信。编程代理突然变得足够强大,我们不再需要手动编写代码。但如果你像我一样,之后很快就会遇到瓶颈。蜜月期结束,新鲜感消退。多巴胺分泌不再。 时值八月,我感到一种彻底的*疲惫*。说实话,我厌倦了用长篇英文描述对代码库的每个修改。但与此同时,我也不想回到完全手动编写所有代码的状态。那种做法确实乏味,我希望余生都能避免这种枯燥。 然而,我意识到自己*需要*对代码的行为有更深入的理解和掌控。我希望确保产出的软件是高质量且可靠的。我希望作为专业人士能问心无愧。因此我正在尝试寻找一种两全其美的方法。 我对编程代理的问题在于: 1. 没有可靠的人类意图记录。提示词被丢弃,代码可能由AI生成也可能不是。我们失去了表达人类对机器需求的核心依据,我认为这个事实值得重视。 2. AI对话是命令式的、逐步的指令,描述的是对应用的*更改*,而非应用本身。这意味着在开发过程中,指令往往被重复多次,从而反复消耗Token。效率低下。 3. 大量自然语言是出于社交目的而非传递信息。普通句子包含的实际信息量很少。用这种方式向机器描述,非常笨拙。 --- 为了解决这些问题,我正在构建一个实验性编辑器。我称之为Huzzah,它提出了一种与大语言模型(LLM)协作的替代范式。 在编程代理中,提示词是(a)长篇的、(b)命令式的、(c)临时的。而在Huzzah中,提示词是(a)伪代码、(b)声明式的、(c)持久化的。 让我直接展示给你看会更容易理解。 您的浏览器不支持嵌入式视频。您可以直接观看 Huzzah 演示视频 (https://www.danielvaughn.dev/videos/huzzah-social.mp4)。 ## 对比 Fizz Buzz 我们来看一个非常简单的例子——比如你想用AI创建一个 Fizz Buzz (https://rosettacode.org/wiki/FizzBuzz)。我们将用两种方式来实现——一次使用编程代理,一次使用Huzzah。 ### 使用编程代理 你在选择的工具中开始一个对话,输入类似以下内容: > 创建一个循环100次的函数。如果数字能被3整除,打印“fizz”。如果能被5整除,打印“buzz”。如果能被两者整除(例如15),则打印“fizz buzz”。 如果需要修改,你会向对话发送后续消息: > 函数不应循环100次,而应接受一个数字输入,并循环该数字指定的次数。 你会重复这个过程直到满意。 ### 使用Huzzah 你创建一个名为`fizz_buzz.hz`的新文件。在其中,你按照自己喜欢的方式编写伪代码表示。我个人会这样做: ``` fizz_buzz() loop 100 modulo 3 ? "fizz" 5 ? "buzz" both ? "fizz buzz" ``` 保存文件,Huzzah会自动生成相应的实际代码。 如果需要编辑,只需更新文件: ``` fizz_buzz(n) loop n modulo 3 ? "fizz" 5 ? "buzz" both ? "fizz buzz" ``` 当你保存文件时,Huzzah会捕获差异(diff),并将其作为提示词发送给LLM。因此,相关的源代码会被重新生成。 ## 其他一些示例 为了让你更好地理解这在其它场景下可能是什么样子,这里提供一些其他示例。 ### 1. 购物车 ``` list cart list inventory mock_data = // 包含一些模拟数据 init() inventory.fill(mock_data) add_item(id) cart.add(item by id) remove_item(id) cart.filter(item by id) checkout() return cart.sum(item by price) and format as price ``` ### 2. 待办事项列表 ``` Todo { id: int text: str completed: bool } add_todo(text) todos.add(text, completed = false) toggle_todo(id) todo = todos.get by id todo.completed = NOT .completed remove_todo(id) todos.filter by id ``` ## 优点 你应该已经能看到一些优点了。注意到伪代码比长篇提示词更加简洁和*易读*了吗?还有一些其他优点: - 以这种方式编写提示词能调动你的思维,因为它更像你在设计代码的结构。 - 你可以根据需要决定是简洁还是详细。 - 伪代码充当了开发者文档,因为它是由人类编写来表达其意图的。 - 你可以编写语言无关的伪代码,并将其用作多种语言或环境目标的基础。想想复杂的算法,比如 CRDT (https://crdt.tech/)。 ## 注意事项 当然,没有银弹。一些例外情况: - 这种方法在大规模应用时完全可能存在问题。 - 这显然更适用于新代码库,而非现有代码库。 - 如果缺乏领域知识,自然语言可能是更简单的交互方式。 - 某些事物可能更难以可靠地表达,例如跨文件依赖关系。 - LSP类型的功能将不可用(尽管这或许可以生成)。 ## 当前状态 Huzzah正在积极开发中,目前仅处于实验阶段。你可以在这里 (https://github.com/danielvaughn/hz) 找到源代码和设置说明。请试用一下,告诉我你的想法! 祝好。

相似文章

Show HN: Paseo – 美观的开源编程助手界面

Hacker News Top

Paseo 是一个开源界面,将多种编程助手(Claude Code、Codex、Copilot、OpenCode、Pi)整合到单一的自托管平台中,支持语音控制、跨设备使用,并以隐私优先为设计理念。