詹士 发自 凹非寺

量子位 | 公众号 QbitAI

ChatGPT写代码,水平究竟如何?

不到5分钟,做出一个WordPress(一款内容管理系统软件)插件,且代码很干净。

测试者名叫David Gewirtz,是一位1982年进入IT行业的老炮,供职过的公司包括:赛门铁克、苹果、Pyramid Technology。

即使拥有40年从业经验,他在见识ChatGPT能力之后,还是不禁发出感慨:

本以为不会有太多惊喜,没成想,还是吓了一跳

在评测文章中,他还表示这一切既令人着迷,又令人惊讶,同时还令他恐惧

所以,他具体是怎么做的测试?

我们一同来看下。

精力不够,ChatGPT来凑

此番David老哥之所以要用ChatGPT写代码,源于他妻子在运营电商网站,每月,她需要根据客户群组名单随机选出一部分名字,生成轮播动画。

过去,David老哥的妻子用一个网站生成随机名单,不过,该服务要收费,且不便宜。于是,老哥决定发挥“技术功力”,自己写一个WordPress插件,帮助妻子“降本增效”。

那么问题来了——即便是小小WordPress插件,也需要好几天去完成,这当中需添加用户界面元素,也要编写逻辑代码,鉴于自己实在太忙,于是,David想到——

最近ChatGPT不是很火么?要不试试?

说干就干,他先写了第一个提示,描述想要的文字(代码)到底是什么。

具体如下:

编写一个PHP 8兼容的WordPress插件,它提供一个文字输入区域,可将列表粘贴进去,还带有一个按钮,按下可将输入条目随机排列再显示出来。

不到一分钟,代码就生成出来了:

图源:David Gewirtz/ZDNET

测试者将上述代码复制到一个.php文件中,压缩并上传服务器。

唔,亲测有效。

当他将该插件拿给妻子看,对方一脸惊讶,不过,她马上加了新需求:重复的名字不能挨着。

于是,码农ChatGPT有了新任务。

需要保证相同条目不会挨着(除非没有其他选项)…此外,输入条目数与结果条目数得相同。

30s后,结果来了。

老样子,上传服务器并测试——有效,但输出包含了空行。

那提示它一下。

…不能有空行…

A Few Moments Later……

结果又来了,测试结果没问题。

继续加大力度,测试者希望该插件能统计一下处理了多少行数据。

结果ChatGPT照样能完成。

让我们一起看看,这款插件的最终形态,功能还挺完善:

能生成相应UI并处理一行行数据 图源:David Gewirtz/ZDNET

总结一下。

老哥认为,ChatGPT生成代码亲测有效,满足了需求,其中编写了UI界面及处理逻辑,从代码本身看也很干净。

不过,问题也不是没有。

其中一个瑕疵是——代码里面并未包含WordPress的全部最优/最标准的实现方法,如未进行清理用户输入,此项处理意味着,黑客无法在字段中填充或破坏数据,在WordPress社区也有严格要求。

为此,作者尝试让ChatGPT调整下。结果它调了,但又没完全调……代码只清理了PHP函数输入端,但并未清理用HTML调用PHP时的输入,这会让黑客仍能钻空子。

另一个问题是,作者要求AI编程同时为插件命名,它却生成了一个完全不同的插件。

且后续测试者试图添加更多功能,也无法实现,说明代码维护方面ChatGPT也不是很擅长。

最后,测试的老哥谈了谈自己的感想。

目前,ChatGPT编写一个简单插件倒是没问题,整个过程还是让他眼前一亮的。

不过这仍是个简单任务,相当于一次大学生作业,与之对比下,维护50000个用户的开源插件肯定更为复杂。

网友:可能插入恶意代码

值得一提的是,这位老哥还问过网友——对用ChatGPT生成代码担心什么,并自己给出看法

有人担心,AI会冷不丁在程序中加入恶意代码或促销信息,对此,测试者补充道,至少在上述编程中,ChatGPT生成代码是干净的。

也有人认为,它无法给出最佳代码,测试者针对该问题认为功能性能满足即可,足够好就足够了。

还有人担心它会替代人类程序员的工作,此番测试的David也有同感。

最后问问,你让ChatGPT敲过代码么?效果如何?

参考链接:

[1]https://www.zdnet.com/article/i-asked-chatgpt-to-write-a-wordpress-plugin-i-needed-it-did-in-less-than-5-minutes/ [2]http://davidgewirtz.com/[3]https://twitter.com/DavidGewirtz

@量子位 · 追踪AI技术和产品新动态

深有感触的朋友,欢迎赞同、关注、分享三连վᴗ ի ❤