如果你一直在开发者聚集地(X 和 YouTube)活跃,你很可能会遇到一些新出现的词汇,比如 —— “cracked”、“cooked”、“lock in” 以及各种“氛围编程”的变体。
每当有新的潮流出现时,我总是会想,这种潮流是否可以追溯到某个特定的瞬间或对话?
也许不是所有概念都能追溯,但得益于现在许多在线对话,一些词汇的起源可以追溯到它首次被提及的那一刻。
这就是“氛围编程”的故事 —— 这个词最初是由知名的思想家 Andrej Karpathy 在 X 上提出的。
从这条帖子发布以来,该帖子的浏览量已超过了450万次,而大量的情绪编码工具已经成为一个小型行业。公平地说,其中很多工具在这一著名的推文之前就已经存在,但现在有了正式的类别名称,许多“意见领袖”在一波接一波地分享和转发游戏和其他SaaS应用程序的屏幕截图,这些应用程序是人们使用情绪编码构建的。
在我看来,情绪编码是编程从告诉系统如何做某事(例如冒泡排序)到告诉它做什么的进化。在某些情况下,正如安德杰提到的,只要它们能正常工作,某些东西是如何制作的可能并不重要。
然而,这也带来了一定的挑战,如果你是一名在大型企业团队中工作的工程师,而不是每天都在构建新的游戏或应用程序,而是每天在成千上万行已经编写的代码上进行改进、修复和添加功能。在这种情况下,制作方式确实很重要。如果情绪编码是关于构建应用程序的初始体验,那么第一天则是在此基础上构建、修复错误、添加功能并与团队成员合作。
作为一名热爱构建事物并从中获得成就感的专业人士,我已经使用和探索了所有我能找到的情绪编码工具几个月了。在这篇文章中,我将整理今天的这些工具,以组织自己的想法并帮助那些可能对这个迷人的新编码世界感兴趣的人,从高层面了解它。
在深入探讨之前,让我们先根据人们想要构建的内容,将情绪编码工具分为几个广泛的类别。
全栈应用
全栈应用由前端代码(UI)、后端(API)调用、数据库、集成和存储组成。如果你有一个商业想法,想要出售软件或产品,那么这就是你需要的。这意味着除了上述内容外,全栈应用还有两个重要的组成部分——用户认证和支付解决方案。最后,一旦应用完成,你需要将其部署到服务器上,这样用户可以通过URL访问它们。
传统上,构建一个全栈应用需要一支团队花费数月甚至数年的时间。今天,无论你信不信,你只需坐在电脑前就可以在一天内构建一个全栈应用。
首先,让我们看看可以用于构建全栈应用的UI中心人工智能编码工具。使用这些工具,不仅可以生成并立即查看应用,还可以点击应用程序中的某些元素,继续要求AI工具更改应用程序的特定界面部分。
- Tempo Labs
Tempo Labs 不完全是为无代码用户设计的,但它也为低代码和中级程序员提供了相当不错的控制。使用 Tempo Labs,你可以在项目开始时可以选择身份验证技术和后端,其中一个不错的功能是它将生成的代码与产品需求文档(PRD)和用户流程图一起生成。你可以继续通过视觉界面添加新组件,或者通过 AI 提示直接修改代码,或者导出代码并使用 PRD 与其他 AI 编程工具迭代代码。整体用户流程图也是以高效的方式可视化应用程序用户旅程的绝佳方式。
使用 Tempo Labs,你还可以创建与 Stripe 和 Polar 的支付集成,并使用 Supabase 或 Convex 启用身份验证和数据库。
最近,Tempo Labs 推出了一项新功能,允许从现有的 GitHub 仓库创建新应用程序。然而,撰写本文时,我发现该功能对于三个不同的 NextJS 应用程序都无法使用。希望随着时间的推移,该工具不仅适用于 Day 0 应用程序,也能适用于 Day 1+ 应用程序。
2. Bolt.new / Bolt.diy
Bolt.new 是一个由 Stackbliz 创建的工具,它允许使用 AI 可视化地构建整个全栈应用。其独特之处在于可以直接从 Figma 账户导入设计,并将其转换为代码。
Stackblitz 引入了 Web 容器的概念,使 Node 可以在浏览器中运行,并利用这一特性,这意味着不仅可以使用 AI 提示来以可视化方式构建应用,还可以在 Stackblitz 的 Visual Studio IDE 中打开整个代码库,该 IDE 运行在浏览器中。这样你可以在需要时直接修改代码,还可以添加额外的 VS Code 扩展,从而保持在不同计算环境中的编程体验一致性。
Bolt.new 还集成了 Supabase,可以进行身份验证以及标准的后端数据库 CRUD 操作,不过截至我撰写本文时,我没有看到与 Polar 或 Stripe 等支付系统开箱即用的集成。最近,他们还添加了从 Github 导入项目的功能,这意味着你可以将现有应用导入 Stackblitz 并继续开发。但是你导入到 Stackblitz 的应用目前无法直接用于 Bolt.new,但这会是一个不错的功能,如果创作者在未来加入的话。
3. Lovable.dev
对于非程序员和低代码用户而言,Lovable.dev可能是最易使用的全栈AI工具。它的功能与Bolt.new和Tempo labs差不多。你可以通过AI提示构建和部署整个应用程序,Lovable的一大亮点是可以选择应用程序或网页的某部分,然后让AI进行有针对性的修改。它还集成了Supabase,用于身份验证和数据库的增删改查操作,并可以将你的GitHub仓库连接到应用程序。这意味着你可以在其他地方编辑代码,然后推送到Lovable,当你推送代码到主分支时,Lovable会自动拉取更新,让你可以在代码编辑器和Lovable的可视化界面之间自由切换。
为了不让文章变得过于冗长,我只会提到这些工具而不深入细节,因为它们与上述三个工具非常相似:
**[Replit](https://replit.com/)——Replit代理允许你通过AI提示构建应用程序,并直接在Replit内部部署到生产服务器,所有操作都在同一个界面上完成。
**Base44——这又是一个与上述工具类似的工具,它更偏向于高级开发者,提供了更为基础的启动模板。
既然我们已经了解了这些全套的可视化工具,现在让我们来看看一些用于构建应用程序的流行代码编辑器工具。在这个类别中,要么是VS Code的分支,要么是VS Code中的扩展。我个人更喜欢VS Code扩展,因为这样我可以根据需要切换工具,而不会改变我的使用体验,也不会因为相同的代码库而被锁定在一个工具或一种工作方式中。
- Cursor — 在编码氛围领域较早出现的项目之一,Cursor 最初只是一个可以聊天并获得代码补全和修改建议的平台。几周后,他们推出了Composer功能,让用户可以直接指示代理进行代码修改,从那时起,这个工具和整个领域都得到了显著的发展。最近,Cursor 还增加了对MCP服务器的支持,使得你可以用它来调用其他预构建的工具和服务,仅通过AI提示即可构建整个应用程序。
不过,我对Cursor有一个不太满意的地方,就是它现在变得相当复杂,增加了不少不必要的功能。随着代码库越来越大和越来越复杂,你还需要维护规则文件和上下文文件,以确保Cursor不会做出不必要的更改,或重复以前已经修复的错误。
2. 风翼冲浪(https://codeium.com/)——类似于光标风冲浪,它是另一个 VS Code 分支,并且具有非常相似甚至相同的特性。从用户的角度来看,风翼冲浪在用户体验方面比光标更好,但鉴于不断增长的代码库,它也不能始终保持上下文,因此从 AI 模型中得到的结果通常也是相似的。风翼冲浪还支持 MCP 服务器。风翼冲浪添加的一个新功能是,这是目前光标中没有的功能,可以直接在代码编辑器中预览应用程序。不过,我认为类似的功能也可能会被其他人添加到他们的工具中。
3. Trae(https://www.trae.ai/)—— 说到预览功能或网页视图,又有一个VS Code的分支版本是由Tiktok的团队开发的,叫做Trae。它有更好的用户体验,并且提供一个非常慷慨的免费版,但是它缺乏MCP集成功能,这意味着您无法仅使用此工具完成整个应用程序的构建。不出所料,它缺乏强大的上下文管理功能,这意味着在处理现有代码库或与多个团队成员合作时,它可能作用不大。
现在让我们来看看我最喜欢的最后一个类别——VS Code插件。这些是你可以添加到现有代码流程中的AI工具,并可根据此领域的快速变化随时添加或移除。
VS Code扩展Augment 是一个 VS Code 扩展,它首先索引然后分析代码库,从而与现有仓库集成。如果你使用的是免费层级,这个工具会用你的代码库来训练,对我来说有点让人不爽。然而,如果你对此没有问题,一旦索引完成,你就可以用 Augment 主要来做两件事:问代码相关的问题或获取代码补全。在写这篇文章的时候,Augment 还没有代理模式,也不支持 MCP。
2. Continue
Continue 与 Cursor 类似,它具有聊天模式和代理模式,并且它还集成了 MCP 服务器。它还有索引整个代码库的功能,但用户仍需提及具体的文件和文件夹才能获得恰当的上下文。另外,我喜欢 Continue 的一点是它也集成了 MCP,这样我可以将诸如 Brave 搜索和 Firecrawl 等工具引入进来,以构建更多的上下文。
3. Cline
Cline 也拥有与 Cursor 和 Windsurf 类似甚至相同的特性,但它是一个 VS Code 扩展而不是整个 VS Code 分支。Cline 的自动化功能主要集中在任务自动化上,允许开发者描述复杂的任务,并自动分解为逐步实施。对于 UI 调整,Cline 可以分析组件结构并提出保持视觉一致性的修改建议。Cline 独特之处在于其专门的“代码预测”功能,根据编码模式和当前上下文预测开发者下一步可能需要的内容。说实在的,我发现 Cline 对 token 的消耗量很大,这使得它相当昂贵,尤其是如果你尝试以一种“YOLO(你只活一次)”模式运行它。
4. Sourcegraph
对于希望在现有代码库上与多个团队成员合作的专业开发人员来说,Sourcegraph 可能是最好的工具。它提供了企业级的仓库集成功能,支持多种版本控制系统和大规模代码库。这意味着你可以连接数百个仓库,并不仅限于搜索,还可以查找洞察并进行批量更改,例如重构或更新库和安全修复等。最近,它还增加了一个 VS Code 扩展——Cody,该扩展与 Sourcegraph 集成,除了代码补全功能外,你还可以用它来进行聊天和协作。
Sourcegraph 的独特之处在于其“跨仓库意识”,这使得开发人员可以理解代码在多个项目中的使用和共享情况,这对于大型组织来说尤其有价值。
另外,在这个领域还有两个值得一提的工具,
- Fynix — Fynix 以其“代码演化追踪”功能而著称,这个功能让规划和执行一致的修改变得更为简单。
- Pythagora
我感觉 Pythagora 的用户界面不太容易上手,但如果你是第一次构建基于 Node 的应用,它确实能帮上不少忙。不过对于现有的代码库来说,它的帮助并不大。
总体来说,我觉得用户体验还是有点迷糊。
最后来看看最后一个类别中的独立工具。
独立的工具- 德文(Devin) — 认知实验室 https://cognition.ai/
Devin 通过 Git 集成和专门的代码理解能力连接到现有的代码仓库。其代码库搜索和上下文功能强大且实用,能够理解复杂项目结构和大规模代码库中的依赖。Devin 的代理能力是其主要优势,使其能够作为一个自主开发工具,几乎不需要人工介入就可以规划、实现、调试和测试代码。Devin 不同且略显奇特的地方在于,你只能通过 Slack 与之交互,这意味着如果你是单打独斗的开发者,你也需要使用 Slack。
2. Aider
专为高级用户设计的Aider是一个基于终端的工具,通过命令行界面和Git提供便捷的仓库整合,使其轻松集成到现有的开发工作流程中。Aider的代码上下文理解功能侧重于理解本地代码结构,并保持与现有模式的一致性。Aider的代理能力使其能够充当代码伙伴,实施请求的更改同时保持对整个代码库全局的理解。其用户界面修改功能较为有限,主要集中在功能性组件上,而不是设计系统。Aider的显著特点是其对话驱动的开发模式,开发人员可以用自然语言描述更改,而Aider则在对话界面中实施这些更改并进行澄清和修订。
3. Claude Code 介绍
本文开始前几日发布的Anthropic公司的Claude Code主要是一个基于终端的编程工具。Claude Code的独特之处在于它首先“读取并理解”代码库,然后在整个会话期间,它不仅可以聊天,还可以对代码进行修改。它还将这种“记忆”持久化到一个可以修改并用于未来会话的Markdown文件中。
Claude Code的代理功能主要集中在任务自动化和辅助上,而不是完全自主开发。不过值得一提的是,Claude Code是迄今为止最昂贵的工具,也是个“大量消耗令牌”的工具。在我进行的一次简单更改测试中,几个小时内,我看到的令牌使用费用大约为5美元。由于这是一个Anthropic发布的工具,目前它仅支持Claude模型。
在这篇文章中,我们看到了可用于“代码调性”的不同类别的人工智能工具,每种工具都有其优缺点。实际情况是,目前你不能仅仅依赖一种工具来构建和维护你的整个应用程序。我还发现这些工具主要是针对第0天(新应用构建)的使用场景,希望这些像Sourcegraph、Claude Code和Continue这样的工具能更好地支持第1天及以后的编码任务。
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章