Huzzah:用持久化伪代码替代自然语言提示的AI编码新范式
一位开发者提出Huzzah编辑器,用声明式伪代码替代自然语言提示与AI协作,旨在解决编码智能体提示词冗长、易丢失意图等问题,为AI辅助编程提供新思路。
2026年8月Huzzah一种使用AI编码的新实验性方法如果你和我一样是软件工程师,2026年的头几个月简直不可思议。编码智能体突然变得足够好,我们不再需要手动编写代码。但如果你和我一样,那么过一段时间你就会碰壁。
蜜月期结束,新鲜感消退,不再有多巴胺刺激。现在是八月,我感到彻底疲惫。说实话,我厌倦了用长篇英文描述我对代码库的每一次更改。但我也并不想回到手动编写所有代码的状态,那种工作确实乏味,我宁愿余生都避免。
然而,我意识到我需要更好地洞察和控制我的代码在做什么。我希望我的输出是高质量、可靠的软件,希望作为专业人士能自我感觉良好。所以我正试图找到一种两全其美的方法。我对编码智能体的不满在于:- 没有可靠的人类意图记录。
提示词被丢弃,代码可能是也可能不是AI生成的。我们失去了表达人类对机器期望的核心权威,我认为正视这一事实很重要。- AI聊天是命令式的、逐步的指令,描述的是对应用的更改,而非应用本身。这意味着指令经常重复,从而在开发过程中多次消耗token。
这是低效的。- 自然语言很大程度是为了社交而非信息传递,普通句子中真实信息稀少。以这种方式向机器书写很笨拙。为了解决这些问题,我正在构建一个实验性编辑器,名为Huzzah,它为与LLM协作提供了一种替代范式。
使用编码智能体时,提示词是(a)长篇、(b)命令式、(c)短暂的;而使用Huzzah,提示词是(a)伪代码、(b)声明式、(c)持久的。直接展示会更清楚。比较fizz buzz让我们看一个非常简单的例子——假设你想用AI创建fizz buzz。
我们做两次:一次用编码智能体,一次用Huzzah。使用编码智能体你在所选工具中开始聊天,输入类似以下内容:创建一个循环100次的函数。如果数字能被3整除,打印“fizz”。如果数字能被5整除,打印“buzz”。
如果数字能被两者整除(例如15),打印“fizz buzz”。如果需要编辑,你向聊天发送后续消息:函数不应循环100次,而应接受一个数字输入,并循环该次数。你重复这个过程直到满意。使用Huzzah你创建一个名为fizz_buzz.hz的新文件。
在其中,你按自己喜欢的方式编写伪代码表示。我个人会这样写:fizz_buzz()loop 100modulo 3 ?"fizz"5 ?"buzz"both ?"fizz buzz"你保存文件,Huzzah自动从中生成真实代码。
如果需要编辑,只需更新文件:fizz_buzz(n)loop nmodulo 3 ?"fizz"5 ?"buzz"both ?"fizz buzz"保存文件时,Huzzah捕获差异并将其用作LLM的提示词,受影响的源代码随之重新生成。
其他示例为了让你更好地了解这在其他场景中的样子,这里有一些替代示例。
1. 购物车list cartlist inventorymock_data = // 包含一些模拟数据init()inventory.fill(mock_data)add_item(id)cart.add(item by id)remove_item(id)cart.f
ilter(item by id)checkout()return cart.sum(item by price) and format as price2. 待办事项列表Todo {id:
inttext:strcompleted:bool}add_todo(text)todos.add(text,
completed = false)toggle_todo(id)todo = todos.get by idtodo.completed = NOT . completedremove_todo(id)todos.filter by id优势你应该已经看到一些好处。
注意到伪代码比长篇提示词更简洁易读吗?还有更多:- 以这种方式编写提示词能激发你的思维,因为感觉更像在设计代码的结构。- 你可以根据需要写得简洁或详细。- 伪代码充当开发者文档,因为人类编写它来表达意图。
- 你可以编写语言无关的伪代码,并以此为基础生成多种语言或环境的目标代码。
想想复杂的算法,比如CRDT。注意事项当然,没有银弹。一些例外:- 这种方法在大规模场景下可能存在完全未知的问题。- 显然,它更适合新代码库而非现有代码库。- 如果你缺乏领域专业知识,自然语言可能是更简单的交互方式。
- 某些事情可能难以可靠表达,比如跨文件依赖。- LSP类功能将不可用(尽管理论上可以生成)。当前状态Huzzah正在积极开发中,目前仅处于实验状态。你可以在这里找到源代码和安装说明。请试用一下,告诉我你的想法!
干杯。