打开网易新闻 查看精彩图片

我的小狗Pixel不喜欢我的沙发键盘。它经常占据我大腿上的位置,而我那只12岁的约克夏贵宾犬认为这是它的专属领地。在它看来,优质的拥抱时光绝不能因为我想写作或编程而受到影响。

昨晚就是这种情况,我的好孩子爬到我的肩膀上,依偎着我,然后睡着了。就在那一刻,我意识到像VS Code和Xcode这样强大的开发环境实际上已经过时了。

我正在开发两个苹果编程项目,每个项目都将在iPhone、iPad、Mac和Apple Watch上运行。我正在构建总共八个二进制文件,最终将通过苹果应用商店分发。

一个项目是3D打印耗材管理项目,帮助我跟踪3D打印机耗材卷。我有120个线轴,放在四个存储架上,每个架子有五层。这些线轴不断在存储架和我的八台3D打印机之间移动。五台打印机可以同时使用四个线轴,一台可以使用八个线轴,另外两台每次只能使用一个线轴。

iPhone应用使用NFC标签,使跟踪这些线轴的移动变得超级简单,并使用内置摄像头为每个线轴拍摄参考图像。Watch应用检查和更新位置,而Mac应用提供耗材库存的桌面视图。

第二个项目最初基于耗材管理系统,但已经发展成更多功能。这个项目管理物理和数字缝纫图案。许多缝纫爱好者,比如我的妻子,收集了数百甚至数千个图案,跟踪它们往往是一个相当大的挑战。

我的代码使用NFC标签和照片来管理物理图案。代码还添加了大量设备端AI来解析图案并发现名称、类别、供应商和其他相关字段数据。这种方法避免了用户必须将所有这些信息输入程序的需要。缝纫应用在最初作为耗材管理应用的基本功能基础上,添加了深度的编目工具和功能。

耗材应用已经相当成熟。我已经积极使用了大约三个月,准备开始添加各种应用内购买功能。缝纫图案应用仍处于相对早期的开发阶段。让设备端AI可靠工作需要大量时间,因为图案和格式有很多变化,每家公司的做法都不同。仍有许多用户界面元素需要设计并连接到所有四个应用平台。

永远不要让任何人告诉你,你可以仅仅通过说几句话或打个响指就能进行编程。如你在上面看到的,这些产品很复杂,尽管AI完成实际编程。

在传统编程时代,存在一个可以描述为编辑→构建→测试→调试,然后回到编辑的开发循环。

所有集成开发环境(IDE)都围绕这个循环构建。IDE界面的大部分结构围绕文件树和编辑支持工具,从语法着色到命令完成,再到指出循环开始和结束的垂直标记。IDE还包括调试器。你在编辑器中设置断点,逐行循环代码,逐步观察代码运行。

语音编程也有一个循环,非常相似。

不是编辑,而是指令,即向AI发出关于你想要什么的提示。构建保持不变。代码必须转换为工作程序。这一步通过解释或编译然后组装程序来完成。

测试阶段也保持不变。但你不是自己进行调试,而是必须引导AI。AI可以找到并修复编码错误,但通常需要指导来找到问题发生的位置。你不能只是说"修复它"并假设AI能做到。对于相当多的错误,它需要一些有经验的指导。

所以循环变成了指令→构建→测试→引导,然后循环回到指令。

注意,语音编程循环实际上没有编辑和调试元素。大多数人选择和定制他们的开发环境来优化编辑和调试,因为传统上大部分时间都花在这上面。

使用语音编程,大部分时间都花在聊天界面中,通常只是一个终端窗口。你唯一需要接触开发环境的时间是启动构建。然后你运行一直在工作的程序,看看什么有效,然后回到聊天或终端界面来引导AI。

几乎没有时间使用IDE来做我们历史上需要IDE做的事情。

这把我们带回到Pixel。昨晚,它依偎在我的左肩膀上,这意味着我的左臂和手被占用了。这让我无法使用物理键盘。但我可以用右手控制鼠标,用声音与AI交谈。

我有一个鼠标按钮编程为按回车键,另一个启动Wispr Flow,我在Mac上使用的听写软件。

我所有的实际编程工作都在iTerm2中完成,这是一个免费的MacOS终端程序,我设置了多个标签页,每个项目一个。

以下是我昨晚连续两小时的循环过程:

我连续做了两个小时这个过程。两个项目都有了相当大的进展。我在IDE中唯一做的事情就是选择菜单项,将测试代码通过苹果发送到我的设备。

如果我制作的不是苹果应用,我甚至可以使用AI启动构建。我根本不需要使用IDE。

今晚,我在程序上做了更多工作。现在,Pixel依偎在我妻子身边,所以我有两只手可以自由工作。我又花了几个小时"编程",除了将代码发送到TestFlight(苹果的代码测试网关)外,仍然没有使用Xcode IDE做任何事情。

去年,在我开始认真进行大项目的语音编程之前,我以为我需要一个支持AI的IDE。所以,我将所有编程从PhpStorm(一个我用于WordPress插件的备受喜爱的IDE)转移到VS Code。我在一篇文章中写了这个转变,认真地说选择正确的IDE对于充分使用AI功能是重要的。

我不知道这个观点会如此错误。

在过去几天里,我一次也没有使用编辑器或调试器

用一只手和语音听写,我开发了两个完全独立的Mac应用。我在一个简单的终端程序中工作,有两个彩色编码的窗口和第三个窗口,合并了两个应用。

我不再因为没有空闲的手而避免使用IDE。今晚我不使用IDE是因为它完全不必要。

终端和语音听写过程令人惊讶地轻松,除了稍微不安的感觉提醒我这种方法有多奇怪,特别是对于一个对IDE这整个概念有着数十年深厚情感联系的人来说。

Q&A

Q1:什么是语音编程?它是如何工作的?

A:语音编程是通过语音指令和AI对话来进行软件开发的方法。开发循环从传统的编辑→构建→测试→调试变成了指令→构建→测试→引导。开发者通过语音向AI发出指令说明需求,AI生成代码,然后开发者测试并引导AI修复问题。

Q2:语音编程是否意味着IDE完全没用了?

A:几乎如此。在语音编程中,大部分时间都花在聊天界面或终端窗口中,只有在需要启动构建或发送代码到测试平台时才需要接触IDE。传统上用于编辑和调试的IDE功能基本不再需要,因为AI承担了代码编写和错误修复的工作。

Q3:仅用语音和鼠标真的能完成复杂的应用开发吗?

A:是的。作者用这种方法开发了两个复杂的苹果应用项目,包括3D打印耗材管理应用和缝纫图案管理应用,每个项目都要在iPhone、iPad、Mac和Apple Watch上运行。通过语音听写软件和鼠标操作,可以完成从需求描述到代码生成的整个开发流程。