新版 Kite:实时补全代码,Python 之父都发声力挺

2019-11-05 20:15发布

雷锋网 AI 开发者按:不久前,一个免费的专门针对 Python 的代码补全工具 Kite,有了新的动态。这次,Kite 开发者在之前的基础上,增加了「Intelligent Snippets」功能。它可以帮助广大开发者在敲代码时,实时生成与上下文相关的代码片段。

这不仅大大提高了代码敲写效率,同时也让开发者能更轻松地完成更复杂、更多字符的代码语句。Python 之父 Guido van Rossum 用后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具。那么,这一工具到底效果如何?雷锋网 AI 开发者带大家一探究竟~

新版 Kite 好在哪儿?

更智能的代码补全

据官方介绍,本次更新的「Intelligent Snippets」功能,旨在给予开发者更加完美的敲代码体验。

在这之前,大部分开发人员会选择静态自动补全代码方式,作为提高在 Python 中调用函数效率的解决方案。但这一方法也有局限,它无法随开发者编写过程而自动适应,需要手动修改参数和子语句。

例如,下图展示了开发人员使用代码片段插入函数定义的结构,然后填充函数的其余部分。

而新版 Kite 的「Intelligent Snippets」是基于 Kite 在代码库中找到的代码模式实时生成。该引擎可以根据正在使用的代码动态生成片段,它会自动检测代码库中开发者所使用的常见模式,并在编写代码时建议使用相关模式。从下面的示例我们可以看到,它能有效预测一些常用编辑模式:

更全面的函数支持

Intelligent Snippets 构建在 Kite 代码补全核心代码引擎上。Kite 首先会索引开发者的代码库,并学习函数常用模式。然后,当开发者调用函数时,Kite 会为该函数提供一些片段,以补全该部分代码。Kite 的自动补全功能仍然为每个参数提供补充代码的建议。

Intelligent Snippets 不仅可以节省编写代码的时间,还可以减少开发者查找文档的次数。

下面的视频显示开发人员使用 Intelligent Snippets 快速调用 requests.post:

Intelligent Snippets 也适用于自定义的函数,如下图中所示:

更高的编写效率

从官网的演示来看,我们会发现通过使用 Kite 后,该工具不光能够帮助开发者减少敲代码的次数,也可以有效提高编写速率。在下面这个例子中,同一段代码,使用 Kite 后能够有效减少 47% 的敲击次数。

除此之外,新版 Kite 还支持一键检索功能,只需点击代码即可查阅对应的文档。其中,包含了 800 多个 python 库和代码 Demo。

更多编辑器支持

新版 Kite 除了支持之前的 Windows、Mac、Linux 编辑器之外,还支持了更多编辑器,而且更多语言正在扩展中。 新增支持编辑器如下:

  • Atom

  • PyCharm

  • Sublime

  • VS Code

  • Vim

  • IntelliJ

其它代码补全工具

当然,除了 Kite 之外,目前讨论较多的代码补全工具还有被称作「程序员的杀手级应用」TabNine;将深度学习应用于代码补全的 aiXcoder 等。

从一些网友的评价来看,对这几款工具的评价也是褒贬不一,小编选取了几个有趣的评论,并将其主要优缺点对比及工具下载地址整理如下~

  • 新版 Kite

优点:代码补全更智能、高效

缺点:只支持 python 语言

下载地址:https://kite.com/download/

  • TabNine

优点:功能强大,支持度广泛

缺点:cpu 消耗大,笨重

下载地址:https://tabnine.com/blog/deep

  • aiXcoder

优点:一键输入整行代码,敲代码不存在的

缺点:需上传代码

下载地址:https://aixcoder.com/#/

当然,还有很多其它同类型的工具没能在此一一列举,这些优缺点也仅供参考;因为不同的人使用该类工具的用途、习惯都不一样,找到适合自己的工具就好~

文章来源:

https://kite.com/ref/eesWDmm

Kite 博客:

https://kite.com/blog/product/announcing-intelligent-snippets-for-python/

更多信息:

https://www.kdnuggets.com/2019/11/top-machine-learning-software-developers.html

雷锋网 AI 开发者

文章来源: https://www.toutiao.com/group/6755756889327272455/