大家好,我是良许。

这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。

这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。

我们来看看它有啥用。

首先就是代码补全功能,你只要给出函数名和参数,Copilot 就会自动帮你补全代码。

第二个功能,就是它可以根据注释来写代码。也就是说,你只要把注释写好,它就会自动帮你生成对应的代码,吓人吧~

除此之外,它还可以自动生成重复性代码、自动生成测试代码,同时也可以生成多套代码方案供你选择。

目前支持多种开发语言,包括 Python, JavaScript, TypeScript, Ruby, Java, Go等等,支持VS Code,Neovim,JetBrains 等 IDE。

目前还没有完全开放,处于邀请制状态。前几天我看到了这个插件并申请了,但是目前还没通过,所以想看演示的话大家可以上 B 站,很多大佬做了测评。

看到这个插件这么强大的功能,很多程序员已经吓傻了,这么强大,AI 都已经可以帮你写代码了,程序员是不是要下岗了?

但在我看来,这个插件目前还只是个高级的玩具而已。

1. 只是帮你百度一下

这个插件的本质是利用人工智能,通过开源社区里的大量代码进行训练,从而实现自动写代码的效果。

所以,对于通用性的代码,它的生成准确性还是比较高的。

比如,我们在写两个日期之间的天数,你写来写去,无非就是这样写(以 Python 为例):

def days(str1,str2):date1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d")date2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d")num=(date1-date2).daysreturn num

这种代码说白了其实没有多少创造性,写熟练了可能根本都不需要经过大脑,都形成肌肉记忆了,无非就是函数名、变量不太一样,其余的几乎都一样。

类似的,我们还有一些算法(比如冒泡排序)、工具(比如哈希校验),其实也都是重复性非常高的代码,它也可以帮你完成得很好。

重复性的工作,都有可能被替代的。

在这种情况下,Copilot 的作用就相当于帮你百度一下,然后再帮你 CV 一下。如果没有这个插件,我们一样也能做,只是花点时间而已。

2. 业务代码质量不高

Copilot 自己也承认,他们会尝试了解程序员的意图,并「尽可能」生成最好的代码,但生成的代码并不总是有效,有时甚至还没有意义。

毕竟训练集来自公共代码,良莠不齐,甚至完全没有意义。

这点在 B 站大神的测试下也得到了印证,有时候确实也生成了一堆不知所云的代码。

毕竟,我们的业务需求一直都是复杂多变的,有时我们自己都不太能实现一些功能需求,还指望机器帮你写?别太幻想了!

而且,它自动补全业务代码的前提是,你已经需要有一定的代码量供它参考,它才可以去猜测你接下来准备写什么。

也就是说,你还是需要写一些代码,有这些代码了它才会写得更准确一些。而且你提供的代码量越少,它的推荐就越不准确。

也有人说了,它会根据注释写代码啊。但是,实际上,注释你都写好了,你自己其实也已经差不多把代码都写好了。

再说了,程序员都知道,读别人的代码是一件很痛苦的事情,Copilot 帮你写好了代码,你敢直接就用吗?你阅读并理解它的代码的时间,也许自己早就写完了。

所以,你说它会完全帮你写代码吗?肯定不行,至少目前不会。就算能帮你写部分业务代码,也不一定写得好。

3. 有一定的安全问题

Copilot 它的原理就是利用大量的代码进行训练,样本越多自然就越准确。

那么问题来了,他们自己宣称这些样本是来自开源的社区,但你使用了它们的插件,你敢保证你写的代码不会成为他们的样本?

而且,如果它们生成的代码不合你的要求,你手动修改了,它更加理解了你的意图,这对 Copilot 的训练简直是神助啊,他们难道真的不会考虑利用一下使用者的免费劳动力?

凡是使用第三方插件,而且还是不开源的,谁都无法保证你的数据是否真的没有被泄漏出去。

自己练习的代码肯定是无所谓了,但是如果涉及到公司的商业机密,那就可能会有法律问题了。

而且,更可怕的是,Copilot 生成的代码,有 0.1% 的概率会原封不动复制训练集的样本。如果这些样本没版权也没事,但要是有版权,有可能也会吃官司。

之前已有新闻报道过,Copilot 原样复制了经典射击游戏《雷神之锤》里的代码,而这些代码是受法律保护的,使用者也因此受到了一些麻烦。

所以,现在不少公司已经明确规定,禁止使用 Copilot 插件!

4. 照相机的出现不会让画家下岗

照相机被发明出来的时候,曾经一度也有人开始唱衰画家这样的岗位。但时过境迁,这么多年过去了,画家的岗位消失了吗?不仅没消失,反而现在技术精湛的画家身价一涨再涨。

相机,只是把画家的一部分重复性工作取代了,比如画肖像、风景,等等。它只会机械地,一比一还原现实。而现在的画家,更多是作为艺术创作,这部分相机短时间内是无法取代的。

(现在也有 AI 艺术创作,但还很难说取代)

Copilot 何其不是这样的存在呢?我大胆预测,Copilot 只会取代部分基础的、重复性的编程工作,说它会让程序员下岗,我觉得这肯定是天大的笑话。

相机再智能,你也需要具备一定的美术、审美基础,才能拍出好看的照片。

同样的,Copilot 帮你写了一堆代码,你如果没有一定的编程基础的话,你连改都不会改。

5. 展望

我还是那句话,Copilot 的出现不会让程序员下岗,只会取代部分工作而已。

工具的出现只是会让我们从重复性的劳动中解放出来,从而让我们的大脑有更多时间思考。但思考和创作本身,很难被取代。

我个人是非常欢迎 Copilot 这样的工具出现,可以让我们减少很多不必要的工作。

作为程序员都知道,我们每天都需要花费很多时间在百度/谷歌上面,并且各种搬运轮子。这种工作就是机械的重复性工作,如果能有工具让我们从这样的工作中解放出来,肯定会为我们节约很多时间。

而且,Copilot 这个单词本身也明确了自己的定位,那就是「副驾驶」,人家已经很明确自己的位置,根本就没想着成为主驾驶。

所以,Copilot的出现,大家不要如临大敌,而是要合理利用工具,善于利用工具,让工具真正为我们所服务。


学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!

欢迎关注我的博客:良许Linux教程网,满满都是干货!

自动写代码?别闹了!相关推荐

  1. 《ChatGPT》自动写代码、写作文,使用教程来了

    文章目录 注册 开始使用ChatGPT 基本问答 自动写代码 写作文 视频演示讲解 注册 短信接收:https://sms-activate.org/cn/buy 一美元: 充好后打开,选择印度: 下 ...

  2. OpenAI:ChatGPT 自动写代码功能测试

    OpenAI:ChatGPT 自动写代码功能测试

  3. 使用 Vscode 编写 HTML 文档竟然可以自动写代码(2)

    作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者.15-16年曾在网上直播,带领一批程序小白走上程序员之路.欢迎各位小白加我咨询我相关信息,迷茫的你会找到 ...

  4. 自动写代码?AI还能帮你写?

    经常会看到这样的问题,AI以后真的会取代程序员吗?这是人工智能对编程的威胁吗?近日,OpenAI带着他们能够自动写代码的Codex引发了热议. AI编程其实也并非是新鲜事了,之前的AI自动辅助编程工具 ...

  5. 自动写代码?Copilot尝鲜及其奇技淫巧

    自动写代码?Copilot尝鲜及其奇技淫巧 博主在同学那里了解到Copilot这个神奇的项目,听说能自动帮你写代码,顿时来了性质,从现在起,我不再写代码,我要搭载Copilot起飞

  6. 【自动写代码】Quokka.js是一款通过注释实时生成代码的插件,该插件安装在vscode工具上面,但是需要激活才能使用

    会写注释就能自动写代码 代码都能自动生成了!牛批呀 Quokka.js 在VS Code上,有一款名为"Quokka.js"的插件可以通过注释实时生成代码.Quokka.js是一个 ...

  7. 15个借助AI,ChatGPT自动写代码工具

    整理了15个借助AI和ChatGPT辅助我们自动写代码的工具,整理到 15个借助AI,ChatGPT自动写代码工具http://www.webhub123.com/#/home/detail?proj ...

  8. 【ChatGLM vs ChatGPT】怎样实现机器人自动写代码?不少于3000字。

     图:a robot is writing code, by Stable Diffusion 禅与计算机程序设计艺术: 总体来看,ChatGLM(6B)和 ChatGPT(175B)在技术领域的问答 ...

  9. 抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?

    作者 |  James Vincent等 编译 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 导读:在过去的一年中,AI 生成书面文字的能力大大提高.通过扫描庞大的文本数据集,机器学 ...

最新文章

  1. MySQL 加锁处理分析
  2. 利用oracle快照dblink解决数据库表同步问题
  3. UA MATH563 概率论的数学基础 鞅论初步4 Radon-Nikodym定理,条件期望的存在唯一性
  4. weather at Cambridge will be fine next week
  5. java Arrays Generic
  6. iptables--静态防火墙实例教程
  7. MVC实现实现文件流打包成压缩包
  8. Android应用程序打包时,出现错误:XXX is not translated in af (Afrikaans), am (Amharic), ar (Arabic).....(...
  9. python自带的库有哪些餐厅_Python 常用的标准库以及第三方库有哪些
  10. c jni 调用java_JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
  11. Asp.net Core 一个实用的自定义TagHelpers
  12. 循迹小车三个感应c语言程序,循迹小车的C语言程序(带注释)
  13. (20210116已解决)Windows下的CTF加载程序是什么?
  14. K-periodic Garland
  15. 高校圆桌派-第二期直播预告
  16. Deeplung代码复现(一)
  17. 解决谷歌登陆账号失败问题2020-11-21
  18. C语言篇 - (1)初识C语言 - (1)什么是C语言
  19. Qt 静态编译支持GUI(含qxcb)
  20. 怎么用手机设置(中继器)WIFI信号放大器

热门文章

  1. 超级细菌战:一场人类无法打赢的战争
  2. 5613-2-冒泡排序
  3. UML2.0包含的14种图
  4. 1~100以内的所有素数
  5. 无涯教程 - Latex 字体(Fonts)
  6. 如何成为一名IT咨询顾问?
  7. 苹果xr如何关机_iPhone如何进入DFU模式
  8. win10搜索功能不能用解决方案
  9. mybatis foreach
  10. 【论文学习】5、基于OFDM无线局域网的载波频偏估计