前端开发走向终结
The following article is from 前端从进阶到入院 Author ssh前端
原文:https://www.joshwcomeau.com/blog/the-end-of-frontend-development/
翻译:ssh
最近几个月,和很多初级开发人员交谈过,他们对 AI 越来越感到焦虑。他们看到像 GPT-4 这样的工具越来越令人印象深刻的演示,担心等他们精通 HTML/CSS/JS 时,就不会有任何工作机会了。
这种想法现在在 Twitter 上到处都是:
我完全不同意这种观点。我认为 web 开发工作不会消失。我也渐渐受够了网上散布的 FUD。
因此,在这篇博客文章中,我将分享我的假设,即会发生一些变化,但不会像人们所说的那样可怕。
利益相关
应该指出,在这个话题中有自己的利益(在网上教授软件开发)。如果开发人员的工作开始消失,那么业务将受到>影响。
尽管如此,本文中的所有内容都基于我的真实信仰。您可以自行判断这些信仰是否具有偏见。
又来了
CSS 语言在 1996 年首次发布,当时是在 Internet Explorer 3 中。在两年内,第一个“无代码”网站构建工具 Homestead 就推出了。Homestead 允许人们构建自定义网页,而无需编写任何一行代码:
就像已经持续了很长时间一样,人们一直存在着网页开发者会被某种新技术取代的担忧。在 2000 年代,是 WordPress。在 2010 年代,是 Webflow。在 2020 年代初,是“无代码”工具。
某种程度上说,网页开发者已经被淘汰了!如今,如果当地的面包店、牙医或艺术家需要网站,他们可能不会雇用开发人员支付大量成本从头构建。他们会去 SquareSpace 上找到一个他们喜欢的模板,花费 $20/月。
然而,网页开发者仍然存在。
上周,OpenAI 进行了 GPT-4 的展示[1]。其中包括一个相当令人印象深刻的演示:GPT-4 可以将手绘的网站草图转换为完全功能的网站,包括一些 JS 来安装“揭示笑话”按钮。
这很了不起,我认为在原型设计方面它有很大的潜力… 但让我们明确一点:我们几十年来一直不需要网页开发人员来构建这些类型的页面。这个 HTML 文档和现代前端开发人员编写的代码之间存在巨大的差异。
展望未来
到目前为止,我看到的大多数演示都范围有限:一个简单的 HTML 页面或一个单独的 JavaScript 函数,这些都是单个开发者在一个下午内可以完成的事情。
但这还是早期!如果事情继续以相同的速度加速,几年内就能创建整个应用程序,对吧?
在像 GPT-4 这样的 LLMs 方面,我远非专家,但我在高层次上理解它们的工作原理。
从根本上说,LLMs 是超级强大的文本预测器。给定提示后,他们使用机器学习来尝试找出跟在提示后面最可能的字符集。
像 OpenAI 这样的公司花费大量时间和精力来调整模型以改善输出。一群人类标注者“评分”模型的输出,模型学习和演变。
如果你尝试过类似 Chat GPT 或 Bing 的 AI 强化搜索等工具,你可能会注意到,回复可能正确性约为 80%,但表现出绝对且不可动摇的自信。
LLMs 不能验证它们的假设或测试它们的假说。他们无法确认自己所说的是否属实。它们正在进行一种概率游戏,并估计这串字符似乎与提示中的字符串兼容。
有时,响应的一部分是无意义的。OpenAI 团队将这些称为“幻觉”。
随着技术的改进,我们可以期望一些粗糙的边缘被削平,但从根本上说,总会存在一些不准确的程度。这些工具没有任何机制可以客观地验证其响应。
因此,准确性会提高,但永远不会完美。如果我们谈论让网页开发人员过时,这是一个问题。如果你不是程序员,你将无法判断哪些部分是准确的或不准确的。你也无法察觉幻觉。
但请等等,在 GPT-4 的演示中,我们看到了 AI 如何修复自己!复制/粘贴错误消息,它会找到并解决问题。
但是,并非所有的幻觉都会导致异常。例如,我最近使用 GPT-4 生成一个使用 React 的
那么在代码中是否存在安全漏洞呢?当事情出了大问题时,谁有责任?
还有一点:生成一个 50 行的 HTML 文档和生成一个生产就绪的网络应用程序之间的差异是巨大的。像这个博客(https://www.joshwcomeau.com/) 这样的小型 JS 应用程序有着超过 65k 行代码和 900 多个文件。这还不包括文字内容,只有 JavaScript 和 TypeScript 代码。
即使准确率达到了 95%,也将极其困难进行调试。这就像一个开发人员花费数月时间构建一个庞大的项目,从未真正尝试运行任何代码,直到它 100% 完成。这是噩梦般的事情。
AI 并不是魔法。它的能力仅限于数据训练的好坏。代码段遍布互联网,通常是通用的。相比之下,每个代码库都是独特的。很少有大规模的开源代码库。那么 AI 要如何学习如何构建真实的大型项目呢?
我们很快就会到达一个非开发人员可以通过聊天机器人轻松创建小型的、完整自包含的项目的点。这是令人兴奋的!
但我认为,大型科技公司把他们的开发团队解雇并用 LLMs 取代他们还相距甚远。在我看来,有几个潜在的难以解决的问题阻碍了这一成为现实的发展。
为什么你的博客这么大?
之前,我提到过我的博客有大约 65k 行代码。如果你不熟悉我的工作,你可能会对一个简单的博客为什么会如此庞大感到非常困惑!它一定是过度设计了吧?
造成代码如此之多的原因是我的大多数博客文章都包含大量的自定义交互元素,比如我的弹性盒子交互指南:
我还在同一代码库中托管了一些副业项目,比如我的渐变生成器和 JS 运算符搜索引擎。
增强,而不是取代
从这篇文章中你可能不知道,但我对人工智能非常乐观。😅
我认为最可能的情况是,像 GPT-4 这样的工具被整合到开发工具中,用于增强有技能的开发者能做的事情。
木匠没有被电动工具取代,会计师没有被电子表格取代,摄影师没有被数码相机/智能手机取代*,我不认为开发者会被 LLMs 取代。
我想知道,如果每个开发者都显著提高了工作效率,开发者工作的总数是否会减少?
不一定。目前,软件开发人员的需求要远远超过供给。在我工作的每一家公司中,我们都有很多我们想做的事情,但是我们受制于拥有的开发者的数量。
如果开发人员突然提高了 2 倍的产能,会发生什么?更多的漏洞将被修复,更多的功能将被上线,赚取更多的利润。有很多东西可以构建,因此不会出现开发者没有工作可做的情况。
我认为这实际上可能会增加开发者的总数。
今天,有很多公司根本不雇用软件开发人员。我曾经在一个称为 Konrad Group 的公司工作,这是一个为其他公司构建 Web 应用程序的代理机构,其中许多公司都是家喻户晓的品牌。由于开发成本非常高,因此他们更倾向于将开发需求外包,而不是在内部雇用开发人员。
这些财富 500 强公司是根据当前的软件开发成本进行计算的。让我们编造一些数字:假设他们需要 4 名每年 15 万美元的开发者,总计 60 万美元/年。他们为了管理这项工作而支付代理机构 50 万美元更有意义。但是如果 LLMs 确实增强了开发人员的生产力,他们可能只需要雇用 2 名每年 15 万美元的开发者来完成相同的工作量。所有 sudden,数学公式变得更加有吸引力!
让我明确一点:我不是经济学家,这都是瞎猜。我不是说我知道事情会以真实的方式解决。我是说这不是一个铁定会对我们造成损失的事情。没有人知道结果会怎样,我有点疲倦,觉得人们表现得好像最坏的情况已成定局了。
我们不是唯一正在进行这种讨论的人
亚伦·布莱斯(Aaron Blaise)是一位资深的动画师和插画师。他在迪士尼工作了近 20 年,为经典迪士尼电影《美女与野兽》(1991 年)、《阿拉丁》(1992 年)、《风中奇缘》(1995 年)等作品做出了贡献。
几个星期前,他在 YouTube 发布了一段视频:迪士尼动画师对 AI 动画的反应[2]。在阅读这篇博客文章后,他的看法会让你感到熟悉:他不把这些工具视为威胁,而是视为会增加动画师生产力,导致更多的动画师工作。
数十个行业的艺术家和知识工作者现在都在进行同样的讨论。人们担心他们的工作将被像 GPT-4、DALL-E 2 和 Midjourney 这样的人工智能吞噬。
GPT-4 可以在模拟考试中通过,并与测试者中排名前 10%的人得分相当。很多律师正在进行这样的讨论[3]。
我的个人信仰是,大多数职业人士将找到一种方法将这种技术融入到他们的工作流程中,从而提高他们的生产力和价值。某些任务可能会被分配给 AI,但不是很多工作。
但是,如果我错了,LLMs 确实可以完全取代软件开发人员怎么办?如果是这样,我怀疑 LLMs 将取代绝大部分知识工作者。
这不是你可以通过转换到不同专业来避免的海啸。没有更高的地方。因此,与其把握未来可能带来的风险,为什么不关注自己热爱的事情,自己感兴趣的事情,自己擅长的事情呢?
前端与其他工程学科
一些人在线上建议,前端开发特别容易被人工智能替代,甚至建议开发者向上移动堆栈,专注于后端或数据工程。
对我来说,这完全相反。我不认为任何开发人员需要担心被淘汰,但如果这里有任何漏洞,我认为是在后端。
OpenAI 的 GPT-4 直播上周展示了两个与代码相关的演示:
“笑话网站”前端
基于 Python 的 Discord 机器人
在这两个项目中,Python 代码在我看来更适合生产。最近,我使用 Node.js 构建了一个 Discord 机器人,代码看起来非常相似。
相比之下,生成的笑话网站的基本 HTML 文档与我每天编写的前端代码之间有很大的差距。
这是一个过度概括,但在过去的 10 年左右的时间里,很多复杂性已经从服务器向客户端移动。单块的 Express 应用正在转变为一些无服务器的函数,而我们的前端已经从超链接数字文档演变为完全成熟的桌面应用程序。
此外,前端是用户与产品交互的部分。公司通常希望其产品是定制的,独特的,根据品牌精心制作的。相比之下,后端是看不见的。与通用的前端相比,通用的后端更可接受。
我们行业中让人沮丧的是,有很多人认为后端开发比前端开发更难或更复杂,认为“真正”的工程在服务器上进行。当然,这是无稽之谈。
我认为自己是个全栈开发者。我实际上在后端开始了自己的职业生涯,使用 PHP 和 Ruby on Rails。我仍然花了很多时间编写后端代码,为我的课程平台。两端的堆栈在不同的方面都很困难。它们都很复杂和困难。
(顺便说一句,即使前端不涉及 JS 框架,它仍然很复杂和困难。我非常尊重那些专门使用 HTML、CSS 和原生 JS 制作高质量网站的人,专注于可用性和可访问性。我不认为它们很快就会被人工智能取代。)
利用 LLM 来帮助你学习
我听说有些人说ChatGPT[4]在学习技术技能方面非常有帮助。如果你在教程中遇到困惑,你可以请 AI 帮忙解释!
这对我来说是一个非常有趣的用例。从本质上讲,ChatGPT 就像一对程序员,可以帮助你理解你不理解的事情。你可以问它具体的问题并得到具体的答案。
但是我认为你需要谨慎。使用这种工具来帮助你学习有正确和错误的方式。
错误的方式是将其当作 GPS 导航器。当我开车去某处时,我会把地址输入我的 GPS,然后毫不区分地按照它的指示行事。我通常确实到达了我需要去的地方,但这需要我在精神上没有任何努力。因此,我的方向感完全退化了。现在我不能去任何地方,没有一个合成的声音告诉我该怎么做。😬
与其把它当作 GPS 使用,我建议把它看作你是陪审团的一员,LLM 是被告,登上证人席。
你将听取他们的意见,但你不会把它当成事实。你会持怀疑态度,对每一个词都进行批判性思考。
不要盲目地复制/粘贴 ChatGPT 生成的代码,逐行检查并确保你理解。请它提供澄清。对看起来可疑的事情进行双重检查,并从权威来源(例如官方文件)确认。请记住,LLM 百分之百自信,但并不百分之百准确。
如果您遵循这个策略,我认为 LLMs 可以提供很多价值。😄
致渴望成为开发人员的信息
我写这篇博客文章的原因是特别针对正在学习 Web 开发的人,他们感到焦虑和绝望,觉得花费所有时间和能量来建立这些技能是没有意义的,因为整个行业即将过时。
我不能保证事情会完全保持不变。我确实认为人工智能将对我们的工作产生影响。我从 2007 年开始研究 HTML/CSS/JS,从那时起,事情已经发生了很大的变化。开发人员一直不得不具有适应性,随着技术的发展而演变。
但是到目前为止,我所看到的没有任何迹象表明我们的工作岗位面临风险。我尝试想象一下,如果非开发人员能够在不理解 Web 技术的情况下构建整个 Web 应用程序,那么我会发现许多原因,即使未来的 GPT 版本不会幻觉。
我可能错了。我没有水晶球 🔮。我真的不相信我们即将面临 Web 开发人员被淘汰的局面。我担心许多渴望成为开发人员的人却没有理由放慢脚步。
我不希望在 5 年后回首,如果软件开发人员更受欢迎,你会为停止追求梦想而后悔。❤️
参考资料
GPT-4 的展示: https://www.youtube.com/watch?v=outcGtbnMuQ
[2]迪士尼动画师对AI动画的反应: https://www.youtube.com/watch?v=xm7BwEsdVbQ
[3]这样的讨论: https://today.tamu.edu/2023/02/09/will-ai-put-lawyers-out-of-work-a-texas-am-expert-says-its-unlikely/
[4]ChatGPT: https://chat.openai.com/chat
- EOF -
加主页君微信,不仅前端技能+1
主页君日常还会在个人微信分享前端开发学习资源和技术文章精选,不定期分享一些有意思的活动、岗位内推以及如何用技术做业余项目
加个微信,打开一扇窗
觉得本文对你有帮助?请分享给更多人
推荐关注「前端大全」,提升前端技能
点赞和在看就是最大的支持❤️