别把 OpenAI 太当回事,它远未达到替换前端的地步

Posted 前端达人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了别把 OpenAI 太当回事,它远未达到替换前端的地步相关的知识,希望对你有一定的参考价值。

最近几个月,我和很多初入行的开发人员交谈,他们对AI越来越感到焦虑。他们看到像GPT-4这样的工具展示的越来越令人印象深刻的演示,担心等他们掌握了html/CSS/JS,就没有任何工作机会了。这种情绪现在在Twitter上广泛存在:

我认为网页开发工作并不会消失。我非常厌倦在网上看到的那些“FUD”(宣传恐惧、不确定性和怀疑的信息)。因此,在本篇博客中,我将分享我对未来的猜测。虽然情况将发生改变,但不会像人们所说的那样可怕。

很早之前就有自动生成代码的工具

CSS语言于1996年首次发布于Internet Explorer 3中。两年内,第一款“无代码”网站构建器Homestead应运而生。Homestead让人们可以在不写一行代码的情况下构建自定义网页:

从一开始,人们就一直担心新技术会使网络开发人员变得多余。在2000年代,是WordPress;在2010年代,是Webflow;在2020年代初,是“无代码”工具。某种程度上,网络开发人员已经过时了!现在,如果当地的面包店、牙医或艺术家需要一个网站,他们可能不会雇佣开发人员并支付数万美元来从头构建一个网站。他们会跳到SquareSpace,找到他们喜欢的模板,花费20美元/月。然而,网络开发人员仍然存在。

上周,OpenAI展示了GPT-4的功能。其中一个相当令人印象深刻的演示是:GPT-4可以将手绘的网站草图转换成完全功能的网站,包括一些JS代码来连接“揭示妙语”按钮。

非常出色,我认为它在原型设计方面有很大的潜力...但是让我们明确一点:几十年来,我们并不需要Web开发人员来构建这些类型的页面。这个HTML文档和现代前端开发人员编写的代码之间存在巨大的差异。为了更好地理解这段话,我们需要知道,随着互联网的发展,前端开发已经从简单的HTML页面转变为更复杂的Web应用程序和移动应用程序的构建。现代前端开发人员需要熟练掌握各种编程语言和框架,并了解如何优化性能和用户体验。因此,虽然这个HTML文档令人印象深刻,但它并不代表现代前端开发的水平。

展望未来

到目前为止,我看到的大部分演示都相当有限:一个简单的HTML页面,或者一个单独的javascript函数。这些都是一个开发人员在下午可以完成的事情。但这只是开始!如果事情继续以同样的速度加速发展,几年后就能够构建整个应用程序了,对吧?

虽然我不是像GPT-4这样的LLM专家,但我在高层次上理解它们的工作方式。从根本上讲,LLMs是超级强大的文本预测器。在给定提示的情况下,它们使用机器学习来尝试提供最有可能的字符集来跟随提示。像OpenAI这样的公司花费大量的时间和精力来调整模型,以改善输出。大量人工标注者对模型的输出进行“评分”,模型学习和演化。

如果你使用过像Chat GPT或Bing的AI搜索等工具,你可能会注意到,响应的正确率可能只有80%,但它们会带有绝对和不可动摇的自信。LLMs不能验证它们的假设或测试它们的假设。它们无法确认它们所说的是否正确。它们在玩一个概率游戏,并估计这个字符集似乎与提示中的字符集兼容。有时,响应中的某些部分是荒谬的。OpenAI团队将其称为“幻觉”。

延伸阅读:LLMs 是什么?

LLMs 指的是 Language Model with Legal Text,它是一种基于语言模型的人工智能技术,专门用于处理法律文件和文本。这种技术可以模拟人类律师的思维和行为,通过自然语言处理和机器学习算法,实现自动化的法律文件处理和分析。

随着技术的改进,我们可以期望一些粗糙的边缘被磨平,但从根本上讲,总会存在某种程度的不准确性。这些工具没有任何机制来客观地验证它们的响应。

在 GPT-4 的演示中,我们看到了 AI 可以修复自身错误的能力!只需要复制/粘贴错误信息,它就能找到并修复问题。不过,并不是所有生成的代码都是没有问题的。比如,最近我用 GPT-4 生成了一个使用 React 的 <Modal> 组件,尽管输出结果非常出色,但它还是存在一些无障碍方面的错误。这些问题可能不会被创建应用程序的人注意到,但最终用户肯定会发现!那么,代码中的安全漏洞又该如何处理呢?当出现严重问题时,责任归属于谁呢?

在举个例子,比如我的这个博客项目

再说一点:生成一份包含 50 行 HTML 代码的文档和生成一个可用于生产环境的 Web 应用程序之间存在着巨大的差异。像这个博客一样的小型 JS 应用程序有着约 65,000 行代码,分布在 900 多个文件中。这还不包括文本内容,只包括 JavaScript 和 TypeScript 代码。

即使准确率高达 95%,调试这些代码也非常困难。这就像一个开发者在数月内构建一个大型项目,却从未尝试运行任何代码,直到项目完全完成。这是噩梦般的情况。

AI 并不是神奇的存在,它的效果取决于其所训练的数据。代码片段在互联网上随处可见,而且通常都是通用的。相比之下,每个代码库都是独一无二的。大型开源代码库非常少。那么,AI 怎么能够学习如何构建真实世界的大型项目呢?

我们很快就会达到一个非开发人员可以通过聊天机器人快速构建小型自包含项目的阶段,这些项目目前需要使用类似 Webflow 的工具来构建。这很棒!但我认为,我们离主要科技公司放弃开发人员并用智能工程师替代他们的日子还有很长的路要走。

加强而非替代

从这篇文章中你可能不知道,但我实际上对 AI 很乐观。

我认为最有可能的情况是像 GPT-4 这样的工具会被整合到开发工具中,用于增强有技能的开发者所能做的事情。木匠没有被电动工具所取代,会计师没有被电子表格所取代,摄影师没有被数码相机/智能手机所取代,我不认为开发者会被 LLMs 所取代。

我想知道如果开发者的总体生产力突然提高了 2 倍会发生什么。会有更多的错误得到修复,更多的功能得到发布,更多的利润得到创造。有很多需要开发的东西,所以我们不会缺少开发者做的工作。我实际上认为这可能会增加开发者的总数。

今天,有很多公司根本不雇用软件开发人员。我曾经为 Konrad Group 工作过,这是一家为其他公司构建 Web 应用程序的机构,其中许多是家喻户晓的品牌。由于开发成本如此之高,他们更倾向于将他们的开发需求承包给外部机构,而不是在公司内部雇用开发者。

那些财富500强公司是根据当前的软件开发成本进行计算的。让我们假设他们需要4个每个15万美元的开发者,总共60万美元/年。对他们来说,支付50万美元给代理公司来管理这个需求更有意义。但是,如果 LLMs 真的能够增强开发者的生产力,他们可能能够雇用2名每人15万美元的开发者来完成同样的工作。突然之间,这个方案变得更有吸引力了!

让我明确一点:我不是经济学家,这都是猜测。我并不是说我知道事情会以这样或那样的方式发展。我的意思是,这不是不可避免的最坏情况。没有人知道这将会如何发展,我有些疲倦的是人们一直在表现得最坏的情况是不可避免的。

各行各业针对这样的问题都有讨论

Aaron Blaise是一位资深的动画师和插画家,曾在迪士尼工作了近20年,为《美女与野兽》(1991)、《阿拉丁》(1992)、《宝嘉康娜》(1995)等经典迪士尼电影作出了贡献。

几周前,他在YouTube上发布了一段视频:《迪士尼动画师对AI动画的反应》。在观看了这视频之后,你会发现他的观点很熟悉:他并不认为这些工具是威胁,相反,他认为它们将增加动画师的生产力,带来更多的动画师工作机会。

现在,各行各业的艺术家和知识工作者都在进行同样的讨论。人们担心他们的工作将被像GPT-4、DALL-E 2和Midjourney这样的人工智能所取代。GPT-4可以通过模拟的法律考试,并获得前10%的考试成绩。许多律师正在进行这些同样的讨论。

我的个人信念是,对于大多数工作专业人员来说,他们会找到将这项技术整合到他们的工作流程中的方法,从而增加他们的生产力和价值。某些任务可能会被委托给人工智能,但不会有太多工作被取代。

但如果我错了,LLMs完全可以取代软件开发人员呢?如果是这样,我认为LLMs将取代绝大多数知识工作者。这不是通过转型可以避免的海啸。没有什么更高的立场。因此,与其试图赌未来会带来什么,为什么不专注于你热爱、感兴趣和擅长的领域呢?

前端与其他工程学科

与其他工程学科相比,前端开发是否更容易被人工智能替代的争论在网上持续发酵,一些人建议开发人员应该转向后端或数据工程。但我认为这种看法完全是错误的。我不认为任何开发人员需要担心被取代,但如果有任何脆弱性,那么就在后端。

上周OpenAI的GPT-4直播展示了两个与代码相关的演示:

  • 笑话网站的前端

  • 基于Python的Discord机器人

这两个项目中,基于Python的代码对我来说似乎更适合生产。最近我用Node.js编写了一个Discord机器人,代码看起来非常类似。

相比之下,我每天编写的前端代码和生成基本HTML文档之间有很大的差距。

这是一个过度概括,但在过去的10年左右的时间里,很多复杂性已经从服务器转移到了客户端。单体Express应用程序已经变成了无服务器函数集合,而我们的前端已经从超链接数字文档演变成了完整的桌面应用程序。此外,前端是用户与产品交互的部分。公司通常希望其产品是定制的、独特的,根据其品牌精心制作的。相比之下,后端是看不见的。一个通用的后端比一个通用的前端更可接受。我们行业中有很多人认为后端开发比前端开发更难或更复杂,即“真正的”工程发生在服务器上。当然,这是无稽之谈。

我认为自己是一个全栈开发人员。我实际上是从后端开始我的职业生涯的,使用php和Ruby on Rails。我仍然花费很多时间编写后端代码,为我的课程平台服务。两端都有不同的难点,它们都很复杂、很难。

(顺便说一下,即使不涉及JS框架,前端开发仍然是复杂和困难的。我非常尊重专门使用HTML、CSS和vanilla JS制作高质量网站、专注于可用性和可访问性的人。我认为他们不会很快被人工智能取代。)

使用LLMs来帮助你学习

使用LLMs来帮助你学习 我听说有些人说ChatGPT在学习技术技能方面非常有帮助。如果你在教程中感到困惑,你可以向人工智能提出问题并得到解释!

对我来说,这是一个非常有趣的用例。实际上,ChatGPT就像一名编程伙伴,可以帮助你理解你不理解的事情。你可以提出具体问题并得到具体答案。但是我认为你需要小心使用这样的工具来帮助你学习。使用的方法有正确的和错误的之分。

错误的方式是把它当作GPS导航。当我要开车去某个地方时,我会把地址输入我的GPS,然后不加选择地按照它的指示行驶。通常情况下我会到达目的地,但这需要我零思考。结果,我的方向感完全退化了。现在我不能去任何地方,除非有个合成的声音告诉我该怎么做。

相反,我建议把它看作你是陪审团的一员,而LLM则是被告,站在证人席上。你会听取他们的陈述,但不会接受它作为事实。你会持怀疑态度,并对每个词都进行批判性思考。

不要盲目复制/粘贴ChatGPT生成的代码,逐行阅读,并确保你理解它。请向ChatGPT要求澄清。并使用权威来源(例如官方文档)仔细检查似乎可疑的事情。请记住,LLMs是100%自信,但不是100%准确。如果你遵循这个策略,我认为LLMs可以提供很多价值。

给那些有志于成为开发者的人的建议

我写这篇博客文章的原因,是专门为那些正在学习Web开发并感到焦虑和沮丧的人发声,他们觉得在这个领域花费这么多时间/精力来建立这些技能是没有意义的,因为整个领域即将被淘汰。

我不能保证事情会保持完全一样。我确实认为AI将对我们的工作方式产生影响。我从2007年开始涉足HTML/CSS/JS,自那以后,事情发生了很大变化。开发人员一直需要适应,随着技术的发展不断进化。

但到目前为止,我所看到的没有任何迹象表明我们的工作岗位受到威胁。我试图想象一下,如果非开发人员能够在不理解Web技术的情况下构建整个Web应用程序,会是什么样子,但我想出了很多理由说明它不会奏效,即使未来的GPT版本不会出现太多幻觉。

我可能是错的。我没有水晶球。但我真的不相信我们即将见证Web开发人员被淘汰的时代。我担心许多有志于成为开发人员的人没有理由却放慢了自己的步伐。

我不希望你在未来五年里看到软件开发变得更加受欢迎,而因为你停止追求自己的梦想而后悔。我鼓励你坚持努力学习,因为我相信软件开发人员的需求将会持续增加。

结束

今天的分享就到这里,感谢你的阅读,希望能够帮助到你,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

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

作者:joshwcomeau

非直译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

一篇旧文《别把孩子太当回事》

我说别把孩子太当回事,可能会有很多家长跳出来跟我理论。现在家里面只有一个孩子,往往都是家庭的重心。我的观点是父母和孩子都是家庭中的一份子,地位应该是平等的,家长有自己的事情做,孩子也有一些事情家长插不上手,比如说孩子在玩玩具的时候,自己念念有词,大人很难进入他的世界。另外,如果把孩子当作你的全部,花费了大量的时间精力在上面,无形中会给孩子增加很多压力,这一点我会在文末再做论述。但孩子不可能永远在你身边,一旦长大了他总要飞走,如果你太把孩子当回事的话,将来的心理失衡会让你好像整个世界都颠覆了一样——不信,您等着瞧。
    
    
    对于大家来说,在孩子的教育上面都不能说是有丰富的经验,多数都是一个孩子,在这里我只是想谈一下自己的一些体会。
    
    一,学习是快乐的。
    
    我儿子取名叫“千问”。曾经有朋友说,你儿子叫这个名字累不累啊,一天问到晚。这个疑问曾经一度让我犹豫,似乎和我的快乐学习有抵触。但经过长时间观察,我发现孩子的好奇心是一种与生俱来的特质,所以他会从寻求答案的过程中得到很多快乐。而成年人似乎已经失去了这种乐趣。
    
    当孩子问你为什么的时候,恰恰是你找回这种乐趣的最好机会,你能否放下手中的电视遥控器,和孩子一样去探索?孩子学习长大的过程应该是在生活中完成的,学习无所不在,孩子学到了思考的乐趣之后,他会为他的发现感到有成就感,而这就将成为他一生不断学习的动力。
    
    我的孩子学乘法就是在马路边的地砖上开始的。有一天他发现了一个规律,六六三十六,五七三十五,结果差一;而七七四十九,六八四十八,也差一。这是偶然的吗?当然不是,初中的时候我们会学到这方面的公式,作为一个刚上一年级的孩子来说,这个发现很值得鼓励,而且我们还可以马上用它来计算101x99这样的问题,让孩子感觉到他的发现有很大的价值。
    
    二、学习是主动的。
    
    学习的主体是孩子,而不是家长。如果意识到这一点,家长就不会替孩子去做很多决定了,因为让他学习判断和选择更加重要。上幼儿园的时候,我让我的孩子自己选择兴趣班,没有上英语和数学,而是学了陶艺、武术、电子琴等等一些他想学的东西。
    
    上面说过了,家长和孩子是平等的。因此家长也应该尊重孩子的兴趣和爱好,我孩子喜欢看四点半的一个电视节目《机器人大擂台》,我就争取每天在这个时间把他接回家,有时候还和他一起看。这种学习的主动性还表现在看课外书方面,养成看书的好习惯对孩子来说一生受益,不要怕孩子看不懂,只要他喜欢看,开始的时候会有很多不认识的字问你,如果你和我一样懒,不妨教给他查字典——所谓学习的主动性,在这时候会成为偷懒的爸爸的一个托辞。
    
    三、学习是个性化的。
    
    中国的学校教育不能和美国以及国外小学校相比,为什么?就是因为中国孩子太多,一个班少则四五十,多则六七十——但我坚决反对把孩子送到小班制的私立学校,更反对郑渊洁的教育模式(甚至可以说他的家庭教育是失败的,但在这篇文章里面不想赘述),我儿子上了三个多月小学,不仅学会了拼音、三字经,甚至还学会了跳绳,这简直是家庭教育难以达到的高度啊。
    
    但是学校面对的是一大群的孩子,只能做到的是共性教育,家庭的个性教育对孩子来说同样重要。每个家庭应该想一想,你有哪些优点?你的孩子有什么天赋?你的家庭能给孩子哪些特别的教育?正确地认识自己是做家长的责任。做爸爸的你,是否数理化基础好、逻辑能力强,或者知识面宽、爱好广泛?做妈妈的你,是具备较强的审美能力还是更好的语言表达能力?(特别声明:上述表达没有任何性别歧视的意思)即使你什么都不擅长,你就还可以有责任心吧,家庭也是让孩子能够学会负责任的第一课堂。
    
    个性教育首先是根据孩子的特点,因材施教。孩子喜欢的东西,不妨给他多提供条件,当然,像奥特曼之类的,最好是别给他创造条件了。孩子是天生爱学习的,为什么有的孩子不爱学习哪,那一定是家庭教育或学校教育哪里出了问题。我今年花在给孩子买书上的钱已经有上千了,郁闷,我自己的专业书从来都不舍得买。
    
    另外要提醒大家,不要老拿自己的孩子跟别人比,人比人气死人,嫉妒就是从这儿来的,现在看着别人挣钱比他多、天天在家里面难受得要命那些人都是从小就被和别人比着长大的,千万别说榜样的力量是无穷的,谁知道这个力量是正面的还是负面的啊。
    
    
    最后,和大家交流一个问题:什么品质是你最想让你的孩子拥有的哪??
    
    答案见仁见智。聪明?善良?勤劳?勇敢?(中国劳动人民的优良传统不能丢啊)。但是我的观点是:最重要的是让孩子学会热爱生活!
    
    热爱生活的孩子才是最快乐的。君不见,那个什么什么,很多大学生有严重的厌世情结,为什么哪?这也是从小受到头悬梁锥刺股的肉体加精神的双重迫害带来的恶果。而热爱生活的孩子则不一样,不管他将来从事什么工作,他也会热爱他从事的事业,热爱他的家人和朋友,他的一生都会充满阳光。这难道不是身为父母的你最想看到的吗?

以上是关于别把 OpenAI 太当回事,它远未达到替换前端的地步的主要内容,如果未能解决你的问题,请参考以下文章

纳瓦尔宝典 健康爱和使命,以此为序,其他的都不重要 不把自己太当回事

纳瓦尔宝典 健康爱和使命,以此为序,其他的都不重要 不把自己太当回事

纳瓦尔宝典 健康爱和使命,以此为序,其他的都不重要 不把自己太当回事

Python中的几何布朗运动模拟

中文环境下使用 huggingface 模型替换 OpenAI的Embedding 接口

2023年的深度学习入门指南 - 给openai API写前端