AI News HubLIVE
站内改写5 分钟阅读

不用AI编程:一种革命性的新工作方式

作者自称是“早期采用者”,尝试了完全不用AI辅助的编程方式,并发现这种方法能增进理解、提高代码质量、简化逻辑、加快交付、节省成本、提升工作满意度,还能降低AI相关疾病风险。文章以幽默口吻探讨了手动编程的好处。

来源Hacker News AI作者: aard

在过去大约20年的时间里,我尝试了一种新的编程方式——令人惊讶的是,这种方式完全不使用任何大语言模型或AI编码代理。只有我、一个键盘,以及一个IDE或文本编辑器,逐行编写代码——就像输入函数和花括号那样。

我知道这听起来很古怪。我是什么,某种极简主义者吗?实际上,我算是所谓的“早期采用者”。我在尝试一些不同的、激进的东西,我知道不是每个人都能领会这种愿景。大多数人认为编程和AI是一回事。但我在这里要告诉你,无AI编程是真实存在的,是可以做到的,并且有一些令人惊讶的好处。

让我们来谈谈这些好处。你甚至可能决定自己也要尝试一下无AI编程。(也许只是周末试试,以防它成为未来的潮流。)

1. 加深理解

当我手动编程时,我不能简单地对我的代理说:“修复这个隐藏提交按钮的bug”或“确保这个异步任务更新数据库”。根本没有代理!相反,我必须仔细阅读、测试和调试代码,以建立它如何工作的心智模型。这很难做到,但我已经相当擅长了。在这个过程中,我注意到:

  • 我的心智模型比AI准确得多。一旦我彻底检查了代码,我就能对其行为做出各种有用的预测。
  • 当代码有bug或不符合规范时,我常常能在脑海中想象出需要更改的确切文件或方法。这难以描述,但极大地加快了我的工作流程。
  • 在阅读代码时,我不可避免地会发现一些我本没计划学习的东西,因为代码都是相互关联的。这些“额外收获”后来经常派上用场。
  • 我经常注意到代码可以改进的地方,使其更可靠或更易用。
  • 当人们询问关于应用程序的问题时,我有时能脱口而出答案,无需咨询任何聊天机器人。
  • 最终,我达到了一个程度——找不到更好的词——我是代码库及其所用技术的专家。这种专业知识随时随地免费可用。不需要任何代理。它就在我的大脑里。

你可能会认为这听起来很慢,但实际上,我在一个代码库上工作得越久,我构建它的速度就越快。AI在快速搭建原型方面仍然更快,但我发现自己也能独立构建那些原型,因为没有什么能替代深刻、真正的理解。

我利用这种理解在工作上变得极有价值,多年来获得了多次晋升和赞誉。不过,不要告诉我的同事我在不用AI编程——他们可能会视其为不公平的优势。

2. 可用的软件

世界对不怎么好用的软件有着巨大的胃口,我承认,稍加努力,我甚至能手动写出不好用的软件。但大多数时候,经过少量测试和调整,我的无AI代码运行得相当好。而且由于某种神秘的效果,它随着时间的推移越来越好。我的很多代码可以放着不管,持续运行数月或数年。我没开玩笑。我觉得自己发现了一个禁忌的秘密:拥有不需要不断丢弃和重新生成的代码。

当我的代码有bug时——老实说,不管用不用AI,bug总是存在的——我对修复它们的能力越来越有信心。而不是与聊天机器人来回折腾,它编造几个错误解决方案,最后才写出足够多的代码来掩盖问题。我使用调试技术逐步缩小bug来源,直到我确定它在哪里,然后高置信度地修复它。有时修复只是一行代码,如果你能相信的话。

我想我终于理解了那些自己缝制衣服或制作家具的人。结果就是质量更高。想象一件穿了几次都不会散架的T恤!当然,前期投入更多,但质量无可争辩。

3. 更简单的代码

你可能没有意识到,AI常常把简单的任务复杂化。有时它会为你写出三页的数据结构和算法,而你需要的只是一个if/else块。手工编写代码教会我把复杂性视为负债而非资产,并尽可能保持简单。

当你不用AI编程时,你自然从底层开始,只编写你需要的简单代码。你随时可以扩展和构建;而事后简化要困难得多。

我有时发现我的无AI代码如此直接,以至于连不编程的人都能理解。我不是说他们把代码输入ChatGPT——他们只是阅读并理解它在做什么。听起来难以置信,但代码真的可以那么简单。

为什么你该关心代码是否简单?一方面,更简单的代码更容易预测和调试。当你不用AI编写代码时,你可能发现后来不需要AI来向你解释;你可以直接回去,快速回忆并更新它。另一方面,更简单的代码首先就不容易出问题。没有那么多的代码行可能出错。

这违反直觉,但我现在把无AI编程的额外阻力视为双赢。它让我成为更好的程序员。它促使我保持简单。它帮助我对没有价值的事情说不。

你可能仍然认为用AI会快得多,但这不是重点。举重运动员如果没有负重会移动得更快。冷水浴如果水更暖会更舒服。创业如果客户期望更低会更容易。让事情具有挑战性的东西,也可以让事情变得有价值。

4. 更快的交付

有时当我告诉人们我不用AI编程时,他们露出担忧的表情。他们想知道我是否因为功能交付太慢而经常惹麻烦。想象一下他们听到我实际上交付得更快时的惊讶。

编程是我用AI时工作流程中最快的部分,现在仍然如此。事实证明编程根本不是瓶颈。我大部分时间花在其他事情上:理解需求、解决歧义、等待反馈、测试和验证、与其他团队协调、参加会议、项目规划等等。是人的事情慢,而不是计算机的事情。

所以这就解释了我为什么不慢。但我为什么更快呢?

一方面,当我手动编程时,我被迫在过程中做出决策。不可能编写模棱两可的代码。当我不知道正确的决策时,我必须停止编程去寻找答案。前期较慢,但到代码完成时,我知道我们做了我们想做的事。歧义和未解决的问题在流程早期就被解决了,远在代码发布之前。这从长远来看节省了时间。

还有我提到的其他方面。我的速度和专业知识随时间增长。代码更简单。它工作得更好。所有这些都有助于更快的交付。当然,AI打字比我快。但回想起来,很难相信我们曾认为打字速度是问题所在。

5. 成本节约

也许说出来不礼貌,但我觉得AI公司总是想赚更多钱。我的聊天机器人的每次更新似乎都专门设计来消耗更多token。

我知道你在想什么。“无AI编程用多少token?”答案简单得令人惊讶:一个都不用。

我交付了多个完整的应用程序,没有为一个token付费。我也没有运行某种法律上可疑的免费试用方案——我交付那些应用程序时没有使用任何token。我编写软件不需要任何人的许可。我可以在没有互联网连接的Linux上使用开源文本编辑器编写软件。这真是解放。

老实说,我用普通大脑替代聊天机器人省下的钱相当可观。我可以免费编程。我几乎还清了债务。而且我还算比较温和的——我的一些同行在token上的花费比我的房贷还多。

6. 更高的工作满意度

还记得我之前提到的那些自己缝衣服或做家具的人吗?我注意到的另一件事是他们乐在其中。对他们来说,这既有趣又有回报。我从未听过在服装厂工作的人这么说。

AI编程并不是世界上最糟糕的工作,但肯定不令人满意。这是工厂工作。苦差事。有时感觉更像是在教补习班而不是创造性工作;你不断审查AI的工作,留意它常犯的错误,让它重做直到正确。而且至少在教学时,学生可以学习提高;你可以与他们建立有意义的关系。AI只是……继续做AI。

不用AI编程感觉像魔法。过程中有创造的乐趣,有成就感和所有权。它既是艺术也是科学。我不是为了满足老板而产出代码,我在构建有用的东西。我也为此自豪。那种自豪激励我让它更好,在它出问题时修复它,在不上班时思考它。

有商业头脑和 hustle 文化是一回事。热爱你的工作是另一回事。我不羞于说我热爱我的工作。

7. 更低的AI相关疾病风险

似乎每个人都接受了AI精神病和AI倦怠是生活的事实。谁没有在通宵和聊天机器人交流后住过院?早期关于AI相关认知下降的报告也没有引起多少关注。

我认为不必如此。从我小小的无AI编码社区中的轶事来看,我们相当确定如果你不使用AI,你患AI相关疾病和伤害的风险降为零。非凡的主张需要非凡的证据,我们显然需要科学研究来确认,但数学上是说得通的。

再次,我意识到我处在边缘。但是放弃AI并不不同于我们熟悉的其它风险规避策略。我不吸烟。我不迎面驶向车流。我吃蔬菜。AI禁欲只是保护我健康的另一种方式。

AI使用的风险可能很小。大多数吸烟者不会得肺癌;大多数AI用户不会得精神病。但每一点都很重要。健康是无价的。

接下来是什么?

我的一些朋友认为不用AI编程是滑坡。接下来是什么?不用IDE编程?用低级编程语言编程?用纸笔编程?

事实上,我不知道。如果AI不再流行,我赖以生存的职业生涯会怎样,这很难说。当人们可以自己编写代码而不需要……

[原文截断以控制AI成本]