写代码 25 年后,资深程序员发现:AI 助手或许还是个“半吊子”!

360影视 欧美动漫 2025-04-02 19:53 2

摘要:AI 编码助手的出现为软件开发带来了前所未有的便利,从自动补全代码到帮助学习新技术栈,AI 似乎正在改变开发者的工作方式——然而,这种工具究竟是生产力的助推器,还是另一个需要谨慎对待的“黑箱”?

【CSDN 编者按】AI 编码助手的出现为软件开发带来了前所未有的便利,从自动补全代码到帮助学习新技术栈,AI 似乎正在改变开发者的工作方式——然而,这种工具究竟是生产力的助推器,还是另一个需要谨慎对待的“黑箱”?

作者 | Mathijs Lagerberg 翻译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

我知道,现在网上关于 AI 的文章已经泛滥成灾。但我还是想分享一些不同的观点,因为当前舆论几乎都在炒作,缺少批判性思考。所以,下面就来说说我的看法。

软件开发世界的 FUD 现象

当下,软件开发领域正被 FUD 情绪(恐惧、不确定性和怀疑)主导。各大管理者每天都被“生产力提升 10 倍”、“传统开发者即将消亡”、“AI 代理之间可以自主协作”等帖子轰炸,而这其中甚至没有一个真正的人类开发者。

AI 的淘金热推动着各大公司仓促推出 AI 相关功能——即使这些功能用户并不需要。谁都不想错过风口,所以所有人都蜂拥而上,不假思索地加入这场 AI 竞赛。

从“小小开发者”到今天

我仍然清晰地记得自己初学编程时的场景:在父亲的 486 电脑上,手边只有一本介绍 DOS 命令的书。我借来一本关于 QBasic 的书籍,并由此写出我人生的第一个游戏。那时候没有语法高亮,没有自动补全,没有 Stack Overflow 这样的网站帮我答疑解惑,更不用说 AI 了。

如果遇到问题,我只有两个选择:要么在代码里插入 PRINT 语句进行调试(当然,这需要极大的耐心),要么跑到图书馆查阅资料。调试的过程也相当原始:运行程序,报错,查找错误,修改代码,然后再次运行,心里默默祈祷它能顺利执行。

今天我们习以为常的开发工具,当年都曾是惊人的技术突破。我至今还记得自己从 Notepad 切换到 ConTEXT 编辑器时的兴奋感——它居然支持语法高亮!后来,我发现了 Experts Exchange(甚至是在它还没有加上连字符的年代),从此不必再在 Lycos 或 AskJeeves 搜索半天才能找到答案。再后来,Stack Overflow 诞生,几乎所有问题的答案都可以在上面找到

然后是 IDE 时代的到来。我从文本编辑器转向 Eclipse,它不仅是个编辑器,而是一个真正的集成开发环境。Eclipse 可以帮你重构代码,在运行前就能提示错误。你可以通过 Ctrl+点击跳转到类或变量的定义,甚至可以直接在 IDE 里阅读文档。匹配括号自动高亮,缩进也不再需要手动调整——我需要手动查找的东西越来越少,代码编写的过程也越来越高效。

简而言之,我不再需要用大脑时刻保持代码的整体概念,开发过程变得更加流畅。

框架和 SaaS 平台也同样如此。如今,即便你不是 Linux 服务器运维专家,也能搭建出一个可扩展的云端服务;你甚至不需要学习 SQL,就能在 Firebase 上构建一个完整的后端。此外,现代开发者也无需再手动管理内存释放。

不是革命,而是进化

现在,我们又迎来了一个新浪潮——AI 辅助开发。市场营销宣传铺天盖地,声称 AI 可以带来“生产力的爆炸式提升”。但在我看来,这只是开发工具进化链上的下一个环节。

既然 Eclipse、Firebase 和 Stack Overflow 并没有取代开发者,那么 AI 也不会让我们失业。相反,它为软件开发真正重要的部分腾出了更多空间:创造力、创新、理解用户需求以及解决复杂问题。甚至可以说,AI 真正提升的并非生产力,而是人们的预期。现在,我们能用更短的时间做出更精美的产品,或者让经验不足的开发者更快地实现一个原型——但归根结底,完成一个项目所需的程序员数量,一个都不会少。

在这个行业摸爬滚打 25 年,我悟出了一个铁律:理解事物的真正本质,才是无可替代的能力。

AI 开发工具的正面价值

别误会,我对 AI 也是充满热情的。只是这些工具真正的威力,往往体现在细节上。

比如,那些让人抓狂的模板代码,你已经写了上千遍?只需 Tab-Tab-Tab,它就自动补全了。再比如,那些重复但又略有不同的代码模式,无法直接复制粘贴?AI 能理解你的意图,并自动调整代码……它就像是一个智能的自动补全助手,不仅知道你要写什么,还能理解你为什么要这么写。甚至,想要添加一门新语言的翻译也变得轻而易举。

最让我惊艳的,是 AI 在学习新框架时的辅助作用。曾经,ChatGPT 帮助我在两周内掌握了 Flutter 开发,后来同样高效地助我攻克 Express、Wagtail 和 LangChain 等全新领域。于我而言,AI 就像是一个私人导师,能精准匹配我这种资深开发者的认知层级——跳过基础教程,直击框架间的差异化要点。

为什么我还是不太兴奋?

大半辈子前,我曾修过 AI 相关的课程,坦白说,这些年 AI 技术确实有了惊人的飞跃。但 AI 本身并不是什么新东西,它甚至在技术上也没有发生质的变化。归根结底,AI 仍然只是模式识别,这种方法已经被广泛应用了很多年。通过识别模式,AI 也可以推测出下一个模式,进而“预测”接下来的步骤。

这一原理早已被社交媒体算法所利用——它们会不断向你推荐你可能喜欢的内容,广告商也通过这种方式预测你的购物需求。而 ChatGPT 只是逐个 token 预测接下来的单词,这并不什么新鲜功能,你的智能手机键盘早也早就具备了类似功能。真正的区别在于,如今我们投入了海量的计算资源和能源,使 AI 跨过了一个实用性的门槛,从而变得更加实用。

在过去半年里,我密集地使用了 Codeium、ChatGPT 和 Windsurf 等 AI 辅助工具。它们确实令人印象深刻——但作为编程的“智能辅助”,它们的价值并不算颠覆性创新。如果非要列出我会带去荒岛的十大开发工具,AI 绝对不会在这个名单里。

AI 开发工具的问题出在哪?

这些工具的能力很强,但正因为如此,它们也很危险:它们能生成看起来很专业、能运行、甚至很优雅的代码,却也可能埋着致命的安全隐患。

拿我在 Express 上的实验来说,AI 生成的代码运行得非常完美,但我一眼就看出,它完全没有任何 SQL 注入防护,连最基本的安全措施都没考虑。换句话说,这个网站的安全性糟糕透顶,上线不到一个小时,黑客就能轻松入侵。我向 ChatGPT 指出了这个问题,它立刻补充了安全补丁——这说明它确实知道该怎么做,但它并不会主动去做。

当然,这个问题可以通过更精准的提示词(prompt engineering)来改善,但这本质上仍需要开发者具备专业知识——就像无代码(no-code)平台永远无法取代传统编程一样。构建一个简单、粗糙的原型很容易,但要构建一个真正安全好用、可维护的系统,仍需人类的深度理解。

另一个致命问题是上下文衰减。所有用过 AI 编程助手的人都知道,随着代码量增加,它们的能力会迅速下降,哪怕它们的上下文窗口很大。因此,如何精准地向 AI 提供关键信息,让它帮你解决具体的实现细节,至关重要——换句话说,这正是人类开发者的强项。

这绝非一个小 Bug,它揭示了 AI 始终是需配合专业知识的工具。GitHub 和 Stack Overflow 早就有海量代码,但使用者仍需拥有判断力。从复制粘贴到提示工程,本质仍是相同行为——盲目信任一直以来都是很糟糕的做法。

除此潜在的安全隐患,AI 还存在严重的幻觉(hallucination)问题。以我为例,AI 助手曾写出根本不会排序的排序算法、调用过不存在的函数名、因上下文过载直接把多个函数体替换成"your code here"的注释……最离谱的是,它们还在 JavaScript 文件里写 Python 代码!最终,我花了比自己写代码更多的时间来清理 AI 生成的错误。更搞笑的是,当 AI 服务器短暂断线时,我索性直接放弃了 AI 助手,竟发现自己写代码反而更快——至少不会那么让人崩溃。

但 AI 的发展速度不是很快吗?

其实,并不算快。在 ChatGPT 横空出世带来的最初惊喜之后,AI 的发展并没有突飞猛进,甚至有些停滞不前——因为 OpenAI 和 Anthropic 已经找不到新的数据源来训练模型,整个互联网已经被“读”完了。更糟糕的是,随着越来越多低质量的 AI 生成内容充斥网络,训练新模型只会变得更加困难。就像不断用复印机翻印同一份文件,最终只能得到越来越模糊的版本。

当前 GPT 模型本质上仍是某种“黑箱”,它们只是尽力预测模式中的下一个步骤。所谓"高级推理"之类的功能并未改变底层原理,只是在外层添加了训练轮和补丁,仍依赖于底层的黑箱架构,而代价是极高的能耗。就像你家的水管:虽然能出水,但流着褐色液体,偶尔还会从插座里喷出来。你可以不断叫水管工来修补,但也许最好的办法是直接喝瓶装水。水管工或许能一直修下去,但水质永远无法真正纯净。

总结

最后,请容我再次强调:AI 编程助手并非银弹。

很多 LinkedIn 上的网红不愿承认这一点,因为 AI 又酷又潮,甚至对许多人而言甚至是唯一亲自接触过的"智能"。但那些每天真正构建产品的开发者心知肚明:AI 也许让编码更快,但它并不会减少对开发者专业能力的要求,反而可能让这种要求更高。因为现在,你不仅需要会编程,还需要能分辨 AI 何时出错。而这并不容易——毕竟,阅读代码本来就是一件很难的事。

优秀的程序员,最擅长使用自己熟悉的工具。我认识的一些顶级开发者依然喜欢用 Vim 进行编码。如果你不熟悉 Vim,我可以介绍一下:它是一个看起来像 90 年代黑客电影里才会出现的神秘编辑器,完全不包含任何 AI 功能。但就我个人而言,我更喜欢用纯粹的 VSCode,而不是带 AI 的 VSCode(比如 Windsurf),因为没有 AI 在一旁干扰时,工作反而会更顺畅。

当然,我偶尔还是会用 AI 编程助手。但它永远只配坐在“副驾”的位置——因为真正掌握方向盘的人,必须是你自己。

4 月 2 日 20:00,CSDN《万有引力》栏目特别邀请到 OpenManus 项目一作、MetaGPT 开源核心贡献者梁新兵,DeepWisdom 算法研究员、OpenManus 核心作者向劲宇相聚 CSDN 视频号直播间,在 CSDN &《新程序员》执行总编、《万有引力》主理人唐小引主持下,一起聊聊 00 后程序员的故事,以及 OpenManus 背后的秘密!

来源:CSDN一点号

相关推荐