本集简介
双语字幕
仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。
在科技圈里,最近一篇由程序员兼创业者拉尔斯·费写的随笔引发了大量讨论。
Within technology circles, there's a lot of buzz right now about a recent essay written by a professional programmer and entrepreneur named Lars Faye.
文章开头描述了当前人工智能驱动软件开发的现状。
It opens with the following description of the current state of affairs of AI driven software development.
我来念一下这段。
I'm going to read here.
目前这种工作流程有各种形式,但总的来说,就是有人先定义项目需求,制定计划,然后像拉老虎机一样不断重复迭代,动用多个智能代理,直到完成为止,而在这个过程中,负责统筹的人和实际生成、提交的代码之间的距离却越来越远。
This workflow takes many shapes at this point, but in general, it is a process where someone defines the project's requirements, generates a plan, and then pulls the slot machine lever over and over iterating and reiterating with often multiple agent instances until it's done, all the while putting a growing distance between the orchestrator and the code that is being generated and committed.
这种全新的编程方式,让整个行业都兴奋得不得了。
Now this new approach to computer programming has thrown the industry into a frenzy of excitement.
我是说真的特别兴奋。
And I really do mean excitement.
我来念一段几个月前有位开发者写的随笔里的原话。
Let me read you a real quote from an essay that a developer posted just a couple months ago.
我念一下这段。
And I'm reading here.
能活在这个时代真是太棒了。
What a fantastic time to be alive.
有了Claude Code,说实话,我感觉自己成了十倍效率的开发者。
With Claude Code, I have become, if I do say so myself, a 10x developer.
有时候甚至觉得像一百倍。
Sometimes it feels like 100x.
这一切都让我觉得特别激动、特别震撼。
I find it all thrilling and amazing.
看着Claude写代码简直让人着迷——我本来觉得要花一周才能完成的任务,它一下就搞定了;我卡了三天都调不出来的复杂bug,它转眼就解决了,简直让人不敢相信。
It's all intoxicating to watch Claude code work, to ask it to do something that I know would take a week or to have it figure out some complex bug that I would have taken three days to debug is almost too much to believe.
我都不知道该用什么词来形容了。
I don't have the superlatives to describe it.
这种说法让我想起了什么?
Now what does that rhetoric remind me of?
天哪。
Woah.
这可是完整的彩虹啊。
That's a full rainbow all the way.
双层彩虹。
Double rainbow.
天哪。
Oh my god.
全程都是双层彩虹。
It's a double rainbow all the way.
哇。
Woah.
这也太震撼了。
That's so intense.
好吧。
Alright.
说正经的,这个前景预示着软件开发领域将发生巨大变革。
Joking aside, this vision points to a massive change for the world of software development.
在这个新世界里,没人需要再去学写代码了。
In this new world, no one would need to learn to code again.
英语将成为新的抽象层。
English will be the new abstraction layer.
你只要说清楚想要什么,AI就会帮你生成。
Just explain what you want and the AI will create it.
结果就是,数百万高薪且技术精湛的软件开发者,会被少数几个靠大量咖啡续命、指挥着一大群不知疲倦的代码生成代理的“调度员”所取代。
And as a consequence, millions of well paid and highly skilled software developers will be replaced by a small number of hyper caffeinated orchestrators who manage hoards of tireless coding agents.
但这个愿景真的准确吗?
But is this vision accurate?
今天是周四,也就是该做这档节目的AI现实核查环节了,正好借此机会仔细看看。
Well, it's Thursday, which means it's time for an AI reality check episode of this show, which is a good opportunity to take a closer look.
确实,如果我们回到Lars Faye的文章,很快就会发现,他并不认同我们会走向一个没有代码的世界。
And indeed, if we return to Lars Faye's essay, we quickly find that he's not a believer in the idea that we're on the path to a world without code.
相反,Faye认为这种新的软件开发方式不可持续,他在文章标题中直截了当地表达了这一观点:代理式编码是个陷阱。
If anything, Faye thinks that this new style of software development isn't sustainable, a belief he captures bluntly in the title of his essay, agentic coding is a trap.
这看起来是一个触及许多关于人工智能、知识工作、炒作与现实问题核心的论点。
Now this seems like an argument that gets at the heart of so many issues about AI and knowledge work and hype and reality.
所以很明显,我们需要仔细审视一下,而这正是我们接下来要做的。
So clearly, we need to take a closer look, and that's exactly what we're gonna do.
我是卡尔·纽波特,欢迎来到《深度思考》,这是一档为在分心的世界中寻求深度的人打造的节目。
As always, I'm Cal Newport, and this is Deep Questions, the show for people seeking depth in a distracted world.
那么,拉斯·费伊对当前智能体接管所有编程工作的愿景有什么看法呢?
So what's Lars Faye's issue with the current vision of agents taking over all coding?
我想再给你读一段他文章里的引文。
I want to read you another quote from his essay.
要想在这种使用代码代理的方法上取得成功,关键在于一个非常重要的因素。
Being successful with this approach to coding agents hinges on a rather crucial element.
只有具备批判性思维、并且能自如地在架构层面工作的资深开发者,才能在那些生成的成千上万行代码酿成大祸之前,就发现其中的问题。
Only a skilled developer who's thinking critically and comfortable operating at the architectural level can spot issues in the thousands of lines of generated code before they become a problem.
然而颇具讽刺意味的是,事实证明,AI工具恰恰会对个人的批判性思维和认知清晰度产生负面影响。
Yet in an ironic twist of fate, it's the individual's critical thinking skills and cognitive clarity that AI tooling has now been proven to impact negatively.
费耶进一步指出,AI正在削弱其自身有效使用所需技能这一说法,并非空穴来风。
As Faye elaborates, this idea that AI is undermining the very skills needed to use AI effectively is not an abstract fear.
这实际上正在大规模发生,程序员们也开始越来越频繁地讨论这个问题。
It's actually happening right now and at wide scale, and it's something that programmers are really starting to talk a lot about.
为了支持这个观点,费耶引用了Reddit上大量帖子,人们都在担忧 именно这种规模的问题。
To support this claim, Faye points to a bunch of posts from Reddit where people are worried about exactly the scale.
我想念几条费耶提到的帖子标题和原文给你听。
I want to read you a few headlines and quotes from that Faye points out here.
好的。
Okay.
这是其中一条。
So here's one.
标题是:我正因AI而丧失编程能力。
The headline is losing my ability to code due to AI.
帖子接着说:我觉得自己的编程水平正在明显下滑。
And the post goes on to say, I feel like my skills are really deteriorating.
根本不懂语法,这本身就是一个问题。
I think that inherently not understanding the syntax is a problem in itself.
我可能漏掉了什么,但很多时候你得花大量时间检查AI有没有搞砸,或者埋下一些隐蔽的bug,你得真正懂这门语言,知道怎么写。
I might be missing something, but a lot of it takes a lot of time to check that AI hasn't made a mess or create subtle bugs and you have to understand the language and how to write in it.
明白了。
All right.
这儿还有Reddit上的另一个标题。
Here's another headline from Reddit.
因为依赖AI而觉得自己变笨了、技能在退化。
Handling feeling dumber or like losing skills due to the need of using AI.
这条帖子里有这么一段话。
That post includes the following quote.
每次用AI做点什么,我都觉得自己在丢掉本事,越来越不像个称职的程序员。
Every time I use AI to do anything, I feel like I'm losing my skills that I and that I become a worse professional.
另一个Reddit帖子的标题是:让AI完全代写代码,把我脑子搞瘫了。
Another Reddit post is titled, Letting AI do 100% coding fried my brain.
帮帮我。
Help.
帖子接着说,最近我发现自己在整体认知能力和解决问题的能力上都出现了困难。
It goes on to say, lately, I found myself struggling with my general cognitive skills and problem solving skills.
这些例子讲的都是有经验的开发者正在丧失思考和编程的能力,那初级开发者呢?
Now these examples are about established developers who are losing their ability to think and code, but what about junior developers?
正如费伊指出的,这个问题变得更加严重了。
As Faye points out, the problem here becomes even worse.
只有亲自从零开始写代码,才能真正提升对代码的理解和审查能力。
Struggling to write code from scratch is how you get better at understanding and reviewing code.
如果你跳过自己动手的阶段,直接跳到代码审查,那就什么基本功都没有了。
If you skip the struggle step and jump straight to the code review, you don't have any skills to fall back on.
明白吗?
Alright?
费伊提到了两个最近关于这种现象的Reddit帖子标题。
Here are two recent Reddit headline headlines about this phenomenon that Faye highlights.
我团队里的新人写代码很快,但只要是自己没写的代码,他们就完全不会调试。
The first is juniors on my team ship fast but can't debug anything they didn't actually write.
还有个标题说,招了个靠AI学编程的新人,离开AI就不会调试了,也不知道该怎么帮他们。
Another headline says hired a junior who learned to code AI, cannot debug without it, don't know how to help them.
在我们计算机科学领域,这种现象有个众所周知的名字,叫‘大三瓶颈’,对吧?
Now in my world of computer science, this is a well known effect called the junior year wall, right?
它描述的是CS学生在课程中过度依赖AI完成基础编程任务后发生的情况。
Which describes what happens in a CS curriculum when a CS student uses AI to do most of their basic coding related classes.
等到大三遇到真正有挑战的课程时,他们基础不牢的问题就暴露了,立马就卡住了。
But then when they face challenging classes during their junior year, their lack of understanding catches up to them and they struggle.
Faye的意思是,这种‘大三瓶颈’现在正蔓延到整个编程行业,而且是个大问题。
Faye is saying that this is basically the junior year wall effect is basically happening in the whole coding industry writ large and that this is a problem.
所以我读完这篇文之后,问了位资深开发者——他有三十年经验——这和他现在的观察是否一致。
So after I read this essay, I asked a veteran developer I know, someone with thirty years of experience, whether or not it matched his current experience.
他说,确实差不多就是这样。
And he said it largely did.
接着,他提出了另外四点,关于当前编程领域的现状。
He then offered four additional points about the current state of affairs and programming.
这些观点都很有深度。
They're nuanced.
我打算念给你听,我觉得很重要。
I'm going to read them to you because I think it's important.
好的。
All right.
第一点是这样的。
Here's point number one.
他说,如果你是个经验丰富的开发者,而且有完善的规范和指导,这些工具确实能让你更快完成任务。
He said, these tools do get the job done faster if you are a highly skilled developer and have lots of good rules and guidance in place.
只要用得对,确实比手写代码快得多,还能保证代码质量。
If you use the tools correctly, it is in fact much faster than typing code out by hand while still producing quality code.
正因如此,尽管我接下来要讲一大堆问题,我还是继续在用它们。
This is why I'm still using them despite all the problems I'm about to state.
接着他又说到了。
He then goes on.
第二个观点。
Point number two.
频繁切换上下文和注意力分散是个大问题。
Context switching and attention fragmentation are a huge problem.
人工智能系统不能长时间无人监管,而且它们的响应也不即时,所以你只能被动等待一到两分钟。
A gentic system shouldn't go unsupervised for large chunks of time and they aren't immediate, so you're inherently stuck with one to two minute waits.
你只能干坐着或者同时做别的事,这会导致上下文频繁切换、产出质量下降,还会让人精神疲惫。
Your choices are to sit around or multitask, and this leads to out of control context switching, lower quality output, and mental exhaustion.
好的。
Alright.
第三个观点。
Point number three.
他说,就我个人而言,我明显感觉到技能在退化。
He says, on a personal level, I absolutely feel the effects of skill atrophy.
以前这可是我专注工作的主要来源。
This used to be my source for deep work.
但现在不是了。
It no longer is.
他的第四个观点是,智能编码在未来几年会给软件团队带来巨大问题。
His fourth point, agentic coding is going to become a huge problem for software teams in the next few years.
我已经看到,我合作的几家公司管理层开始把令牌数量当成生产力指标了。
I'm already seeing management at several companies I work with turning to token counts as a productivity measure.
就像代码行数是个错误的绩效指标一样,这也会变成衡量你在这台hamster轮上转得多快的另一个标准。
Just like lines of code was a misguided KPI, this will be another measure of how fast you're spinning on the hamster wheel.
随着时间推移,工程师们会越来越疲惫,写出的代码也会越来越差。
Engineers will burn out and produce worse and worse code as time goes on.
这和你之前提到的Slack和邮件问题一样,都是在不该简化的地方降低了阻力。
It has the same problem of reducing friction in the wrong places leading to the same problems you've outlined with Slack and email.
好了。
All right.
所以,在列举了这些抱怨之后,让我再快速总结一下,好吗?
So having outlined these complaints, and again, let me just summarize them real quick, right?
如果我们几乎完全依赖智能体来生成代码,只是描述我们想要什么,那么高级开发人员将失去真正理解代码的能力,而这正是提出正确需求和检查智能体产出代码所必需的。初级开发人员则根本学不到编程技能,这意味着他们根本无法有效地与智能体协作。
If we rely almost entirely on agents to generate code and we just describe what we want, the senior developers will lose their ability to actually understand code, which is needed to ask for the right things and to check the code that the agents produce, and junior developers will never learn coding skills in the first place, which means they won't really be able to work usefully with agents at all.
那么,这里的解决方案是什么呢?
All So what is the solution here?
是把AI工具彻底抛弃吗?
Is it to throw AI tools out the window?
不是。
No.
Faye 还在用。
Faye still uses them.
我还在联系的那位开发者也在用。
The developer I still talk to use them.
但我们必须更谨慎地思考,如何将 AI 编程工具整合到软件开发中。
But we're going to have to think much more carefully about how we integrate AI coding tools into software development.
现在,Lars Faye 提出了一个建议,概括来说就是降低 AI 的地位。
Now Lars Faye has a suggestion which he summarizes as demote AI's role.
好的。
Alright.
他说,我原话引用一下,我绝对不是在提倡手动敲出所有代码。
He says, I'm quoting here, I'm certainly not advocating for typing out all code manually.
他紧接着补充道,我所主张的是把大语言模型和编程代理当作辅助手段,一种不会为了追求效率而牺牲个人核心技能的做法。
He then soon adds, what I am advocating for though is leveraging LLMs and coding agents as secondary processes, a way that doesn't sacrifice the individual skills at the altar of productivity.
接着,Faye 进一步解释了他具体指的是什么。
Faye then goes on to give more details about what he means here.
他对此做了更清晰的说明。
He he clarifies it.
他主要把大语言模型用在写规格说明和做规划上,写代码用得比较少,代码部分他亲自写的比例在 20% 到 100% 之间。
He uses LLM LLMs more for specs and planning and less for coding, which he does on 20% to 100%.
根据任务的重要程度,他自己会写 20% 到 100% 的代码。
He'll write 20% to 100% of the code himself depending on the importance of the task.
任务越重要,他写的代码就越多。
More important task, more code he writes.
当让大模型写代码时,他通常会先给它一段伪代码。
When he does have the LLM write code, he often provides it pseudo code.
简单来说,如果你不了解的话,伪代码就像是一种编程语言,但对语法的要求没那么严格。
So basically a pseudo code, if you don't know, is like it's like a programming language but less syntactically demanding.
也就是说,你其实是在用编程语言的格式来提出要求,但不必对每个分号或括号都那么较真。
So it's like you're actually giving programming language style demands, but you don't have to be super exact about every semicolon or parenthesis.
但你的意思基本上就是,你给出指令,比如这个循环、这个检查步骤。
But you're basically saying this is what I want you to do, this loop, this check.
然后大模型就能把这些指令转换成实际使用的编程语言代码。
And then the LLM can take that and put it into the proper programming language that's being used.
他还提到,自己从来不会让大模型或智能体去实现那些自己没做过、或者自己搞不定的东西。
He also says, I never ask an LLM or agent to implement something that I've never done before or couldn't do on my own.
好的。
All right.
咱们先退一步来看。
Let's step back here.
拉尔斯·费和其他人逐渐意识到,AI擅长某件事,并不等于它就能轻易取代人类。
What Lars Faye and others are beginning to realize is that AI being good at something doesn't necessarily mean that it can easily replace humans.
他们看到的是一个人们依然需要学习编程的世界。
They are seeing a world in which people still need to learn to code.
刚开始,他们可能会去写一些AI轻松就能完成的代码,只是为了锻炼技能;等他们经验更丰富了,就能更多地借助AI,把编程时间留给更复杂或关键的功能,同时花更多时间审查代码——而他们能做审查,正是因为自己一直保持并提升了编程能力。
At first, they might code things AI could easily do just to build skill, and then as they get more senior, they can use AI more often and leave their coding time for more complicated or mission critical features and spend more of their time reviewing code, and they can do this review because they've learned and maintained their own programming abilities.
需要说明的是,这是一种假设:AI编程工具已经无处不在,确实让软件开发变得快得多、便宜得多。
Now to be clear, this is a vision of a world in which AI coding tools are ubiquitous, and they really do make software development much faster and cheaper.
正如我提到的,费用编程代理,和他持相似警告观点的开发者们也都在用。
As I mentioned, Faye uses coding agents as do most of the developers who agree with his warnings.
但这种愿景,并没有脱离我们今天所处的世界。
But this vision is of a world that is not unrecognizable from the one we live in today.
这并不是一个计算机代码不复存在的世界。
It's not a world where computer code doesn't exist.
这也不是一个软件开发者人数急剧萎缩的世界。
It's not a world in which the ranks of software developers catastrophically contracts.
说实话,我不确定费伊说得对不对。
Now look, I don't know if Faye is correct.
预测未来很难,而且计算机编程和软件开发领域的变化非常快。
It's hard to predict the future and what's going on within computer programming and software development is fast moving.
但他此刻在软件行业引起了大量尊重他的专业人士的关注,这提醒了我们一个在技术史上反复被验证的事实。
But the fact that he's attracting a lot of respectful attention in the software industry at the moment is an important reminder of something that we've learned time and again in the history of technology.
现实情况往往比那些狂热爱好者所希望或预测的要复杂得多,也不够均匀。
Reality is almost always more complicated and uneven than enthusiasts would like or predict.
目前还没有理由相信人工智能会打破这一长期存在的规律。
And there's no reason yet to believe that AI is an exception to this long standing rule.
好了,今天的内容就到这里。
Alright, that's all I have for today.
请记住,你应该关注人工智能,但不要轻信关于它的所有报道。
Remember, you should care about AI, but not trust everything you read about it.
好的,谢谢。
Alright, thanks.
如果你看到这儿了,那想必你已经准备好加入我这场在纷扰世界中追求深度的行动了。
Hey, if you've made it this far, you must be ready to join my fight for depth in a distracted world.
最有效的方式,就是加入超过十二万五千名每周一收我邮件通讯的读者。
Now the best way to do this is to join over 125,000 people who receive my email newsletter each Monday.
你可以到 calnewport.com/ideas 注册。
You can sign up at calnewport.com/ideas.
注册后,我会免费送你一份指南,介绍我关于如何培养深度生活的七个核心观点。
And when you do, I will send you a free guide to my seven best ideas about cultivating a deep life.
现在就去 calnewport.com/ideas 注册吧。
Sign up today at calnewport.com/ideas.
关于 Bayt 播客
Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。