原文:The end of frontend development
在过去的几个月里,我与许多初入职场的开发人员交谈过,他们对人工智能越来越感到焦虑。他们看到了像GPT-4这样的工具越来越令人印象深刻的演示,担心等到他们熟练掌握HTML/CSS/JS时,就没有工作机会了。我非常不同意这种看法。我认为网页开发人员的工作并不会消失。而且我对网络上流传的恐慌宣传感到非常厌烦。因此,在这篇博客文章中,我将分享我的假设,说明会发生什么变化,但这种变化并不像人们所说的那样可怕。
再来一次
CSS语言于1996年首次发布,发布平台是Internet Explorer 3。在两年内,第一个“无需代码”的网站构建器Homestead应运而生。Homestead允许人们构建定制的网页,而无需编写任何代码:从一开始,人们就一直担心新技术会使网页开发人员变得多余。在2000年代,是WordPress。在2010年代,是Webflow。在2020年代初,是“无代码”工具。而且,在某种程度上,网页开发人员已经变得不再重要了!如今,如果一个当地的面包店、牙医或艺术家需要一个网站,他们可能不会雇用一个开发人员,花费数万美元从零开始构建一个网站。他们会使用SquareSpace,找到他们喜欢的模板,然后支付20美元/月。但是,网页开发人员仍然存在。上周,OpenAI展示了GPT-4的功能。其中一个展示非常令人印象深刻:GPT-4可以将手绘的网站草图转换为完全功能的网站,包括一些JS代码来连接“显示笑话”按钮。这是非常出色的,我认为它在原型设计方面具有很大的潜力......但是让我们明确一点:几十年来,我们一直不需要网页开发人员来构建这些类型的页面。这个HTML文档与前端开发人员今天编写的代码有着巨大的差异。
展望未来
到目前为止,我看到的大部分演示都很有限:一个简单的HTML页面或一个单一的JavaScript函数,这些是一个开发人员在一个下午内可以完成的工作。但这只是开始!如果事情继续以同样的速度发展,它将能够在几年内构建整个应用程序,对吗?
当涉及到GPT-4这样的LLM时,我远非专家,但我了解它们在高层次上的工作方式。从根本上讲,LLMs是超级强大的文本预测器。给定提示后,它们使用机器学习来尝试找出最可能跟随提示的字符集。像OpenAI这样的公司花费大量时间和精力来调整模型以改进输出。一群人类标注者“评分”模型的输出,模型学习和演变。
如果您尝试过Chat GPT或Bing的AI-powered搜索等工具,您可能已经注意到,回复可能是80%的正确,但它们说话时绝对和不可动摇的自信。LLMs不能验证它们的假设或测试它们的假设。它们不能确认它们所说的是否真实。它们正在玩一个概率游戏,并估计这个字符串似乎与提示字符串兼容。有时,响应的某些部分是不可理解的。OpenAI团队将这些称为“幻觉”。随着技术的改进,我们可以期望一些不完美之处被平滑掉,但从根本上讲,总会有一定程度的不准确性。这些工具根本没有任何机制来客观地验证它们的响应。
因此,准确性将得到改善,但永远不会是完美的。如果我们正在谈论让网页开发人员变得多余,那么这是一个问题。如果你不是一个程序员,你将无法分辨哪些部分是准确的,哪些不准确。你无法察觉到幻觉。但是等等,在GPT-4的演示中,我们看到了AI如何自我修复!复制/粘贴错误消息,它会找到并修复问题。但是,不是所有的“幻觉”都会引起异常。例如,我最近使用GPT-4在React中生成一个组件,虽然结果出人意料地好,但仍然存在一些无障碍性问题。创建应用程序的人可能不会注意到这些问题,但最终用户肯定会注意到!
那么代码中的安全漏洞呢?当事情出了大问题时,谁应该负责?
还有一点:生成一个50行的HTML文档和输出一个可供生产使用的Web应用程序之间存在巨大的差异。像这篇博客这样的小型JS应用程序包含约65k行代码,跨越900多个文件。这不包括书面内容,只包括JavaScript和TypeScript。即使有95%的准确率,这也是非常难以调试的。这就像开发人员花费几个月的时间构建一个巨大的项目,却从未尝试运行其中的任何代码,直到完成100%。这是噩梦的东西。
AI并不是魔法。它的实际效果取决于其训练数据。代码片段遍布互联网,并且通常是通用的。相比之下,每个代码库都是独一无二的。几乎没有大型开源代码库。AI如何学习构建大型真实世界的项目?
我们正在迅速接近这样一个时刻,即非开发人员可以坐下来使用聊天机器人来制作一个小型自包含项目,这种项目目前由工具像Webflow构建。这很棒!
但是,我认为我们离主要科技公司放弃他们的开发人员并用提示工程师来取而代之还有很长的路要走。对我来说,这似乎存在几个无法解决的问题。
增强而非替代
从这篇文章中你可能无法了解,但我对人工智能非常乐观。😅我认为最有可能的情况是,像GPT-4这样的工具被集成到开发工具中,并用于增强有技能的开发人员所能做的事情。木匠并没有被电动工具取代,会计师并没有被电子表格取代,摄影师并没有被数字相机/智能手机取代,我认为开发人员也不会被LLMs取代。我曾经想过,也许开发人员的总数会减少;毕竟,如果每个开发人员的效率显著提高,我们需要的开发人员数量就会减少吗?
未必。就目前而言,软件开发人员的需求远远超过供应。我工作过的每家公司都有很多我们想要做的事情,但我们受制于我们所拥有的开发人员数量。如果开发人员突然变得更有效率,会发生什么?将修复更多的错误,发布更多的功能,赚取更多的利润。没有建造的东西短缺,因此并不像我们会用完开发人员的工作。我认为这可能会增加总的开发人员数量。如今,有许多公司根本不雇用软件开发人员。我曾经为一家名为Konrad Group的公司工作,这是一家为其他公司构建Web应用程序的机构,其中许多公司是家喻户晓的品牌。由于开发成本如此之高,他们更倾向于外包开发需求,而不是在内部雇用开发人员。那些财富500强公司正在根据当前的软件开发成本进行计算。让我们假设他们需要4名每人150,000美元的开发人员,共计600,000美元/年。对于他们来说,支付500,000美元给机构来管理这个项目会更有意义。但是,如果LLMs确实增强了开发人员的生产力,他们可能能够雇用两个每人150,000美元的开发人员完成同样的工作。突然之间,这笔费用变得更具吸引力!
让我明确一点:我不是经济学家,这都是猜测。我并不是说我知道这肯定会成为事实。我所说的是,这并不是不利于我们的结果。没有人知道这将如何发展,我有点厌倦人们表现得最坏的情况是定局了。
我们不是唯一在讨论这个问题的人
Aaron Blaise是一位资深动画师和插画师。他在迪士尼工作了近20年,为《美女与野兽》(1991年)、《阿拉丁》(1992年)、《风中奇缘》(1995年)等经典迪士尼电影做出了贡献。几周前,他在YouTube上发布了一段视频:《迪士尼动画师对AI动画的反应》。读完这篇博客文章后,他的看法可能会让你感到熟悉:他并不认为这些工具是威胁,而是认为它们将增加动画师的生产力,并导致更多的动画师工作机会。在数十个行业中,艺术家和知识工作者正在进行相同的对话。人们担心他们的工作即将被GPT-4、DALL-E 2和Midjourney等AI取代。
GPT-4可以通过模拟的律师考试,并获得测试者前10%的成绩。许多律师正在进行这些确切的讨论。我个人的信仰是,大多数工作专业人士将找到将这种技术融入他们的工作流程中的方法,从而增加他们的生产力和价值。某些任务可能会被委托给AI,但没有太多的工作会被取代。但是,如果我错了,LLMs可以完全取代软件开发人员,怎么办?如果是这样,我认为LLMs将取代绝大多数知识工作者。
这不是你可以通过转行避免的那种海啸。没有更高的地方。因此,与其试图赌未来会带来什么,为什么不专注于你的热情所在,你感兴趣的事情,你擅长的领域呢?
使用LLMs帮助学习
我听说过有些人说,ChatGPT在学习技术技能方面非常有帮助。如果你在教程中遇到了困惑,你可以向AI提问以获得解释!
这对我来说是一个非常有趣的用例。基本上,ChatGPT就像一个技术伙伴,可以帮助你理解你不理解的东西。你可以提出具体问题并得到具体答案。但是我认为你需要小心谨慎。使用这样的工具帮助你学习有正确和错误的方式。错误的方式是将其视为GPS导航。当我要开车去某个地方时,我会把地址输入我的GPS,然后盲目地按照它的指示行驶。我通常会到达目的地,但这需要我完全不费心思。因此,我的方向感已经完全退化了。现在我没有合成的语音指示,就无法到达任何地方。😬我建议你不要像使用GPS导航一样使用它,而是像陪审团成员一样对待它,让LLM作为被告,上庭作证。你会听取他们的意见,但你不会将其视为事实。你会持怀疑态度,对每个字眼进行批判性思考。
不要盲目地复制和粘贴ChatGPT生成的代码,逐行检查,确保你理解它。请它澄清问题。对于看起来可疑的内容,请使用权威来源(例如官方文档)进行双重检查。请记住,LLMs是百分之百自信,但不一定百分之百准确。如果你按照这个策略行事,我认为LLMs可以提供很多价值。😄
给渴望成为开发者的人的信息
给那些正在学习Web开发并感到焦虑和失落的人们写这篇博客,因为他们觉得在整个领域即将过时的情况下,花费所有时间/精力来构建这些技能没有意义。我不能保证事情会完全保持不变。我确实认为AI将对我们的工作产生影响。我从2007年开始摆弄HTML/CSS/JS,自那时以来,事情发生了很大变化。开发人员总是不得不适应技术的发展。但迄今为止,我所见过的没有任何迹象表明我们的工作岌岌可危。我试图想象,如果非开发人员能够在不了解Web技术的情况下构建整个Web应用程序,它会是什么样子,即使未来的GPT版本不会产生幻觉,我也能想出很多原因说明它不起作用。我可能是错的。我没有水晶球🔮。我不知道明天太阳会不会爆炸。但我真的不相信我们正在Web开发人员被淘汰的边缘。我担心许多有意成为开发人员的人没有理由减缓学习的步伐。我不希望你们在5年后回头看,如果软件开发人员需求更加紧缺,后悔停止追寻梦想。❤️