翻译/万志文
除了十几岁时做过一段时间网站,捣鼓过Flash动画以外,我从没当过软件工程师,也没有放弃新闻工作而投身技术行业的雄心。然而,在过去的几个月里,我一直在疯狂地写程序。
我的作品包括:一个可转录和总结长播客内容的工具,一个能将我的社交媒体账号里的书签整理成可搜索数据库的工具,一个能告诉我某件家具是否能放进我的汽车后备箱的网站,以及一个名为“LunchBox Buddy”的应用。LunchBox Buddy可以分析我冰箱里的食物,据此帮我决定给儿子准备什么午餐带去学校。
这些创造都要归功于人工智能以及被称为“氛围编程”(vibecoding)的人工智能新趋势。氛围编程是人工智能研究员安德烈·卡尔帕西(Andrej Karpathy)所普及的一个词。它概括了当今人工智能工具的实用性和易用性,借助这些工具,即使是非技术爱好者,只需在文本框中输入提示语,也能创建功能齐全的应用程序和网站。你不必知道如何编程,只要有一个想法,再加上一点耐心就足够了。
我自己的氛围编程试验意在开发我所谓的“个人软件”—解决我生活中特定问题的小型定制应用程序。它们都不是大型技术公司会去开发的工具,没有市场受众,功能特性有限,而且其中一些只是凑合能用。
但以这种方式构建软件—用一两句话描述一个问题,然后看着一个强大的人工智能模型构建一个定制的工具来解决该问题—是一种令人十分兴奋的体验。
人工智能编程工具并非新鲜事,已经诞生多年。早期的工具旨在帮助专业程序员提高工作效率,比如GitHub Copilot。它们有的是以和ChatGPT完成句子一样的方式来完成代码行。但你仍然需要懂得如何写代码,不然无法最大限度地利用这些工具,也无法在人工智能卡壳时及时介入。
但在过去一两年里,人们开发了新的工具来利用更强大的人工智能模型,让新手也能像专家一样编程。这些工具包括Cursor、Replit、Bolt和Lovable,它们的运作方式大同小异:根据用户的提示提出设计方案,确定使用哪些软件包和编程语言效果最好,然后开始构建产品。大多数产品都提供有限的免费功能,付费用户可以获取更高级的功能,能够构建更多东西。
对于非程序员来说,氛围编程就像巫术。输入提示语后,一行行神秘的代码会快速出现在你面前,几秒钟后,如果一切顺利,一个工作原型就会诞生。用户可以提出调整和修改的建议,只要感到满意就可以将这些新产品部署到网络上或在自己的计算机上运行。整个编程过程可能只需要几分钟,也可能需要几个小时,具体取决于项目的复杂程度。
我让Bolt开发一个应用,让该应用可以根据我上传的冰箱里的东西的照片,帮我决定给儿子准备什么午餐。该应用先是分析了这项任务,将任务分解为多个步骤。然后,它生成了一个基础网页界面,选择了一个图像识别工具来识别我冰箱里的食物,并开发了一个算法来根据这些食物推荐做什么餐食。
如果人工智能需要我作决定—例如,我是否希望它列出推荐的食物的营养成分—它会提示几个选项。然后,它就会继续写代码。遇到困难时,它会尝试调试自己的代码,或者退回到遇到困难之前的步骤,然后尝试采用不同的方法。在我输入提示语大约10分钟后,LunchBox Buddy就出结果了,它建议我做一个普通的火鸡三明治。
我的氛围编程试验并非全都取得了成功。几个星期以来,我一直在努力创建一个邮件自动回复工具,让它能够用我的写作风格自动回复我的电子邮件。但我还没能做出来。在尝试将人工智能工作流程整合到Google Photos和Voice Memos等应用程序中时,我也遇到了一些障碍,因为这些应用在设计上并不能很好地与第三方插件配合使用。
当然,人工智能偶尔也会犯错。有一次,我试着为我家附近的一家轮胎店建立网站,人工智能根据这家店的Yelp页面内容编造了虚假评论,并将这些评论添加到一个客户评价页面里。还有一次,我试图把自己写的一篇长篇故事变成一个互动网站,人工智能只收录了一半的文本,漏掉了另一半。
换句话说,还是要有人监督一下机器人,氛围编程才能发挥更好的作用。此外,它可能最适合应用于业余项目,而不是重要的工作任务。
这种情况可能不会持续太久。许多人工智能公司正在研究可以完全取代人类程序员的软件工程代理人。人工智能已经在竞争性编程测试中取得了世界一流的成绩,包括Google在内的数家大型技术公司已将大量工程工作外包给人工智能系统。Google首席执行官桑达尔·皮查伊最近表示,人工智能生成的代码在Google部署的所有新代码中占1/4以上。
如果我是一名初级程序员,我可能会对自己的就业前景感到恐慌。但我只是一个喜欢捣鼓的人,喜欢创造一些能改善我个人生活的工具。而氛围编程(真正意义上的编程),是人工智能正明显展现进步的一个领域。
自从上个月在播客里谈论了自己的氛围编程经历,我已从其他几十个人那里听说他们在人工智能的帮助下构建了自己的工具。读者们称自己通过建立网站来追踪鸡蛋的价格,或搜索洛杉矶地区的Zillow房源信息,以发现帕利塞德山火后房租被哄抬的情况。
我并不是对人工智能盲目乐观,也不是对人工智能编写的应用程序不断改进可能会引发的社会影响视而不见。我认为,可自动构建有用软件的人工智能也有可能自动创建恶意代码,甚至引发自动化网络攻击。我也担心,软件工程师只是第一个可能被人工智能工具替代的技术岗位。
这些工具本身很少能改变世界。但就目前而言,开发应用程序来自动处理我生活中烦人或耗时的任务,似乎是人工智能的最佳用途。
……