每隔一段时间,IT领域都会出现一些能抓人眼球的东西,最近就有一个,叫GPT-3。
这个AI产品刺激到了程序员,因为它展现出了不俗的编程能力:
你说自然语言“从2020年起,有多少用户注册”,它可以给你写SQL:
这不算什么,你还可以说自然语言,告诉它界面布局和行为:
头部区域的文字是“Mood Tracker”, 然后是按钮“Happy”,“Sad',“Sleepy”,当我按其中一个按钮的时候,显示文本 “right row i am feeling x”
它给你自动生成界面和背后的代码:
仔细看看这个GIF动画, 比较“吓人”的地方在于, 我们并没有告诉它任何逻辑,它居然能正确地用React实现那个变量x !
作为一个工作多年的老程序员,我看到这个东西不由得心头一震:我去!人工智能这么快就要抢老子的饭碗了?
我甚至都想到了老板的反应:太好了,有了这么一个神器,以后我躺在老板椅子上,把需求一描述,系统就生成了,要啥程序员?全开掉!
这个GPT-3 是钢铁侠“马斯克”旗下OpenAI斥巨资打造的自然语言处理模型,拥有1750亿超大参数量,是NLP领域最强AI模型。GPT-3经过了整个互联网数千亿个单词的训练,它能够使用CSS、JSX、Python等任何一种语言编程。
它真有这么厉害吗?我们再来想象一个场景,你要建立一个创意产品交易的网站,大概的需求是这样:
我需要一个网站,这个网站需要支持三类用户:需求方(公司或者个人),创作者,系统管理员。 需求方可以在网站上发布需求(如给公司设计海报,Logo,制作PPT等),需求中有标题,内容,图片,价格,截至时间等信息。 创作者可以登录网站浏览发布的需求,提出自己的报价进行竞标,在截至时间内价格最低者中标。 需求方也可以通过查看创作者的信用等级,自己选中创作者中标。 需求方需要预付30%的费用给中标者,网站抽取1%作为中介费(将来会涨到5%),产品交付以后支付70%给中标者 系统需要支持微信,支付宝等支付方式,需要有Web端,Android端,iOS端。
这么一个需求,你觉得GPT-3能搞定吗?它能自动生成界面,业务处理逻辑,数据库表吗?我觉得绝无可能。
这还是非常简单的概要需求,如果把细节都展开,要比上面的描述复杂10倍以上, GPT-3想理清系统中角色的责任,业务主要流程和次条流程,异常条件,角色和流程的关系,几乎是不可能完成的任务。
更何况需求就是在客户的脑子里,他只有看到实际的东西,才会说:奥,这个流程不对,那个界面不对。
还有,它也不可能抽象业务系统中的概念,形成漂亮的类的组合,继承,针对接口编程......
假设这个GPT-3真的非常非常厉害,它已经学会了如何实现上面说的功能性需求, 我们再给它增加一点儿非功能需求:
系统要支持xxxx用户在线,QPS是xxxx , 平均响应时间是xxxxx 每年的无故障运行时间不能多于xxx分钟 系统支持对某些产品进行秒杀......
你说这个AI到底怎么才能实现呢?难道它会给你分库分表,读写分离,热备份, 负载均衡,使用NoSQL, CDN, 缓存,ELK,进行SQL调优 ?
我觉得在我的有生之年它都搞不定,因为现在的AI还是弱人工智能,它可以从现有的系统中学习,但不会联想、类比、创造,它不是一个真正的超级程序员。
我丝毫不怀疑GPT-3这家伙能实现复杂页面的布局,以及一些特定领域的场景,但是我不相信他能创造出:
设计模式、IoC、AOP、Netty、Spring、Redis......
因为, 它不具备创造能力。
但是,GPT-3在编程领域内依然有巨大的价值,基于GPT-3的应用可以成为得力的助手。
比如前面展示的自动生成界面,可以快速制作原型,和客户交流,如果生成的代码不错,还可以基于它直接开发。在后端开发中,我可以告诉他系统有哪些模型,自动生成程序的框架,完成一些典型业务场景的代码,在运维领域,自动生成配置信息.....
那些重复性的工作,不费脑子的编程工作,将会受到GPT-3等AI的威胁,这部分人可能要瑟瑟发抖了。