2

看不懂代码?AI给你做翻译 说人话的那种

 2 years ago
source link: https://www.163.com/digi/article/GV8UEB2O001697V8.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

看不懂代码?AI给你做翻译 说人话的那种

2022-02-03 06:49:33 来源: 量子位 举报

GitHub Copilot,最近又出了个新功能。

这一次,它不再是帮你写代码了,而是充当一个“翻译官”:

用“人话”告诉你,这段代码到底写了啥。

瞧,只需要选中一段代码,然后点一下旁边的“Ask Copilot”,就会快速得到代码的“人话版”解释:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F0d84ef5fj00r6p8ov002xc000go00a4c.jpg&thumbnail=660x2147483647&quality=80&type=jpg

示例中的代码片段是这样的:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F32bd7cedj00r6p8ov000cc0007v006fc.jpg&thumbnail=660x2147483647&quality=80&type=jpg

Copilot对此进行“翻译”后,输出的内容是:

定义一个函数max_int(),它将一个列表作为输入。

设置一个变量max_int=l[0],它包含列表中的第一个元素。

设置一个for循环,迭代列表中的每个元素。

如果元素大于max_int,便让max_int等于I。

返回max_int。

这便是GitHub Copilot的最新功能——Explain Code。

之前Copilot是基于人类的注释生成代码,现在好了,它也学会了反向输出。

网友们的反应也是可想而知了:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F07ffe117j00r6p8ov0040c000go00atc.jpg&thumbnail=660x2147483647&quality=80&type=jpg

但在“新奇”之后,这件事也引发了不小的讨论。

AI给代码做注释,有必要吗?

不仅是Copilot,“AI给代码做注释”这事最近在Reddit也比较火。

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F330d429fj00r6p8ov000vc000go00cac.jpg&thumbnail=660x2147483647&quality=80&type=jpg

有位贴主上传了他用AI技术,给代码做注释的demo。

不同于Copilot的Explain Code,这个AI不会非常详尽地去描述每行代码运行的过程。

而是概括性地去讲“这段代码是干嘛的”。

以下面这个代码片段为例:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F7d13c4eaj00r6p8ov000wc000go00aic.jpg&thumbnail=660x2147483647&quality=80&type=jpg

在AI“解读”过后,它就会告诉你:

这段代码是用来从GitHub的Repo中收集数据。

会返回一个数据的矩阵。

再如下面这个代码片段:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2Fffc27988j00r6p8ov000yc000go009lc.jpg&thumbnail=660x2147483647&quality=80&type=jpg

AI给出的注释是:

函数运行的是梯度下降算法。

而后它还会对函数中的变量依次做解释。

看似不错的效果,但依旧还是引来了网友们激烈的讨论。

“乐观派”网友认为:

辅助写注释和写测试比写代码的帮助大更多,而犯错可能更少。

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2Fc3bf4c51p00r6p8ov000hc000go001oc.png&thumbnail=660x2147483647&quality=80&type=jpg

但有人质疑这种AI的能力:

如果我函数写的特别乱、变量这名字乱糟糟的,它还能好使吗?

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F032ab5a2j00r6p8ov000pc000go005fc.jpg&thumbnail=660x2147483647&quality=80&type=jpg

也有人认为,诸如此类的AI“没有什么用处”:

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F72de3a5dj00r6p8ov000ec000go004ec.jpg&thumbnail=660x2147483647&quality=80&type=jpg

更形象一点的比喻,这种AI起到的作用,可能就是“复读机”……

?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2022%2F0203%2F8e25345dp00r6p8ov000lc000go002ec.png&thumbnail=660x2147483647&quality=80&type=jpg

那么对于“AI给打码写注释”这件事,你觉得是否有用呢?

logo.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK