新智元报道
编辑:艾伦
火遍全网的「氛围编程」(Vibe Coding),让人人都可以上手编程,写出自己的程序了。然而,作为Vibe Coder,和真正的软件工程师之间,还存在哪些差距呢?
Cursor等智能IDE相继推出,带来了更智能的编程体验。
与此同时,Claude 4等基座大模型的编码性能不断提升。
再加上Andrej Karpathy的大力推广,Vibe Coding迅速走红,已成野火燎原之势。
Vibe Coding仿佛直接抹平了普通人和专业软件工程师之间在之前难以逾越的巨大鸿沟。
然而,事实真的有想象中那么轻松美好吗?
掌握了Vibe Coding,和专业的软件工程师之间,还有哪些差距需要弥补呢?
就在昨天,The Verge发表了一篇文章,为我们解析了这个问题,帮助我们认清现实,补上差距。
人人都能写代码
但不等于会工程
很多人刚开始Vibe Coding时,都会遇到相似的一幕:
AI不止帮你改了你需要它改动的地方,还把其他你不想让它改动的地方也给改乱了。
这不是你的错,是AI目前还不够聪明。
AI需要你下达尽可能精确的命令,才能取得足够接近你想要的效果。
具体到编程上而言,你需要收紧问题空间。
比如,你可以进行类似将代码分成若干小块,每块由约十几行代码组成,让AI并行修改这些代码。
这种做法类似于chunking,不是将一大段人看了都头疼的代码直接给到AI,AI就只能串行修改,反而容易犯错。
不要过分高估AI目前的能力,帮它分担一部分它做得不够好的工作也是为了让你避免浪费更多时间在无效的debug上面。
上面只是帮你写好一段程序的建议。
软件工程,也是复杂工程
真实的软件工程,往往由数量庞大、组织架构复杂的若干个程序组成。
通过Vibe Coding,遵循了前面的建议,你在上手后可以相对较为轻松地搭出一个能跑起来的程序。
然而,对于软件工程这个复杂系统工程而言,这仅仅是第一步。
我们可以用机场作为一个形象的类比。
开发一个新产品特性,类似于在机场新开一个VIP休息室;
更复杂的项目,类似建第二航站楼;
而Vibe Coding构建的小型程序,类似于在机场开一家快闪店,自成一体,用完即走。
Vibe Coding现在可以构建小型程序了,但软件工程中最棘手最耗时的永远不是这一步,而是和其他程序有机连接后保证整个系统的正常高效运转。
实现设计模式本身,也是一个复杂的问题。
对程序员的「品味」,要求变高了
Linux之父Linus Torvalds,作为这个应用最广泛也最为复杂的开源操作系统的核心开发工作组织者,认为软件开发中「品味」也很重要。
Linus Torvalds
小到语法规范和算法复杂度,大到整体架构,「品味」的影响无处不在。
好的软件架构并不是一蹴而就的,而是无数合理的微小决策组成的,而这是大模型很难通过零样本学习完成的。
这既要依赖既有知识的积累,也要依赖人类的直觉,而这种直觉是需要大量实战来培养的。
AI使得编程对程序员的要求变高了,以往更多是软件架构师要负责思考的问题,也被逐级「下放」了。
AI代劳了初级程序员的工作,就像给所有Vibe Coder都配备了一个初级程序员助理一样。
这并不意味着你少了很多工作量,而是你要学会在Vibe Coding中与AI有效协作:
与它高效沟通,给它具体而精确的工作指引,把省下来的时间花在思考更宏观也更重要的事情上。
编程的未来
进化还是消解
编程这门手艺的发展史,就是「抽象升级史」:
从毫无可读性的机器语言,进化到便于人类记忆的汇编语言,再进化到接近人类语法的C语言这类高级语言,伴随着更易懂的Python的语言演进,最后我们被带到了人人能用的AI这里。
这其中的进化程度,可以类比成开车回家。
机器语言,直接是大脑下达命令后通过电信号操作相关肌肉进行运动,对人类没有可读性。
汇编语言,类似于对车子先打方向盘3秒进行转向,再踩油门前进10米这类具体操作。
到了C和Python这类高级语言,直接将上述动作封装成了转弯这个函数,需要时直接调用「转弯();」即可。
最后是如今的AI,我们只需要表达最根本的需求即可:「送我回家。」
剩下的一切,具体如何实现,交给AI来思考和处理。
当然,这是理想中的情况,现实是受制于大型工程的复杂性和上下文长度,还没有足够多高质量的数据来训练AI完成过于复杂的宏大工程。
毕竟,面临复杂工程,人类也是一头雾水,做不到一蹴而就,很多时候也是边试错摸索边前进的。
要完成复杂工程,即便有了强力AI加持,仍离不开老练的高级软件工程师依靠知识、经验、直觉。
然而,要成为高手,就免不了从新手开始,吃那些必须吃的苦,踩那些绕不开的坑。
你还是要在一次次挫败中尝试「手搓红黑树」、尝试抛开AI独立写bug-free的小型程序,积累自己的编程经验。
一颗红黑树
为了成为高手,AI是你的强力助手和答疑导师,但绝不能替代你亲自学习这些基础知识。
经验源于实践,只通过看和想是无法真正学会编程的。
Vibe Coding
赋能与挑战并存
总结下来的结论就是:AI不会让软件工程消亡,至少中短期内,经验丰富的高级软件工程师的地位,是AI无法动摇的。
Vibe Coding让编程变得容易,却少了自己摸索能得到的锻炼。
Vibe Coding为我们带来的真正的挑战是,学会在便利中保持清醒,不让理解力和判断力被AI「偷走」。
对我们而言,或许下一次Vibe Coding时,不要只看是否「0 Error(s), 0 Warning(s)」了,而应该试着去理解AI为什么这样写代码。
理解,才是从「会写代码」到「会做工程」的关键,才能让我们从Vibe Coder蜕变成真正的软件工程师。
参考资料:
https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution