前端开发真会被AI取代吗?
翻译原文:…
在过去的几个月里,我经常跟担心会被AI会取代的刚进入职场的前端开发聊天,他们看了很多 GPT-4的demo,担心当AI熟练掌握 HTML/CSS/JS 时,他们已经失业了。
现在推特上到处都是这样的情绪:
我非常不同意这个看法,我不认为前端工程师的岗位会消失,并且非常讨厌这种恐惧,不确定、怀疑的态度在网上蔓延。
所以,在这篇文章中,我会分享我对可能发生的事情的假设,事情将会改变,但是不会像人们说的那样可怕。
提前说一下: 我在线教授软件开发,如果开发人员的工作岗位开始消失,对我的业务是非常不利的。 也就是说,这篇文章中所有的内容都是基于我的真实信念,你可以自己决定这些信念是否有偏见。
重新来过
1996年,在 Internet Explorer 3中, css首次公开,两年内,第一个“无代码”网站建设者Homestead已经推出。Homestead 可以让人们不写一行代码就构建出自定义的网站。
几乎从一开始,就有人担心web开发人员会被一些新技术取代,2000年代,是WordPress, 2010 年代,是 Webflow, 21世纪20年早期,是低代码工具。
而且,从某种程度来说,前端开发确实已经被淘汰了。 现在,如果当地的面包店,牙医,或者艺术家需要一个网站,他们可能不会雇佣一个开发人员,并支付他们数万美元从头开始创建一些东西,他们会登录 SquareSpace ,找到自己喜欢的模板,每月花费20美元。
但是到现在为止,前端开发依然存在。
上周、OPEN AI 展示了 GPT-4 ,做了一个令人印象深刻的演示:GPT-4 可以把一个网站的手绘草图变成功能齐全的网站,包括一些炫酷的js链接按钮、
这个是很了不起的,我认为他在原型设计上有很大的潜力...
但是然我们明确一点:几十年来,我们都不需要web开发人员来构建这种类型的页面,这个HTML文档与当前前端开发人员编写的代码有着巨大的差异。
放眼未来
到目前为止,我看到的大多数演示在范围上都非常优有限:一个简单的HTML页面,或者一个JavaScript函数,一个开发人员一个下午就能完成的事。
但这只是早期!如果事情以同样的速度发展,它能够在几年内构建整个应用程序,对吗?
说到驱动GPT-4等工具的机器学习模型(以下简称LLMs)、我并不是专家,比如GPT-4、但是我也确实了解一些他们是如何高水平工作的。
从根本上说,LLMs 是超级强大的文本预测器,给出提示后,他们会使用机器学习来尝试想出最可能符合提示的一组字符。
如果你尝试过 Chat GPT 或者 Bing's 的人工智能搜索工具,你可能会注意到,这些回答的正确率可能有80%,但是他们都是带着非常绝对的信心说出来的。
LLMs 无法确认他们所说的是真是假。他们在玩概率游戏,并估计他们的回答与提示符中的字符串是互相匹配的。
有时,这种回答一部分根本是不对的。OpenAI团队将这些现象称为“幻觉”。
随着技术的进步,我们可以预期一些粗糙的边缘会被打磨掉,但从根本上说,总会有某种程度的不准确。这些工具只是没有任何机制来客观地验证它们的响应。
因此,精确度会提高,但永远不会完美。如果我们谈论的是淘汰前端开发人员,这是一个问题。如果你不是一个程序员,你将无法判断哪些部分是准确的或不准确的。你无法发现所谓的幻觉。
但是、在GPT-4演示中,我们看到了AI如何自我修复! 复制/粘贴错误消息,它就会发现并修复问题。
但是,不是所有的幻觉都有例外。例如,我最近使用GPT-4使用React生成了一个组件,虽然输出令人惊讶地好,但它仍然犯了一些可访问性错误。创建应用程序的人可能不会注意到这些问题,但最终用户肯定会注意到!
代码中的安全漏洞怎么办?当事态严重恶化时,谁来负责?
还有一点:生成一个50行的HTML文档和生成一个可用于生产环境的web应用程序之间存在巨大差异。像这个博客这样的小JS应用程序有大约65000行代码,涉及900多个文件。这并不包括书面内容,只包括JavaScript和TypeScript。
即使有95%的准确率,这也很难调试。这就像一个开发人员花了几个月的时间构建一个巨大的项目,却从未真正尝试运行任何代码,直到100%完成。这简直是噩梦。
人工智能不是魔法。它的好坏取决于它的训练数据。
代码片段在互联网上到处都是,而且通常是通用的。相比之下,每个代码库都是唯一的。很少有大型的开源代码库。人工智能应该如何学习如何建造现实世界中的大型项目?
我认为,距离大型科技公司解雇开发人员,用敏捷的工程师取代他们,我们还有很长的路要走。在我看来,似乎有几个潜在的无法解决的问题阻碍了这成为现实。
为什么你的博客这么大? 前面,我提到我的博客有大约65000行代码。如果你不熟悉我的工作,你可能会很困惑为什么一个简单的博客可以这么大!它得有多过度设计?? 有这么多代码的原因是我的大部分博客文章都有很多自定义互动元素,比如我的Flexbox互动指南
增加,而不是取代
你可能从这篇文章中不知道,我实际上对人工智能非常乐观。
我认为最有可能的情况是像GPT-4这样的工具集成到开发人员工具中,并用于扩展熟练的开发人员可以做的事情。
木匠没有被电动工具所取代,会计师没有被电子表格所取代,摄影师没有被数码相机/智能手机所取代,我不认为开发人员会被 LLMs 所取代。
我确实想知道开发人员的工作岗位需求是否会下降.
如果每个开发人员都明显更有效,不是应该需要更少的开发人员吗?
不一定。就目前情况来看,软件开发人员的需求远远大于供给。在我工作过的每家公司,我们都有很多想做的事情,但我们都受到了开发人员数量的限制。
如果开发人员的生产力突然提高了两倍,会发生什么?更多的漏洞将被修复,更多的功能将被发布,更多的利润将被创造出来。
我们有非常多需要创造的内容,所以有非常多事情需要开发人员去做。
实际上,我认为这可以增加开发人员的工作岗位。
如今,有很多公司根本不雇佣软件开发人员。我曾经在一家名为Konrad Group的公司工作,这是一家为其他公司开发web应用程序的机构,其中许多公司都是家喻户晓的名字。因为开发成本非常高,所以他们将自己的开发需求外包出去,而不是在内部雇佣开发人员。
这些《财富》500强公司根据当前软件开发成本进行计算。让我们编一些数字:假设他们需要4个开发人员,每人15万美元,每年60万美元。对他们来说,向一家机构支付50万美元来为他们来说更有意义。但如果 LLMS 真的能够提高开发人员的生产力,他们可能会以每人15万美元的价格雇佣2名开发人员,做同样数量的工作。突然之间,数学变得更有吸引力了!
让我明确一点:我不是经济学家,这些都是疯狂的猜测。我并不是说我知道事情会变成这样。我想说的是,这对我们不利并不是一个既定的结论。没有人知道事情会如何发展,我有点厌倦了人们表现得好像开发者被替代的情况被想象成是既成事实。
不是只有我们在讨论这个问题
Aaron Blaise是一位资深的动画师和插画家。他在迪士尼工作了近20年,为迪士尼经典电影做出了非常多贡献,如《美女与野兽》(1991)、《阿拉丁》(1992)、《波卡洪塔斯》(1995)等。
几周前,他在YouTube上发布了一段视频:迪士尼动画师对AI动画的反应。读完这篇博文,你可能会觉得他的观点很熟悉:他不认为这些工具是一种威胁,他认为它们可以提高动画师的生产力,并带来更多动画师的工作。
来自几十个行业的艺术家和知识工作者正在进行同样的对话。很多行业的人都担心他们的工作将被GPT-4、dall-e2和Midjourney等人工智能吞噬。
GPT-4能通过模拟律师考试吗? 考试成绩在前10%之内。很多律师都在讨论同样的问题。
我个人的信念是,在大多数情况下,专业人士会找到方法将这项技术集成到他们的工作流程中,提高他们的生产力和价值。某些任务可以委托给 AI,但不是所有。
但如果我错了,LLMS 完全可以取代软件开发人员呢? 如果是这样的话,我怀疑 LLMs 将取代绝大多数的知识工作者。
这不是那种你换一门学科就能避免的海啸。所以,与其把赌注押在未来,为什么不专注于你所热爱的,你感兴趣的,你擅长的呢?
前端与其他工程学科比较 网上有些人认为前端开发特别容易受到人工智能替代的影响,并建议开发人员向上移动,专注于后端或数据工程。 在我看来,这完全是颠倒的。我不认为任何开发者都需要担心自己会被淘汰,但如果这里有任何漏洞的话,我认为是在后端。
上周OpenAI的GPT-4直播展示了两个与代码相关的演示:
在这两个项目中,Python代码对我来说似乎更适合机器生产。我最近用Node.js构建了一个Discord机器人,代码看起来非常相似。
这是一种过度解读,但在过去10年左右的时间里,许多复杂性已经从服务器转移到客户端。整体快速应用程序已经转变为无服务器功能的集合,而我们的前端已经从超链接的数字文档演变为成熟的高质量桌面应用程序。
此外,前端是产品中与用户交互的部分。公司通常希望他们的产品是定制的,独特的,根据他们的品牌精心制作的。相比之下,后端是不可见的。通用后端比通用前端更容易被接受。
令人沮丧的是,我们行业中有很多人认为后端开发比前端开发更难或更复杂,“真正的”工程是在服务器上进行的。当然,这是无稽之谈。
我认为自己是一个全栈开发人员。实际上,我的职业生涯是从后端开始的,使用PHP和Ruby on Rails。我仍然花了大量的时间为我的课程平台编写后端代码。这两方面的困难各不相同。它们既复杂又困难。
(顺便说一下,前端仍然是复杂和困难的,即使它不涉及JS框架。我非常尊重那些专门使用HTML、CSS和普通JS制作高质量网站的人,他们专注于可用性和可访问性。而且我不认为它们会很快被人工智能取代。)
使用 LLMs 来帮助你学习
我听一些人说,在学习技术技能时,ChatGPT真的很有帮助。如果你对教程中的某些内容感到困惑,你可以让AI向你解释!
对我来说,这是一个非常有趣的用例。从本质上讲,ChatGPT就像一个结对程序员,可以帮助你理解你不理解的东西。你可以问它具体的问题并得到具体的答案。
但我觉得你得小心点。使用这样的工具来帮助你学习,有正确的方法和错误的方法。
错误的做法是将其视为GPS导航。当我要开车去某个地方时,我会把地址输入GPS,然后不加区别地按照它的指示去做。我通常会在我需要去的地方结束,但这对我来说不需要任何精神努力。结果,我的方向感完全衰退了。我现在走到哪都希望有人工合成的声音告诉我该怎么做。
与其把它当成GPS,我建议你把它当成陪审团的一员,而 LLMs 是被告,站在证人席上。
你会听他们说什么,但你不会把它当作事实。你会持怀疑态度,批判性地思考每一个字。
不要盲目地复制/粘贴ChatGPT生成的代码,而是逐行检查它,并确保理解它。对那些看起来可疑的事情,请向权威人士(例如:官方文件)。请记住 LLMs 是100%自信的,但不是100%准确的。
如果你遵循这个策略,我认为 LLms 可以提供很多价值。
给有抱负的开发人员的一点信息
我想写这篇博客的原因是专门针对那些正在学习web开发的人,他们感到焦虑和沮丧,因为当整个领域即将被淘汰时,花费所有的时间/精力来学习这些技能是没有意义的。
我不能保证事情会未来会像现在一样。也确实怀疑人工智能会对我们的工作方式产生影响。早在2007年,我就开始摆弄HTML/CSS/JS,从那时起,事情发生了很大的变化。开发人员总是必须适应环境,与技术一起发展。
但到目前为止,我还没有看到任何迹象表明我们的工作有危险。我曾试着想象过,如果非开发人员能够在不了解web技术的情况下构建整个web应用程序,它会是什么样子,我想出了很多理由来解释为什么它行不通,即使未来的GPT迭代不会产生这么多幻觉。
我可能是错的。我没有水晶球。据我所知,太阳明天可能会爆炸。但我真的不相信我们正处于web开发人员被淘汰的风口浪尖。我担心,许多潜在的开发人员放松脚步。
我不希望你在5年后回头看的时候,如果软件开发人员更受欢迎,你后悔停止了追求你的梦想。️