AI是否导致前端迷失十年的重演?
摘要
文章将当下AI对编程的去技能化作用与过去JavaScript框架对前端开发的去技能化现象进行了类比,认为两者都代表了向更高抽象层次的转变,这种转变降低了入门门槛,却削弱了工作者的议价能力。
暂无内容
查看缓存全文
缓存时间: 2026/05/29 13:18
# AI 是否正在导致前端“失去的十年”重演?
来源:https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/
作者:Mauro Bieg (https://github.com/mb21) 发布于 2026年5月23日
**AI 对程序员工作的影响,对我们很多前端开发者来说非常熟悉——因为这种事以前就发生过。**
首先,我们从*技能降级*的角度来看前端和智能编码(agentic coding)的变革,然后再从*更高抽象层次*的角度审视这两种变化。最后,我们会回顾以往的变化,比如从 Stack Overflow 复制粘贴的盛行,以及包豪斯运动如何应对工业化浪潮。
## 技能降级 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#deskilling)
正如现在 AI 正在使编程技能降级,JavaScript 框架在过去十年中已经使前端开发技能降级。作为从 HTML/CSS 和一些 PHP 起步,后来做过 Ruby on Rails,再后来担任一家瑞士主要报纸(当时使用 Next.js)前端团队负责人的人,我亲眼目睹了这一转变。而且不必听我的一面之词!我并**不是**第一个 (https://ohhelloana.blog/overthinking-ai/) 这样说的 (https://www.baldurbjarnason.com/2024/the-deskilling-of-web-dev-is-harming-us-all/)。Alex Russell 称之为“前端失去的十年 (https://www.youtube.com/watch?v=7ge8iwaNNAw)”。
什么是技能降级?根据维基百科 (https://en.wikipedia.org/wiki/Deskilling):
> 技能降级是指,一个行业或经济体中,熟练劳动被引入由半熟练或不熟练工人操作的技术所消除的过程。这带来了成本节约 \[……\],降低了准入门槛,从而削弱了\[工人\]的谈判能力。
让我们看看这如何应用于前端,然后再看如何应用于智能编码。
### 前端的技能降级 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#the-deskilling-of-the-frontend)
很多程序员可能不知道,前端过去是一项高度专业化的技能,需要掌握语义化 HTML、CSS、各种浏览器的差异、无障碍性、渐进增强、网络性能、界面设计和用户测试——仅举几例。为了区别于如今“前端”的涵义,这门古老技艺的从业者现在常将其称为“前端的前端”。
*前端的技能降级* 是引入框架和其他工具,将浏览器仅仅视为编译目标——就像任何其他应用运行时(例如 JVM 或 iOS)。然后你可以直接加载一个像 Shadcn 单选按钮 (https://paulmakeswebsites.com/writing/shadcn-radio-button/) 那样的庞然大物,而无需理解底层的 HTML、涉及不同浏览器的微妙差异、页面加载性能和可访问性。
正如上面的维基百科引文所指出的,这为企业“带来了成本节约”,因为它们可以轻松地将任何通用程序员安排到前端工作中。不幸的是,“全栈开发者”往往不是深刻理解前端*和*后端的人,而是一个通才,只了解足以操纵 JavaScript 框架来完成两者的知识。这使得企业可以轻松地在不同项目之间切换程序员 (https://www.seangoedecke.com/seeing-like-a-software-company/)。同一个通才甚至可以用 React Native 和 Electron 开发原生应用!引用维基百科的结尾:这“降低了准入门槛”(这是我始终珍视的一点),但也“削弱了工人的谈判能力”。
### AI 正在使编程技能降级 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#ai-is-deskilling-programming)
目前更普遍发生在程序员身上的事情,似乎与 Web 开发者已经经历的非常相似。手工编写代码的熟练工作正在“被引入由半熟练或不熟练工人操作的技术所消除”。
我们仍然不知道在这场转变结束时,操控智能 AI 的工人需要具备什么样的技能,也不清楚我们将达到怎样的价格点——无论是对于劳动力,还是对于本地和远程的 LLM。但现在已经很清楚的是,企业绝对会利用这项技术来削减成本并削弱工人的谈判能力。
### 深切的失落感 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#a-profound-sense-of-loss)
就像一个多世纪前被流水线工人取代的工匠一样,我们感到深切的失落。我们哀叹一项我们用半生时间磨练的技能,不再被市场重视。我们感到悲哀的是,新的流程导致了更低质量的工作,而很多人似乎并不在乎。
## 运行在更高的抽象层次上 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#operating-at-a-higher-level-of-abstraction)
另一种看待“技能降级”的方式当然是辩称,这只是通过自动化提高效率。哪个工程师不喜欢自动化呢?毕竟这是我们工作的重要组成部分!
在这种框架下,引入的新技术只是运行在更高的抽象层次上,使得操作它的人能够专注于全局,而无需操心不重要的细节。但究竟哪些细节被视为“不重要”,是一个后果严重且有时主观的决定。最终,细节*总会泄漏出来* (https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/)。
### “现代”前端:一座泄漏的抽象之塔 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#“modern”-frontend:-a-tower-of-leaky-abstractions)
抽象通常以牺牲性能为代价。但由于现在的计算机速度非常快,我们常常愿意用一些运行时性能来换取开发者生产力的提升(垃圾回收就是一个例子)。对于中等负载的高性能服务器来说,这是一个非常合理的权衡。但慢速网络上的手机则另当别论。
通过使用像 React 这样重量级的客户端 JavaScript 框架以及该生态中的大量包,你在抽象化诸如可访问性 (https://gbbns.co/journal/accessibility-problem-isnt-design/) 以及低端手机或慢速网络上的性能 (https://infrequently.org/series/performance-inequality/) 等问题。实际上,你选择不去思考这些事情,选择不去关心它们。
### 智能编码:一种非确定性抽象 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#agentic-coding:-an-undeterministic-abstraction)
通过使用智能 AI 来编写某个功能或修复一个 bug,你是在更高的抽象层次上描述变化,写下的文字比手工编写所有代码要少。AI 会通过查看其训练数据和上下文来填补你省略的细节——有时猜测得很好,有时则不然。你是否觉得这有用,在很大程度上取决于你对编程中什么重要的看法。
但与编程中以往的抽象相比,智能编码是一种泄漏很严重的抽象。它不像编译器那样具有确定性,输入或模型的细微变化可能导致非常不同的结果。这导致人们将 AI 比作“初级工程师”,因为初级工程师也是非确定性的。但一个区别在于,人类能够学习,而你无需无休止地调整他们的 AGENTS.md 或 SKILL.md 文件。
### LLM 作为 Stack Overflow 复制粘贴的延伸 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#llms-as-an-extension-of-copy-pasta-from-stack-overflow)
因此,我目前发现的对使用 LLM 的最佳类比是曾经谷歌搜索的行为。这是我们所有人都必须学会的一项技能:选择恰到好处的关键词,以便正确的论坛帖子(后来是 Stack Overflow 帖子)出现在谷歌搜索结果的第一页。就像给 LLM 提示一样,为了返回其训练数据的恰当组合,模糊的 web 搜索是在一个非常高维的空间中进行查找。就像 LLM 一样,这种查找曾经对措辞的细微变化以及谷歌搜索索引的变动非常敏感。
近年来,谷歌修改了搜索,更积极地规范化输入的术语。对于不精通谷歌搜索“黑科技”的人来说,这使得搜索更容易使用。但对于那些已经掌握了那项技能的人来说,这使得谷歌搜索的威力大打折扣。专门的关键词过去能直接把我们带到答案前。现在它们会被规范化成一个同义词或一个紧密关联的词,然后我们落在一个更通用的页面上。
但谷歌以及后来的 Stack Overflow 的出现,不可逆转地改变了编程。程序员不再需要读那该死的手册,而是可以直接盲目地从 Stack Overflow 复制粘贴答案,而且令人惊讶的是,常常能得到某种能用的东西。从这个角度看,LLM 只是同一趋势的延续:工具和抽象让懂行的人稍微更快,并让不懂行的人也能得到某种通常能用的东西。你知道吗?这很棒!
但我们不应自欺欺人:抽象在某个时刻会泄漏。然后必须有人投入时间去真正深入地理解到底发生了什么——并修复它。就像我们教导初级程序员在使用 Stack Overflow 答案之前先阅读并理解它一样,现在我们需要教导人们阅读并理解 LLM 输出的内容,并理解它如何融入现有的代码库。
## 质量重要吗? (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#does-quality-matter?)
不幸的是,一些程序员从未进步到尝试真正理解 Stack Overflow 答案的阶段。既然能用,何必费心?尽管没有公开承认,但很多公司实际上对这种做法很满意。现在不同的是,公司们不遗余力地公开宣称他们在使用多少 AI,甚至假装检查输出都不做了。
虽然 LLM 确实有**有效的用例** (https://htmx.org/essays/yes-and/),但也有许多新方法搞乱你的代码,以及搞乱你组织的沟通和流程。作为一个团队,这似乎特别具有挑战性。就像代码审查一样,关于如何(以及是否)使用和集成 LLM 进入工作流程存在着广泛的分歧 (https://ky.fyi/posts/ai-burnout)。如果团队对重视的事物不一致,这真的会扰乱工作。
另一个可悲的生活事实是,很多公司尽管产出糟糕的软件,却仍然经营得很好。尽管我们程序员希望相信,但商业成功与软件质量很少相关。通常,其他因素完全占据主导地位。通常,软件项目被视为黑箱,已知失败和成功的概率大致相当,并且通过各种方式降低风险(最坏情况下,不同的团队会再试一次)。
前端开发也是如此。不幸的是,一个糟糕的网站对利润的影响相对较小。一个慢速网站和大量 cookie 横幅会影响转化率吗?当然,但与其他因素如品牌忠诚度和定价相比,这种影响相对较小。而且所有竞争对手的网站也很慢!此外,没有人因为选择 React 而被解雇过。
这是否意味着我们应该停止关心我们的用户和我们的技艺?不。但这确实意味着,找到一份允许你这样做的工变得越来越难。希望当热潮过后,当我们更好地理解 LLM 实际适合哪些任务、不适合哪些任务时,钟摆会稍微摆回来。但可以肯定地说,我们的职业将不再是以前的样子了。
## 包豪斯运动 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#the-bauhaus-movement)
当日常用品和建筑物突然可以通过工业流程大规模生产时,前几代工匠做了什么?一种反应是模仿旧风格,让工业机器生产出至少看起来像手工制作的物件和建筑。
为了对抗这种*历史主义* (https://en.wikipedia.org/wiki/Historicism) 趋势,20 世纪初的 **包豪斯运动** (https://en.wikipedia.org/wiki/Bauhaus) 发展出了一种替代方法。他们的目标是让工厂工人与工匠合作,而不是对立,并重新以工业制造过程为出发点来发展手工艺。包豪斯敦促设计师们回到工坊,亲自与材料打交道。目标仍然是要设计出可以大规模生产的产品。但始终将最终用户放在心中,并深深地关心他们。以 Dieter Rams 和 Johnathan Ive 为代表的现代工业设计,其根源可以直接追溯到包豪斯。
## 关心质量和用户 (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#caring-about-quality-and-the-user)
我们如何将这种思路转化为软件?
软件介于手工艺(我们编写的程序“按原样”交付给用户,不首先经过制造步骤)和工业设计(我们将相同的东西交付给成千上万的用户,却从未看到他们与我们的产品互动)之间。
能够手工编写代码的需求是明确的。就像工业设计师需要了解其产品所用的材料一样,网页设计师需要深入了解 HTML 和 CSS。
虽然谷歌、Stack Overflow、即用型库 (https://jessitron.com/2020/08/04/back-when-software-was-a-craft/) 以及现在的 LLM 等工具让初学者更容易入门,但这同时也意味着让任何东西能工作的自然门槛正在不断降低。
当一个领域的准入门槛很高时,很难找到完全糟糕的作品。一旦工匠学会了如何制造一把木椅,他们不可避免地也学会了如何不把它做得太差。
工业化催生了许多廉价的塑料产品,由那些没有花时间思考产品将被谁以及如何使用的人设计——然而好的工业设计仍然存在。文字处理器的发明催生了大量格式糟糕的文档——然而排版和平面设计仍然存在。像 Wix 和 Next.js 这样的软件催生了大量加载速度极慢且不可访问的网站——然而仍然有“前端的前端”的实践者在工作。同样,AI 催生了大量 AI 垃圾——但这并不意味着我们不再需要那些懂行并且关心自己所做之事的人。
## 最终会怎样? (https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/#how-will-it-shake-out?)
相似文章
我们正在使用AI代理来帮助编码、写作、管理企业等等。但AI是否让我们变得更笨?
讨论在编程、写作和商业中日益使用AI代理是否导致人类认知技能下降,并与20世纪80年代关于计算器的辩论相类比。
上次代码变便宜时我们失去了什么
本文类比了2000年代初的外包时代与当前AI生成代码的趋势,指出廉价代码的真正代价是失去了人类的理解力和上下文。
如果AI正在取代入门级工作,谁将成为下一代经验丰富的员工?
本文讨论了随着AI接管入门级任务,企业可能难以培养下一代经验丰富的员工,从而可能导致人才短缺的担忧。
AI正在让我变笨
作者反思了在写作和编程中依赖AI工具如何削弱了自己的能力,导致自我怀疑,并决定重新训练。
我们是在培养AI工程师,还是仅仅是AI工具的使用者?
文章观察到,初级AI工程师倾向于专注于提示工程和低代码平台等高层次工具,而非深入理解基础知识,这引发了对面试中解决问题能力的担忧。