快速生成代码的代码助手比较


Val Town 一直在积极整合领先代码助手的功能,以增强其平台。

Val Town 是一个基于云的平台,旨在让开发者可以快速编写、部署和运行 JavaScript 或 TypeScript 代码片段(通常被称为“vals”)。其核心理念是提供一个环境,无需用户设置复杂的基础,可以直接在浏览器中创建、共享和运行代码,同时实现持久化、实时更新以及与外部服务的轻松集成。


以下是他们历程的总结:

GitHub Copilot 
最初,Val Town 寻求与 GitHub Copilot类似的体验。该团队实施了 Asad Memon 的 codemirror-copilot,它利用 ChatGPT 进行自动完成。但由于性能问题,他们于 2024 年 4 月过渡到 Codeium,提供更快、更准确的补全。


ChatGPT 集成
随着 ChatGPT 的兴起,用户开始利用它来编写 Val Town 代码。为此,Val Town 推出了“Townie第一个版本”,这是一个由 GPT-3.5 提供支持的聊天界面,简化了平台内的代码生成。

ChatGPT 工具使用
通过探索 ChatGPT 的函数调用功能,Val Town 改进了他们的 OpenAPI 规范并改进了 Townie。尽管做出了这些努力,但幻觉函数等问题仍然存在,导致迭代代码开发的界面效率降低。

但对我们来说,问题在于界面太过通用。理论上,它可以做任何事情(编辑你的 blob 或 sqlite 数据),但在任何具体的事情上都不是很有用。最值得注意的是,它不是一个用于迭代代码的好界面。它可以编写代码的第一个版本,但它没有经过优化,无法让你运行该代码、查看输出、调试它,也无法让你向 AI 寻求更多帮助。换句话说,反馈循环很糟糕。

Claude Artifacts
Claude 3.5 Sonnet 和 Claude Artifacts 的推出标志着代码生成领域的重大进步。Val Town 采用了这些技术Websim,使 Townie 能够快速生成具有集成前端、后端和数据库的全栈应用程序。Townie 的当前版本于 2024 年 8 月诞生。

感觉我们拥有了该领域最好的工具之一。Townie 可以在几分钟内生成一个包含前端、后端和数据库的全栈应用程序,并完全部署。从那时起,这个领域就变得拥挤不堪。快速跟进者生存,快速跟进者死亡。

Val Town 的创新
除了集成现有工具之外,Val Town 还做出了显著的贡献:

  • 速度提升:他们尝试生成代码差异diff来加速反馈循环,这受到了Aider 等项目的启发。尽管最初的尝试面临可靠性问题,但为未来的改进奠定了基础。
  • 开放系统提示:Val Town 通过保持系统提示开放来保持透明度,促进开发者社区内的协作和创新。

我们现在害怕在 diff 上投入更多时间,OpenAI 推出了自己的预测输出,这也很有吸引力,但之后我们就必须转向 OpenAI。或者解决方案可能只是更快的模型、更小的迷你模型或更快的芯片,如 Groq 或 Cerebras。几周前,我构建了Cerebras Coder来演示即时反馈循环对于代码生成的强大功能。自己尝试一下在此处 fork

DeepSeek最近开源了一个接近 Sonnet 3.5 级别的模型,该模型的速度是 Sonnet 3.5 的两倍,而且训练成本仅为 600 万美元。一个男孩可以梦想一个世界,在 Cerebras 这样的芯片上,可以实现 Sonnet 3.5 级别的代码生成(甚至更智能!),而成本仅为 Anthropic 的一小部分。我认为这将在这里引发一类全新的创新。

Cursor
下一个大事件是Cursor。我必须承认,我个人从未爱上它,但考虑到有多少我尊敬的人喜欢它,我认为这是我的问题。我认为 Cursor 最适合在较大的代码库中进行开发,但最近我的工作是在 Val Town 中制作 val,这些 val 的代码通常不到 1,000 行。(我们即将推出的多文件项目,目前处于私人测试阶段,将改变这种情况。)然而,Cursor 是该领域的真正先驱,并且在那里有一些我们想要复制的 UI 交互。

Windsurf
假期期间,我爱上了Codeium 的Windsurf。它的 Cascade 功能是一个聊天界面,具有工具使用和多轮代理功能,可以搜索代码库并编辑多个文件。感觉有点像我们回到了开发 Townie 工具使用版本的时候。但是,我认为我们现在都明白,你不能简单地将 OpenAPI 规范交给 LLM 并期望得到好的结果。Windsurf 的神奇之处在于他们精心设计了代理可以采取的操作,并且可以在没有你的输入的情况下连续执行多个操作。

我对赋予 Townie 一些功能的想法垂涎三尺。想象一下,如果 Townie 可以搜索所有公共 val,甚至 npm 或公共互联网,以查找代码、文档和其他资源来帮助您。

Devin
看着 Windsurf 无需我的输入就能代表我采取多项行动,这非常鼓舞人心。我梦想着这样一个世界:Townie 不仅可以检测错误,还可以自动尝试修复错误,可能多次修复,可能在不同的分支上并行修复,而无需任何人工交互。当然,在这里,我们将进入Devin的人们主要探索的领域。

首先,我们可以将生成的网站的屏幕截图反馈给 LLM。但很快你就会想让 LLM 访问完整的网络浏览器,这样它就可以像人类一样浏览应用程序,看看哪些功能有效,哪些功能无效。也许它甚至会像人类一样编写一些测试,以确保在继续迭代时不会出现问题。

我隐约感觉到,到今年年底,你将能够告诉 Townie “制作一个完全现实的 Hacker News Clone,包括用户帐户、嵌套评论、点赞、点踩”,它可能会为你迭代数小时。你甚至可以上床睡觉,醒来时它已经完成了。


战略考虑
Val Town 正在评估其在快速发展的 AI 代码生成领域中的地位。在考虑与 VSCode、Cursor、Windsurf 和 Bolt 等工具进行更深入的集成时,他们认识到提供基于 Web 的统一 AI 代码编辑器体验的价值。他们的策略包括在采用外部创新与开发独特功能之间取得平衡,从而为开发人员提供全面的解决方案。

快速跟进是竞争还是合作?
到目前为止,感觉主要是合作。蛋糕太大了——有数百万甚至数十亿人正在抓住编码的机会——我们都很乐意互相帮助,努力满足需求。我喜欢这样,希望这种情况能一直持续下去。我们 Val Town 当然不会保守任何秘密。我们的系统提示是开放的,我们会在博客上介绍我们所有有趣的技术选择。这篇文章就是一个例子。

所有这些抄袭行为以及一切发展的速度都引出了一个问题:

  • 我们应该完全退出这场竞争吗?
  • 我们如何才能与资金更雄厚的竞争对手竞争?
  • 我们是否应该专注于改进我们的核心差异化因素,并更好地与 VSCode、Cursor、Windsurf 和 Bolt 等 AI 编辑器集成?

也许吧!我们计划尝试集成:

  • 我们计划改善我们的本地开发体验,这将允许 VSCode、Cursor 和 Windsurf 等编辑器直接编辑 Val Town 中的文件。
  • 我们还计划改进我们的 API,以便 Bolt 等工具可以“部署到 Val Town”,就像它们目前部署到 Netlify 一样。

然而,Val Town 中完全集成的 Web AI 代码编辑器体验似乎仍有很多好处——即使我们只能获得大公司 80% 的功能,而且还要几个月的时间。

  • 复制我们在其他工具中看到的最佳功能并不需要那么多工作。
  • 完全集成的体验带来的好处似乎非常值得付出这些成本。
简而言之,到目前为止,我们在快速跟进方面取得了很大成功,并认为值得继续这样做。