编程自动化之Copilot

最近,除了AlphaCode(介绍可以见我之前的推文: 编程自动化之AlphaCode)火出圈之外,另一个常常被认为可能取代人工编程的由微软与OpenAI共同推出的插件Copilot也开始商业化应用了。GitHub Copilot基于 GitHub 及其他网站的源代码,可根据上文提示为程序员自动编写下文代码。目前,这一插件的价格为每月 10 美元(约 66.9 元人民币)或每年 100 美元(约 669 元人民币),学生用户和流行开源项目的维护者(流行这个词很难界定)免费使用。对于高阶的程序员而言,每个月仅需花费一小时的薪资(10美元)就可以带来生产力突破,的确是一件可喜可贺的事情。但是,对于部分通过copy,modify来撰写程序的程序员而言,这一技术的突破可能会带来更多的竞争压力(毕竟,只需要稍微懂一些语法就可以完成基础的编码工作)。Copilot在降低程序员入门门槛的同时,也会带来生产力的提升,这对于社会的全面数字化其实是有很大帮助的。但是,大家目前也不应该对这一插件的期待过高。毕竟,一个新技术从应用到成熟,还是有很长很长的路要走的。下面,笔者将通过举例与个人使用感悟,帮助大家更快理解这一插件的使用。
一 Copilot使用
1. 比如说编写一个函数parse_expenses,用于按行解析给定的字符串
2. 通常来说,我们需要考虑到调用的包,编写的逻辑,变量的定义。虽说这些东西都很简单,但是不同的重复类似的操作还是枯燥的。但是当我们有了Copilot插件后,代码编辑器如VScode就会弹出选项,接收、拒绝或者下一个。比如针对上述这个问题,如果我们接受插件给予的选择之后,我们就会得到如下的已经写好的函数。
二 Copilot优缺点
对于Copilot的优点,可能对于不同阶段的程序员会有不一样的体验,如对系统架构级别的程序员,该插件能够替代许多枯燥的常规函数的撰写,对于入门的程序员,该插件能够帮助初学者快速入门程序撰写和逻辑思路整理。只是除了有点之外,该插件也有不小的缺点。首先,无法提供系统的代码方案。这一插件更多的是提供了代码补全的高级选项,而不是完完整整的提供端到端的代码。他并不像alphacode那样,能够针对一个问题提供完整的解决方案。其次,各代码块的衔接仍需人工辅助。因为不是端到端,那么必然会带来各个代码块之间的衔接问题,而这则需要一个程序员对系统的整体框架进行掌控。除此之外,第三,提示的代码无编译结果提示。最重要的是,这一代码的运行目前仍需要人类从旁协助找出bug,因为插件提示的并不是经过检验的能够正常运行的代码。第四,正确的代码方案的提出需要规则化的注释方案。这点也往往是别人所忽视的,即插件的正确提示需要的是我们能提供正确的注释,而目前NLP(自然语言处理)还有许多的不足,这意味着我们或许不需要学习编程,但是需要的是另一门经过训练的注释提供方案,这样才能确保插件的正常使用。这一点也是日后alphacode使用需要面临的问题。第五,对于非程序员而言,该插件基本没有提升或者说使用起来仍存在极大的风险(以我自己使用的角度来看)。
三 惯例小结
其实与alphacode一样,笔者也一直认为在不远的将来,或许我们需要做的就不是码代码,更多的是一种代码审核的工作(毕竟有些代码还是非常重要的,比如医学类的代码)。毕竟,随着人工智能的进一步发展,我们可以从重复枯燥的工作中解放出来,从事更具创造性的工作,这也是目前来看,我们或许比机器更善长的方面(用‘或许’而不是其他词是因为创造性也不一定是碳基生命的专属)。
本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。
简书:WJ的生信小院
公众号:生信小院
博客园:生信小院
最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。
另外,怎么说呢,投币也可,不强求,但奢求。


