草庐IT

人工智能这么厉害,比如GPT-4,为什么没有看到程序员失业?

这我可不懂 2023-05-26 原文

目录

 一、一次理性的反思

看看网友基于GPT-4生成代码的测试案例:

二、人工智能与程序员相辅相成

三、无独有偶的低代码

1、提升开发价值

2、利于团队升级

四、最后


OpenAI发布了GPT-4,这个远超以往的任何人工智能的模型,在逻辑、推理、数学、常识等方面超越了90%的人类,也就是说它至少能替代掉大部分的基础智力劳动者,这绝对是堪比蒸汽机的一次“技术革命”!

那么人类最大的智力密集型行业:程序员,会被替代吗?笔者认为风波已至会有影响GPT-4同样也是吹响了程序员的冲锋号。

 一、一次理性的反思

GPT-4官方发布会上,先用纸笔画一个非常粗糙的草图,再拍照上传GPT-4,要求它做一个符合要求的网站,并生成网站代码,只需十秒左右,网站代码和页面全部做好了。看起来确实很牛逼!

来看看网友基于GPT-4生成代码的测试案例:

1、让 GPT-4 开发一套Web端五子棋游戏,并以对话方式不断优化代码,15分钟后,一套可运行的程序完成了。

Sina Visitor System

2、用chatGPT实现4小时内一个商业化小程序demo的实现

记录我 遇见你 - 即刻

3、要求 GPT-4 提供贪吃蛇游戏的代码,以及运行该游戏所需的相关 HTML、CSS 和 Javascript。

1727858283/MxlBx0LKM

……

当然还有很多其他的案例,相信很多人都见过。但万变不离其一的是,这些案例看起来很牛逼,实则不然,都是十分简单的代码生成比如GPT-4生成的是很简单的网页,而不是一个网站;小程序五子棋游戏等,在互联网上已有十分丰富的代码,具体来说一个初级的程序员,即使没有GPT-4,用谷歌搜索一下,1个小时时间也能搞出来。

二、人工智能与程序员相辅相成

所以,笔者认为:GPT- 4,是会导致一小部分程序员失业,但量不多,因为真要使用GPT-4做程序,还是需要程序员,也只有程序员才能将它更好的完成。

GPT-4可以显著提高程序员写程序代码的效率,只要有创意,一个程序员可以很快通过GPT-4生成程序、网站的代码,以前需要3个月的任务,现在可能一个星期就能搞定,腾出的时间就能思考更多创意和解决方案。


三、无独有偶的低代码

低代码工具类人工智能,也是程序员开发应用的提效利器,仅需少量代码或无需代码就可以开发出各类应用管理系统,由于多数采用组件和封装的接口进行开发,使得开发效率大幅提升。

以JNPF为代表的企业级低代码平台为了支撑更高技术要求的应用开发,从数据库建模、Web API构建到页面设计,与传统软件开发几乎没有差异只是通过低代码可视化模式,减少了构建“增删改查”功能的重复劳动。

平台网址:https://www.jnpfsoft.com/?csdn

程序员在开发过程中可以轻松上手,充分利用传统开发模式下积累的经验。所以低代码平台对于程序员来说,有着很大帮助。

1、提升开发价值

众所周知,低代码通过降低软件开发的技术门槛,减少重复的编码劳动,让程序员可以大幅提升应用开发的效率,从而能把时间专注在更有价值的领域,最终让他们更有能力交付一个能够给客户产生巨大影响的、致其业务成功的应用程序。

在这个过程中,程序员可以投入更多时间思考,不仅可以更合理的去优化业务逻辑的合理性,也可以将新技术与用户需求深度融合,并且将价值以最快的速度传递到客户手中,而不是仅仅专注于技术任务和编码。

2、利于团队升级

开发人员对技术的更新迭代更敏感,更容易发现将技术应用于业务问题的机会。正是由于认识到这一点,越来越多的企业正在建立创新型的团队或实验室,将程序员作为产出商业解决方案的主干。

这意味着开发团队不能再考虑“一切需要从头开始”的开发方式,程序员也不能被大量投入到造轮子等简单、重复的编码工作中。

事实上,在低代码技术的帮助下,开发团队可以将程序员提升为团队的核心,致力于研究如何将AI等新技术集成到软件中,以及面对大数据量、大并发请求的极致优化,再配合一些初级技术人员甚至业务人员通过拖拉拽的方式,快速而有效地完成之前需要程序员大量编码的“增删改查”等软件基础功能。

可以简单地说,低代码的出现,让程序员能更好地发挥教育背景和开发经验的优势,在开发团队中轻松实现“升级”。

四、最后

经过这几年的发展,包括JNPF在内的许多低代码平台都在不断的完善和升级,低代码对行业的帮助也在不断被市场验证。最后,不管是AI 还是低代码,新技术的创造和应用,就是个不断博弈、谈判的过程。善于发现问题并解决问题,将会越来越强大。

有关人工智能这么厉害,比如GPT-4,为什么没有看到程序员失业?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐