AI 没让编程变简单,只是更难了
AI makes programming differently difficult

别再天真地以为 AI 能一键搞定所有代码了。这篇文章犀利地指出,AI 并没有让编程变得更容易,它只是把困难换了一种形式。以前我们头疼的是如何写出正确的语法和逻辑,现在挑战变成了如何精准地描述需求、如何鉴别 AI 生成的代码陷阱,以及如何理解那些看似完美实则暗藏玄机的解决方案。编程的门槛或许降低了,但驾驭 AI 协作的门槛却悄然抬升。这不仅是工具的升级,更是思维方式的彻底重构。
AI 并没有让编程变得更容易,它只是让编程变得以不同的方式困难。
HN 评论区
141- bnfcl
文章核心观点的引用:
换句话说,难点从记忆(“我该怎么写这段代码?”)转移到了判断(“这真的合理吗?”)
这非常正确。但要评估它是否合理,你首先得有写代码的经验。我很庆幸自己在 15 年前就学会了软件开发,而不是今天。AI 是一种超能力,但如果没有经验来引导它,它很快就会出大乱子。
- nasretdinov
这绝对不符合我的经验。无论用什么模型,只要我在处理重要的事情(毕竟没什么理由去处理不重要的事),我就在乎代码的正确性和可读性。虽然 LLM 在生成一次性丢弃的代码时很棒(尽管这点也有争议),但它们无法与资深专业人士编写的代码相抗衡。无论我尝试多少次将写代码的工作委托给 LLM,几个月后我总是会后悔,因为它们更容易出错,而且我根本不知道里面发生了什么。
未来的方向是利用 LLM 做它们擅长的事。具体是什么还在探索中。我在用 LLM 审查代码(这与 Primagean 发现漏洞约 50% 的准确率相符,这已经非常好了)以及向我解释陌生概念方面积累了很好的经验。
我坚信代码本身必须是 100% 由人原创的。如果不是这样,且你依赖 LLM 生成大量代码,说明你还没有构建足够的抽象层来让这种生成变得不必要。
- FinnLobsien
写作也是如此:AI 生成的文字表面看似连贯,但因为缺乏真正的洞见,根本无法修改。
现在,打磨一个连贯的观点、挑战自己的假设,以及决定(不)包含哪些内容的编辑决策变得超级重要,因为它们不再是写作过程的副产品。
- dsmurrell
不知为何,阅读那些针对你的指导生成的复杂计划,然后不断做决定,感觉更累了。这让我想起艾伦·沃茨(Alan Watts)讲的一个段子……
一位农夫雇了一个农场帮手,很快发现他是个效率惊人的工人。
第一天,农夫让他锯木头,这帮手锯的木头比任何人都多,史无前例。太棒了——但所有的伐木工作一天就干完了。
于是第二天,农夫让他去修篱笆。农场周围有各种各样破损的篱笆。同样,这帮手一天就把所有活干完了。
农夫心想:“这家伙我到底该怎么用?”
第三天,他把帮手带到地下室说:“看,这是这次收获的所有土豆。我要你把它们分成三组:我们要卖的、我们要留作种子的,以及我们要扔掉的。”
他让帮手自己去干。到了晚上,这帮手回来却说:“行了,老板,我辞职了。”
“哦,”农夫回答,“你不能辞职。我从来没遇到过这么优秀的工人。我给你加薪——为了留住你,我什么都愿意做。”
帮手说:“不。修篱笆和砍木头都还行,但这土豆的活儿,就是一个决定接一个决定,没完没了。”
- austin-cheney
我正在看副标题:
软件开发的未来属于那些能够大规模清晰思考、在快速变化中保持持久心智模型、并将机器生成的输出整合到人类主导意图中的人。
这难道不是一直如此吗?也许我只是因为我是个笨拙的陆军人员,把这视为理所当然,而这正是我们这类笨拙的陆军人员看待世界的唯一视角。
每当编程与 AI 联系在一起时,感觉对话总是忽略了人的因素。如果你仅从人类行为的角度来看,我看不出 AI 带来了什么新东西。
也许是因为我用 JavaScript 写代码,也许在其他编程领域情况不同。在 JavaScript 领域,这一直是一场奔向底线的竞赛。产品从来不是目标。目标永远是招聘,并将代码视为一种旨在优雅且频繁失败的商品。所以,当我看到 AI 为开发者写代码时,我不禁要问:有什么不同?Angular 和 React 之所以流行,不正是因为它们抽象掉了写代码的过程吗?