查看原文
其他

GPT-4预示着前端开发的终结?你准备好面对无法预测的技术挑战了吗?

前端之巅 2023-04-28


作者 | Josh Comeau
译者 | 核子可乐、Alice
策划 | Tina

过去几个月来,我跟很多刚刚步入前端开发领域的朋友们交流过,大家都对步步紧逼的 AI 感到焦虑。他们看到 GPT-4 等工具带来的令人印象深刻的演示,担心自己学成 HTML/CSS/JS 知识之日,就是岗位消失之时。

这类情绪绝非个例,Twitter 上早已是哀鸿一片。


澄清声明我先向大家承认,这个话题跟我有切身关联:我的工作就是在网上教学员开发软件。如果开发者岗位逐渐消失,那我的饭碗也就完了。

但我向大家保证,我在本文中表达的所有观点都出于自己的真实判断。欢迎大家自行斟酌这些观点是否存在偏见。

“又”要被替代了

CSS 语言最初发布于 1996,随 IE 3 一同推出。两年之内,首款“无代码”网站构建器 Homestead 就跟大家见面了。

Homestead 能帮助人们在无需编写代码的情况下,轻松构建起自定义网页:

也就是说,从 Web 开发这类岗位刚刚出现时,就有人担心会被某些新技术所淘汰。2000 年代的威胁源头是 WordPress,2010 年代是 Webflow,2020 年代初则是“无代码”工具。

其实从某种意义上讲,Web 开发者确实已经过时了。如今,本地面包小店、牙医诊所或者艺术家如果需要一个网站,那大概率不会花几万美元聘请开发者从零开始做设计。他们可以直接前往 SquareSpace,找到自己喜欢的模板,然后每月花 20 美元来运营自己的业务门户。

但就算这样,Web 开发者也仍然存在。

上星期,OpenAI 公布了 GPT-4,期间有一段令人印象深刻的演示:GPT-4 能够将手绘的网站草图转化成功能齐全的网站,甚至包括一些 JS 来连接“Reveal Punchline”按钮。


这功能确实很酷,在原型设计方面有很大的潜力……但我们还是得明确一点:几十年来,我们的 Web 开发者负责构建的从来不是这类页面。演示中的 HTML 文档跟目前前端开发者编写的各种代码,可以说是天渊之别。

展望未来

到目前为止,我个人看到的大部分演示都非常有限:要么是一个简单的 HTML 页面,要么是 JS 函数。总之,就是那种开发者可以随手搞定的东西。

但这一切还仅仅只是开始!如果 AI 继续保持目前的发展速度,再过几年就能构建起完整的应用程序了,对吧?

我当然不是什么大语言模型专家。但对于 GPT-4,我完全能够理解它的宏观工作原理。

从本质上讲,大语言模型是一种超级强大的文本预测器。给定一个提示,它们就能使用机器学习来尝试找到最可能符合提示要求的字符集。

OpenAI 等厂商花费了大量的时间和精力来调整模型,借此改善输出质量。一大群人工标者对模型的输出进行“评级”,借此引导模型不断学习和进化。

如果大家体验过 CHatGPT 或者 Bing 的 AI 搜索等工具,就会发现这些回答大概有个 80% 的正确率,但 AI 却表现得像是有 100% 的把握。

大语言模型无法验证或者说测试自己的假设,无法确定自己的表达内容是否为真。它们还是在玩概率游戏,猜测给出的字符应该会跟用户在提示中输入的字符相匹配。

有时候,AI 甚至会给出非常荒谬的回答。OpenAI 团队将其称为“幻觉”。

随着技术进步,预计某些粗糙的问题会被一一克服。但从根本上讲,AI 或多或少还是会存在准确度问题。毕竟 AI 工具没有任何机制能够对自己的响应做出客观验证。

因此,准确率可以不断提高,但永远达不到完美。而趋于完美,正是 AI 真正取代 Web 开发者的前提。如果它本身不是程序员,那就无法判断哪些部分是对的、哪些是错的。AI 自己发现不了“幻觉”。

但大家别急,我也认真看了 GPT-4 的演示,AI 似乎能够自我纠正!只要复制 / 粘贴错误消息,它就能找到并解决问题。

但是……并不是所有幻觉都会引发异常。比如说,我最近用 GPT-4 在 React 上生成了一个〈Modal〉组件,虽然输出非常好,但还是存在一些可访问性错误。创建应用程序的人可能注意不到这些问题,不过最终用户肯定会发现!

还有代码中的安全漏洞呢?一旦引发可怕的错误,该由谁来承担责任?

还有一点:生成一个 50 行的 HTML 文档,跟输出生产就绪的 Web 应用程序之间根本就不是一回事。像博客这样的小型 JS 应用就有大约 6.5 万行代码,总计 900 多个文件。这还不包含写作文本,单是 JavaScript 和 TypeScript 的体量。

也就是说,即使准确率达到 95%,在这样的应用规模下也将很难调试。这相当于一位开发者用几个月时间构建一个巨大的项目,但却从未做过任何代码测试,直到 100% 完成后才加以验证。这不是生产力提升,而是前所未有的噩梦。

AI 不是什么神迹和魔法,它的质量直接取决于训练数据。而代码片段在互联网上随处可见,往往高度通用。相比之下,每个代码库都是独一无二的,网上鲜有大型开源代码库。那么,AI 要如何学会构建能够实际应用的大型项目?

按现在的发展速度看,很快非开发者就可以直接跟聊天机器人对接,轻松启动一个小型独立项目。也就是说,如今的 Webflow 等工具会被 AI 所替代,而且效果更好、功能更强,这绝对是件大好事!

但要让科技大厂们放弃自己的开发队伍,全面选择 AI 工程师?那还有很长的路要走,前面提到的这些潜在问题将严重阻碍这种想象在现实中落地。

增强,而非替代

说了这么多,我就明确给出自己的态度吧:我其实非常看好 AI 技术 😅。

我认为最有可能的情况,是 GPT-4 这类工具被整合进开发者工具当中,用来扩大熟练开发者的生产能力。

木匠并没有被电动工具所替代,会计师没有被电子表格替代,摄影师没有被数码相机 / 智能手机替代,我认为开发者也不会被大语言模型替代。

我当然不确定未来的开发者职位总量会不会有所下降;毕竟如果每位开发者的效率都显著提高,那岗位方面的整体需求应该减少才对。

但也不一定。就目前来讲,软件开发者仍处于供不应求的状态。在我工作过的每家公司,大家都有太多想做的事情,只因开发者数量有限而被迫作罢。

那如果开发者的工作效率瞬间提升 2 倍,结果会如何?无疑是修复更多 bug、发布更多功能、赚取更多利润。我们可以开发的东西太多了,根本不存在开发者过剩一说。

我反倒认为,大语言模型的普及会增加开发者的职位总量。

目前,很多企业根本就不雇用软件开发者。我曾在一家名叫 Konrad Group 的公司工作,这是一家专为客户构建 Web 应用程序的企业,客户名单里不乏家喻户晓的大厂。但因为开发成本太高,他们发现与其招聘固定开发人员,还不如把这活儿外包出去。

这些财富五百强公司会根据当前的软件开发成本做核算。这里我们假定一个场景:如果他们需要 4 名开发人员,平均年薪 15 万美元,那每年就是 60 万美元。在这种情况下,他们不如向外包机构支付 50 万美元来搞定这方面需求。但如果大语言模型真能提高开发者的工作效率,他们也许只雇 2 名年薪 15 万美元的开发者就够了。突然之间,原本自己没法做的项目现在可以做了!

我要澄清一下:我不是经济学家,以上案例安全就是随口一说。我不知道未来的情况会不会朝这个方向发展。但我想提醒大家,大语言模型的爆发并不一定会摧毁我们的工作和生活。没人知道未来会向哪里去,而我实在受不了人们言之凿凿地把前景描述得愁云惨淡。

网上不乏
与我相同的观点

Aaron Blaise 是一位经验丰富的动画师兼插画家。他在迪士尼工作了近 20 年,曾为《美女与野兽》(1991)、《阿拉丁》(1992)、《风中奇缘》(1995)等经典影片做出贡献。

几周之前,他在 YouTube 上发布了一段视频,题为《迪士尼动画师对 AI 动画的反应》(https://www.youtube.com/watch?v=xm7BwEsdVbQ)。他的观点跟我很像,并不觉得 AI 工具是种威胁,而认为它将提高动画师的生产力并创造出更多动画岗位。

来自几十个行业的艺术家和知识工作者们都在讨论这方面话题,毕竟很多人担心自己的工作会被 GPT-4、DALL-E 2 和 Midjourney 等 AI 工具所吞噬。

GPT-4 能通过模拟律师考试吗?可以,而且得分在人类应试者里能排进前 10%。所以律师们也慌了。

我个人认为,大多数专业人士都能找到将 AI 技术整合进工作流程的办法,借此提高自己的生产力和价值。一部分任务可能被全面委托给 AI,但只是部分任务、而非整个工作。

那如果我是错的,事实证明大语言模型可以全面取代软件开发者,又该怎么办?如果真是这样,那我觉得也不用太担心了,到那时候绝大多数知识工作者都会被“清洗”。

这样一来,我们就算是转行、转专业也没有用,AI 海啸之下将没有安全的高地。所以与其去赌未来会不会朝着最糟糕的方向去,倒不如专注于自己热衷的工作、感兴趣的问题、擅长的方向。

前端开发
与其他工程学科

网上有帮家伙,一直在暗示前端开发特别容易被 AI 替代,还建议开发者再精进一步,往后端或数据工程那边努力。

但我的观点恰恰相反。我觉得开发者群体根本就不用担心被淘汰,如果非得说哪部分群体更危险,我倒认为是后端。

OpenAI 的 GPT-4 直播展示了两段与代码相关的内容:

  • “Joke website”前端;

  • 基于 Python 的 Discord 机器人。

在这两个项目中,Python 代码对我来说似乎更接近生产。我最近用 Node.js 构建了一个 Discord 机器人,跟 GPT-4 生成的代码确实差不多。

相比之下,AI 为那个笑话网站生成的基础 HTML 文档,就跟我每天编写的前端代码间相隔十万八千里。

这可能有点以偏概全,但过去十年来,我发现很多复杂性要素已经从服务器转向了客户端。

Monolithic Express 应用程序已经转化为无服务器函数的集合,而我们的前端也从超链接数字文档发展为成熟的桌面质量应用程序。

再有,前端是用户与之交互的产品部分。企业当然希望自己的产品能体现出定制化、独特性和根据品牌形象精心设计等特点。与之对应,后端则完全不可见,所以通用后端要比通用前端更让人易于接受。

用大语言模型辅助学习

我听有些人说,ChatGPT 能帮助大家快速学习技术性技能。如果各位对教程中的某些内容感到困惑,不妨问问神奇的 AI。

这对我来说是个非常有趣的用例。从本质上讲,ChatGPT 就像你的结对程序员,能帮助你了解自己不熟悉的事物。你可以向它提出具体问题,并获取具体答案。

当然,使用过程中也要当心。利用 AI 工具来学习,也有正确的方式与错误的方式之分。

所谓错误的方式,就是把 AI 当作 GPS 导航。当我们打算开车前往某地时,就会把地址输入 GPS,然后不假思索地按它的指示前进。等到了目的地附近时我会把导航关掉,整个过程不做任何思考和评判。结果就是,我的方向感完全萎缩了,现在如果没有合成语音的指示,我根本不知道该往哪里走。😬

与之相对,我们最好把大语言模型当成“被告”,而自己则扮演“陪审团成员”。

你要认真听它在说什么,但不可全盘相信。保持怀疑的态度,以批判的心态考量一字一句。

不可盲目复制 / 粘贴 ChatGPT 生成的代码,而是逐行检查并保证你理解了其中内容。有不清楚的地方要提醒它做出澄清,并配合权威来源(例如官方文档)仔细检查看似可疑的部分。请记住,大语言模型 100% 自信,但却并非 100% 准确。

通过这种方式,相信大语言模型能够创造出前所未有的价值。😄

给各位年轻开发者的忠告

我之所以要写下这篇文章,就是想鼓励各位正在学习 Web 开发、并为大语言模型的爆发式进步压得喘不过气的朋友们。很多人彻底失去了信心,认为随着 AI 技术的继续成熟,自己耗费时间和精力掌握的所有技能将被无情淘汰。

我不敢保证未来一定不会这样。但我对 AI 能够给工作方式带来的影响仍抱怀疑。早在 2007 年,我就开始研究 HTML/CSS/JS,多年以来情况已经发生了很大变化。但开发者们仍然凭借强大的适应性,与技术一同进步、携手为网络世界塑造新的样貌。

到目前为止,我还没看到有切实迹象表明前端开发的工作处于危险之中。我也想象过未受任何专业训练的非开发者,在不了解 Web 技术的情况下会开发出怎样的 Web 应用程序。太多的因素会导致其无法运行了,所以即使 GPT 未来继续保持迭代,大家也没必要过于焦虑。这,又何尝不是另一种“幻觉”。

再次强调,我的观点很可能是错的,毕竟我可没有能预见未来的水晶球🔮。但未来总有不确定性,没准明天太阳就爆炸了,谁知道呢。但我真的很难相信 Web 开发者会被迅速淘汰,反而更担心潜在开发者会因为这种莫须有的可能性而放弃学习。

总之,但愿不要五年之后软件开发者需求更旺之时,大家才感觉后悔、反思当下的自己为什么要停止追求梦想。请继续努力吧,各位同学!❤️

声明:本文为 InfoQ 翻译,未经许可禁止转载。

原文链接:

https://www.joshwcomeau.com/blog/the-end-of-frontend-development/

今日好文推荐

弃用 Electron,微软重新设计 Microsoft Teams:速度提升 2 倍,内存减少 50%

前端测试实践:从Enzyme迁移到RTL

2023 年,我建议创业公司选择 Flutter

三年回顾:JavaScript与TypeScript最新特性汇总

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存