自动编写Python程序的神器,Python 之父都发声力挺!
就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具。莫非程序员离“失业”又迈进了一步吗?要想知道这个答案,首先得看看kite的代码编写究竟能做到何种程度。
01.什么是Kite
最新的kite是一款桌面应用程序,可以与现有的编辑器和终端进行集成化、并行运行,你可以将kite视为IDE的一个插件,它以大量的云端代码为基础,使用机器学习进行训练,从而预测下一步所需要写的代码,达到“智能编程”的效果。目前Kite支持的编辑器包括Sublime Text、emacs、vim、PyCharm和 Atom,支持windows和大多数linux操作系统。
根据官网的介绍,kite主要有以下几个作用和特点:1).超强的代码补全功能相对于传统的“单词”型代码补全,kite的AI模型在某些情况下可以根据上下文预测下一步需要的一系列代码元素,从而省去大量的修补工作,极大提升工作效率,在下图中的例子中,使用kite后的手动输入量比不使用kite几乎减少了1倍。此外,kite还具备简单的错误识别和修正功能。
2).友好的代码示例参考当我们需要使用一个新的库或者函数的时候,通常会去查阅它的文档,而kite则提供了示例代码,它可以让我们跳过文档了解其他人(云端上的代码)是如何使用这个函数的(下图),这个功能同样适用于我们自己定义的方法。
3).清晰的终端索引文档除了示例代码之外,kite还提供清晰的终端索引文档(下图),支持以统一的格式显示文档,其中收集了800多个带有代码示例的Python库,我们可以很轻松地获取文档、查询需要的内容。
kite发展至今绝非一日之功,从下面这张图能够看到kite最近的几个演化阶段,除了代码补全功能的增强外,最重要的一点就是实现了kite的本地化。要知道以前我们必须把自己的代码上传到云端才能享受kite提供的各种便利功能,虽然有一些加密措施,但安全和隐私方面还是存在不小隐患的。现在好了,我们将代码放在本地的计算机上也可以使用kite,安全性大大提升。
02.安装和配置
虽然kite目前已经支持linux,我在这里还是以windows为例进行演示,不管哪个版本的安装程序,都可以在kite官网进行下载。
下载并运行安装文件,kite安装完成后会弹出下图中的界面,要求选择安装模式——安装所有支持的IDE插件或者手动指定需要安装的插件,选择哪一个要根据自己的实际情况而定,如果你的电脑中安装了emacs、vim、PyCharm等大量的IDE,不妨选择第一项;如果仅仅安装了一两个IDE,个人建议选择第二项比较合适。
如果想用固定账号使用可以在此处输入自己的邮箱,否则直接点击最下边的“continue without email”也能够正常使用。
下图显示的是kite的文档页面,在右上角可以切换文档模式,在“follow cursor”模式下,kite会实时跟踪当前代码中正在输入的库和函数,并显示对应的文档。当然,无论在哪个模式下,在文本框中手动查找函数文档都是可行的。
点击上图中右下角的齿轮标签进入设置的Home页面,在这个页面中可以进行账号的相关操作,也可以进行风格设置。
然后切换到Plugins页面,这里可是kite能否顺利使用的关键。从下面这幅图中想必一眼就能看出是与IDE的关联集成有关,如果在安装后选择了手动安装指定的插件,就需要在这里为自己的IDE安装kite支持。虽说在官方说明中写的是支持多种编辑器,但其实kite还是很挑剔的,比如pycharm它只支持2018.01以后的版本,对sublime text 3则要求必须与kite安装在同一盘符。看来选择手动安装指定插件还是有好处的,不然怎么会发现这么多坑。
我不想更新pycharm版本,在经过一番折腾之后成功地实现了sublime与kite的集成,打开sublime后会在左下角出现“kite:ready”的字样(下图),证明安装关联成功。
03.效果实测
眼动不如手动,既然kite如此好用当然要亲自尝试一番了。1).kite的代码补全和文档功能确实非常好用。我个人偏爱sublime,但是sublime有一个重大缺陷就是代码补全功能偏弱,这下问题得到了完美解决;另外,当kite文档切换到“following cursor”模式的时候,kite会自动跟踪当前光标所在的库或者方法,同步显示对应的文档信息。下图就是我在使用detetime模块时的代码提示效果和kite页面。
2).看下代码示例紧接上一步的操作,当完整地输入准备使用的函数后,在光标附近就会弹出对应函数的使用样例(下图)。当然,datetime.datetime.strptime方法的自由度比较低,所以给出的示例就比较单一,但是像matplotlib或者pandas中的有些方法,可能会给出很多条示例代码供我们参照。
需要注意一点,当kite和IDE的相关插件成功安装后,在启动IDE时kiteserver会自动加载,即使不启动kite应用程序也可以使用代码补全、示例提示等功能,不过如果要查阅文档的话,还是需要启动kite的。
最后说下我个人对kite的看法,其实与kite类似的项目还有很多,例如谷歌的AutoML系统、Codota公司的人工智能辅助编程项目等等。就目前来看,这些号称能够自动编程的人工智能还只能完成一些较为简单的任务,距离能代替人类程序员的程度还有很长的路要走。
因此程序员们暂时还不必担心这种人工智能的出现会导致失业,相反的,这些项目与其说是人工智能倒不如说是编程辅助工具,至少目前来看kite对提高我们的编程效率还是非常有帮助的,有兴趣的小伙伴不妨亲自尝试一下。