自动编写Python程序的神器,Python 之父都发声力挺!
就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具。莫非程序员离“失业”又迈进了一步吗?要想知道这个答案,首先得看看kite的代码编写究竟能做到何种程度。
1
什么是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,安全性大大提升。
2
安装和配置
虽然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”的字样(下图),证明安装关联成功。
3
效果实测
眼动不如手动,既然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公司的人工智能辅助编程项目等等。就目前来看,这些号称能够自动编程的人工智能还只能完成一些较为简单的任务,距离能代替人类程序员的程度还有很长的路要走。
自动编写Python程序的神器,Python 之父都发声力挺!的更多相关文章
- 通过编写聊天程序来熟悉python中多线程及socket的用法
1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...
- java调用python程序以及向python程序传递参数
在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python ...
- Python程序 #!/usr/bin/python 的解释
关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器 ...
- 编写爬虫程序的神器 - Groovy + Jsoup + Sublime
写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET BCL只提供了"底层"的HttpWebRequest和"中层& ...
- 第一个Python程序的Hello Python,竟然有问题
print 'hello python' 运行时显示:SyntaxError: invalid syntax 解决办法: 这应该是版本的问题,Python2的话直接就可以输出,但是到了Python3需 ...
- 编写爬虫程序的神器 - Groovy + Jsoup + Sublime(转)
写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET FCL只提供了"底层"的HttpWebRequest和"中层& ...
- 编写高质量代码--改善python程序的建议(八)
原文发表在我的博客主页,转载请注明出处! 建议四十一:一般情况下使用ElementTree解析XML python中解析XML文件最广为人知的两个模块是xml.dom.minidom和xml.sax, ...
- 教你如何编写、保存与运行 Python 程序
第一步 接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Python 来运行的你的程 ...
- python笔记:#002#第一个python程序
第一个 Python 程序 目标 第一个 HelloPython 程序 Python 2.x 与 3.x 版本简介 执行 Python 程序的三种方式 解释器 -- python / python ...
随机推荐
- http模块
1.引入http模块 const http = require('http') 2.创建node服务器 在创建node服务器的时候需要使用http模块中的http.creatServer()方法来进行 ...
- win10,7 80端口被占用的检测和解决方法
这是一篇关于检测windows7和windows10系统“80端口”被哪个程序占用和怎么解决的小教程.此处用windows10作为范例 1.得到占用该端口的PID ①打开运行(快捷键win+R)(也可 ...
- ML.NET Model Builder 更新
ML.NET是面向.NET开发人员的跨平台机器学习框架,而Model Builder是Visual Studio中的UI工具,它使用自动机器学习(AutoML)轻松地允许您训练和使用自定义ML.NET ...
- 如何获取Html的height和width属性(网页宽、高)
1.页面如图所示 2.Html代码 <div style="color:green;" id="html_info"></div> 3. ...
- mongodb基本安装
这次搞搞NOSQL, 但最简单的MONGODB安装,还是要作点配置的. 一,安装网址: https://www.mongodb.com/download-center/community?jmp=na ...
- numpy函数查询手册
写了个程序,对Numpy的绝大部分函数及其说明进行了中文翻译. 原网址:https://docs.scipy.org/doc/numpy/reference/routines.html#routine ...
- MyBatis PropertyTokenizer
PropertyTokenizer package org.apache.ibatis.reflection.property; import java.util.Iterator; /* 例1: 参 ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成
CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的).W3C也有新的版本更新,称为CSS3.虽然浏览器已经准备开始实现CSS3 ...
- 【Java基础】Java中你必须知道的知识点
目录 Java中面向对象的基础知识 1. 什么是面向对象 2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...
- 解决maven创建web项目过慢的问题
在骨架选择完成后,变量处. 增加一组变量 archetypeCatalog internal