本文经AI新媒体量子位授权转载,转载请联系出处。
GitHub Copilot,最近又出了个新功能。
这一次,它不再是帮你写代码了,而是充当一个翻译官:
用人话告诉你,这段代码到底写了啥。
瞧,只需要选中一段代码,然后点一下旁边的Ask Copilot,就会快速得到代码的人话版解释:
示例中的代码片段是这样的:
if len(l)=0: Return None else: Max_int=l[0] foR i in l: if i>Max_int Max_int=i Return Max_int
Copilot对此进行翻译后,输出的内容是:
定义一个函数Max_int(),它将一个列表作为输入。设置一个变量Max_int=l[0],它包含列表中的第一个元素。设置一个foR循环,迭代列表中的每个元素。如果元素大于Max_int,便让Max_int等于I。返回Max_int。
这便是GitHub Copilot的最新功能—ExplAIn code。
之前Copilot是基于人类的注释生成代码,现在好了,它也学会了反向输出。
网友们的反应也是可想而知了:
但在新奇之后,这件事也引发了不小的讨论。
AI给代码做注释,有必要吗?
不仅是Copilot,AI给代码做注释这事最近在ReddIT也比较火。
有位贴主上传了他用AI技术,给代码做注释的DEMO。
不同于Copilot的ExplAIn code,这个AI不会非常详尽地去描述每行代码运行的过程。
而是概括性地去讲这段代码是干嘛的。
以下面这个代码片段为例:
在AI解读过后,它就会告诉你:
这段代码是用来从GITHub的Repo中收集数据。
会返回一个数据的矩阵。
再如下面这个代码片段:
AI给出的注释是:
函数运行的是梯度下降算法。
而后它还会对函数中的变量依次做解释。
看似不错的效果,但依旧还是引来了网友们激烈的讨论。
乐观派网友认为:
辅助写注释和写测试比写代码的帮助大更多,而犯错可能更少。
但有人质疑这种AI的能力:
如果我函数写的特别乱、变量这名字乱糟糟的,它还能好使吗?
也有人认为,诸如此类的AI没有什么用处:
更形象一点的比喻,这种AI起到的作用,可能就是复读机。
那么对于AI给打码写注释这件事,你觉得是否有用呢?