在过去的几个月里,我与许多职业初期的开发者交谈,他们对人工智能越来越感到焦虑。他们看到了像GPT-4这样的工具越来越令人印象深刻的演示,并担心当他们熟练掌握HTML/CSS/JS时,就没有工作机会了。
这种情绪现在充斥在Twitter上:
我完全不同意这种观点。我认为web开发者的工作不会消失。而且,我对网上传播的恐慌、不安和怀疑感到非常厌烦。
所以,在这篇博客文章中,我将分享我的假设,事情会发生变化,但并不像人们所说的那么可怕。
再来一次
CSS 语言首次发布于 1996 年,在 Internet Explorer 3 中问世。在两年内,第一个“无代码”网站构建器 Homestead 上线了。
Homestead 让人们可以在不编写一行代码的情况下构建自定义网页:
自从一开始,就有人担心 Web 开发人员会被某种新技术取代。在 2000 年代,这种担忧指向了 WordPress。在 2010 年代,是 Webflow。在 2020 年代初,是“无代码”工具。
从某种程度上说,Web 开发人员已经被取代了!如今,如果一家当地的面包店、牙医或艺术家需要一个网站,他们可能不会雇佣开发人员,花费数万美元从头开始建立一个网站。他们会选择使用 SquareSpace,找到喜欢的模板,并每月花费 20 美元。
然而,Web 开发人员依然存在。
上周,OpenAI 展示了 GPT-4。这个展示中有一个相当令人印象深刻的演示:GPT-4 可以将手绘的网站草图转换为功能完善的网站,甚至包括一点 JS 来连接 “Reveal Punchline”的按钮。
这是非常了不起的,我认为这对于原型设计具有很大的潜力……但我们要明确的是:几十年来,我们并不需要 Web 开发人员来构建这类页面。这个 HTML 文档与现今前端开发人员编写的代码之间存在着巨大的差异。
展望未来
到目前为止,我所看到的大部分演示都相当有限:一个简单的 HTML 页面或一个单一的 JavaScript 函数。这些是单个开发人员在一个下午就能完成的事情。
但这些只是初期阶段!如果事物以相同的速度继续加速,那么它将能够在几年内构建整个应用程序,对吧?
我在 LLM(GPT-4)方面远非专家,但我确实在高层次上了解它们是如何运作的。
从根本上讲,LLM 是超强大的文本预测器。给定一个提示,它们会使用机器学习尝试找出跟在提示后最可能的一组字符。
像 OpenAI 这样的公司花费大量时间和精力调整模型以改善输出。一大批人类标注者对模型的输出进行“评分”,模型随之学习和演进。
LLM无法验证其假设或检验其假说。它们无法确认自己说的话是对还是错。它们在玩概率游戏,并估计这个字符序列似乎与提示中的字符序列相容。
有时,回答中的部分内容是荒谬的。OpenAI团队将这些称为“幻觉”。
随着技术的改进,我们可以期待一些粗糙的边缘得到打磨,但从根本上讲,总会存在一定程度的不准确性。这些工具根本没有任何客观验证其回答的机制。
因此,准确性会提高,但永远不会完美。如果我们谈论让Web开发者失业,这是个问题。如果你不是程序员,你将无法判断哪些部分是准确的,无法发现幻觉。
但等等,在GPT-4演示中,我们看到AI是如何纠正自己的错误的!复制/粘贴错误信息,它将找到并修复问题。
但是,不是所有的幻觉都会导致异常。例如,我最近使用GPT-4生成一个React的组件,虽然输出的质量令人惊讶地好,但它在可访问性方面仍然犯了一些错误。创建应用的人可能不会注意到这些问题,但最终用户肯定会注意到!
那么代码中的安全漏洞呢?当事情出现严重错误时,谁应该负责?
再多说一点:生成一个50行的HTML文档和生成一个生产就绪的Web应用之间有着巨大的差距。像这个博客这样的小型JS应用有大约65,000行代码,分布在900多个文件中。这还不包括书面内容,仅包括JavaScript和TypeScript。
即使准确率达到95%,这也将难以调试。这就像开发人员花几个月时间构建一个庞大的项目,但从未实际尝试运行任何代码,直到它100%完成。这简直是噩梦。
AI并不神奇。它仅仅和其训练数据一样好。代码片段遍布互联网,通常是通用的。相比之下,每个代码库都是独一无二的。很少有大型开源代码库。AI如何学会构建大型实际项目?
我们非常快地接近一个非开发者可以坐下来与聊天机器人一起快速完成一个小型独立项目的时代,这是现在人们使用像Webflow这样的工具来构建的。这太棒了!
但是我认为我们离主要科技公司解雇开发人员并用提示工程师替代他们还有很长的路要走。在我看来,有几个潜在的难以解决的问题阻碍了这一愿景成为现实。
增强,而非取代
从这篇文章中,你可能不知道我实际上对AI非常乐观。😅
我认为最有可能的情况是,像GPT-4这样的工具会整合到开发者工具中,用来增强有技能的开发者所能做的事情。
木匠没有被电动工具取代,会计师没有被电子表格取代,摄影师没有被数码相机/智能手机*取代,我认为开发者也不会被LLM取代。
我曾经想过,也许开发者工作的总量会减少;毕竟,如果每个开发者的效率都大大提高,我们不是需要更少的开发者吗?
并非必然。目前,软件开发者的需求远远大于供应。在我曾经工作的每家公司,我们都有很多想做的事情,但受到了开发者数量的限制。
如果开发者突然变得效率提高两倍会发生什么?更多的错误将被修复,更多的功能将被实现,更多的利润将被创造。有很多事情要做,所以我们不会让开发者失业。
我实际上认为这可能会增加开发者工作的总量。
今天,有很多公司根本不雇佣软件开发者。我曾在一家名为Konrad Group的公司工作,这家公司为其他公司(其中许多是家喻户晓的品牌)开发网络应用。因为开发成本很高,所以他们将开发需求外包,而不是内部雇佣开发者。
这些财富500强公司是根据当前软件开发成本来进行计算的。让我们假设一些数字:假设他们需要4个开发者,每个人年薪15万美元,总共60万美元/年。对他们来说,支付50万美元让代理商来管理这个项目会更有意义。但是,如果LLM真的能提高开发者的生产力,他们也许只需要雇佣2个年薪15万美元的开发者来完成同样的工作。突然之间,这个计算变得更具吸引力了!
让我明确一点:我不是经济学家,这些都是猜测。我并不是说我知道事实会如何发展。我想说的是,这不是一个既定的结论,这对我们来说是不利的。没有人知道这会如何发展,我已经厌倦了那些认为最糟糕的情况已经成为定局的人。
我们并非唯一在进行这种讨论的人
艾伦·布莱斯(Aaron Blaise)是一位资深动画师和插画师。他在迪士尼工作了近20年,为《美女与野兽》(1991年)、《阿拉丁》(1992年)、《风中奇缘》(1995年)等经典迪士尼电影做出了贡献。
几周前,他在YouTube上发布了一段视频:迪士尼动画师对AI动画的反应。在阅读了这篇博客文章之后,他的观点对你来说可能会很熟悉:他并不认为这些工具是威胁,而是认为它们会提高动画师的生产力,并带来更多的动画师工作。
现在,数十个行业的艺术家和知识工作者都在进行同样的讨论。人们担心他们的工作即将被像GPT-4、DALL-E 2和Midjourney这样的AI所取代。
GPT-4能在模拟律师资格考试中取得前10%的成绩。许多律师也在进行这些相同的讨论。
我个人的信仰是,大多数在职专业人士会找到方法将这项技术整合到他们的工作流程中,提高他们的生产力和价值。某些任务可能会交给AI来完成,但很少有工作会被取代。
但是,如果我错了,LLM真的可以完全取代软件开发者呢?如果是这样的话,我怀疑LLM将取代绝大多数知识工作者。
这不是一种可以通过转行避免的巨大影响。没有一个更高的领域可以避免。因此,与其试图押注未来会带来什么,为什么不关注你热衷的事物,你感兴趣的事物,以及你擅长的事物呢?
使用LLM来帮助你学习
我从一些人那里听说,ChatGPT在学习技术技能方面非常有帮助。如果你在教程中对某个内容感到困惑,你可以请AI为你解释!
对我来说,这是一个非常有趣的用例。从本质上讲,ChatGPT就像一个编程伙伴,可以帮助你理解你不懂的东西。你可以向它提出具体问题并得到具体答案。
但我认为你需要小心。使用这种工具来帮助你学习有正确和错误的方法。
错误的方法是把它当作GPS导航。当我需要开车去某个地方时,我会把地址输入GPS,然后无条件地遵循它的指示。虽然我通常会到达目的地,但这并不需要我付出任何心智努力。结果,我的方向感完全消失了。现在,如果没有合成的声音告诉我该怎么做,我就无法去任何地方。
与其把它当作GPS,我建议你把它当作你是陪审团的成员,而LLM是被告,站在证人席上。
你会听他们说什么,但不会把它当作事实。你会保持怀疑,并对每个字都进行批判性思考。
与其盲目地复制/粘贴ChatGPT生成的代码,不如逐行浏览,确保你了解其中的含义。向它请教。对于看似可疑的事情,请使用权威来源(如官方文档)进行核实。请记住,LLM具有100%的自信,但并非100%准确。
如果你遵循这种策略,我认为LLM会提供很多价值。
渴望成为开发者的人的一条信息
我想写这篇博客文章的原因,是特别针对那些正在学习web开发的人,他们感到焦虑和沮丧,觉得在整个领域即将被淘汰的情况下,花费所有的时间/精力学习这些技能是没有意义的。
我不能保证事情会一直保持不变。我确实怀疑AI会对我们的工作方式产生影响。我从2007年开始尝试使用HTML/CSS/JS,从那时起,事情发生了很大变化。开发者一直需要适应,与技术共同进化。
但到目前为止,我看到的一切都没有表明我们的工作岌岌可危。我尝试想象,如果非开发者能够在不了解网络技术的情况下构建整个Web应用程序,情况会是什么样子?即使未来的GPT版本不再产生那么多的幻觉,我也想出了很多为什么这样做行不通的原因。
我可能是错的。我没有水晶球🔮。就我所知,太阳明天可能会爆炸。但我真的不认为我们正处在web开发人员被取代的边缘。我担心很多潜在的开发者因为这个原因而放慢了脚步。
我不希望你在5年后回顾,如果软件开发人员的需求更加旺盛,后悔你停止追求梦想。
总结
这篇文章的作者Josh W Comeau讨论了人工智能,尤其是类似GPT-4的大型语言模型(LLM)对前端开发的影响。作者认为,尽管这些模型具有强大的生成代码能力,但它们无法完全取代前端开发人员。他提到了几个关键点:
LLMs不能验证它们的假设或测试假设,无法确认生成的代码是否完全正确。 LLMs可能产生“幻觉”或错误,需要开发人员进行修复和调整。 当生成大型项目时,这些模型的准确性可能会下降,导致难以调试的问题。 安全性和责任问题仍然需要开发人员的专业知识。 作者相信,LLMs最终将成为开发人员的辅助工具,提高他们的生产力,而不是取代他们。这些工具可以被视为一种协作伙伴,帮助开发人员解决问题和学习新技能。然而,他建议谨慎使用这些工具,并始终以批判性思维来评估其输出。
尽管AI技术正在不断发展,但作者认为前端开发者的工作并不处于被取代的风险之中。他鼓励那些正在学习Web开发的人继续努力,不要因为担忧未来而放弃追求梦想。
本文转载自微信公众号「大迁世界」,可以通过以下二维码关注。转载本文请联系大迁世界公众号。