原文:
www.kdnuggets.com/2019/11/top-machine-learning-software-developers.html
评论
作者:Sandra Parker,QArea 软件开发公司。
今天,感兴趣于机器学习潜力的程序员谈论的是用人工智能构建应用程序以及用于基于 AI 的软件开发的工具。好的例子包括 PyTorch 和 TensorFlow 等解决方案。
然而,机器学习技术正在以另一种有趣的方式影响编程世界。我们谈论的是近期的软件开发解决方案,这些方案利用机器学习算法来简化和优化开发者的工作。在这篇文章中,我们将关注五种这样的工具。其中三种已经在市场上销售,而另外两种仍在测试阶段。如果你是一个希望利用机器学习来更快、更有效地进行软件开发的开发者,请查看这些解决方案。
Kite – 发展中的顶级机器学习工具之一
这个工具主要作为代码补全器。借助机器学习,它可以实时检测你输入的代码,并在你输入时完成它。它经常被列为开发者的最佳工具之一,并且与许多流行的代码编辑解决方案兼容良好。
Kite 使用了一个从 GitHub 获取的工作模型。GitHub 上的代码是公开的,用于创建一个作为 Kite 模型支柱的抽象。因此,该工具能够基于上下文和目的,而不仅仅是文本本身,自动建议和完成代码。
刚推出时,Kite 只能在 Mac 和 Windows 上使用。如今,它也可以在 Linux 上使用。这个工具的缺点是目前仅支持 Python。然而,它也正在开发中以支持 Go 语言。
两年前,Kite 被开源程序员指责处理用户数据不当,并且修改了一个流行的 Atom 插件,该插件用于自动补全代码。然而,Kite 的所有者已解决了这两个问题。最近,Kite 团队宣布,该工具现在可以在用户的 PC 本地执行所有功能,而不再依赖于之前的云端服务。
Codota
这个工具与 Kite 非常相似,因为它使用机器学习生成自动代码补全。它还使用从公开代码中派生的语法树形成的类型。然而,它也有一些不同之处。
Codota 专为 Kotlin 和 Java 语言构建。它是一个基于云的解决方案,可以生成智能自动预测。值得注意的是,Codota 的拥有者表示用户数据不会传输到他们的服务器。只有有限的加密信息从编辑的文档中传输,因为这些信息是预测代码所需的,与范围和上下文相关。
Codota 支持 Linux、Windows 和 Mac 设备。然而,编辑器模式仅适用于 Android Studio、Eclipse 和 IntelliJ,这在你查看该工具支持的语言时是可以理解的。此外,Codota 的创建者提到,其他编程语言的版本正在开发中,预计首个发布的语言是 JavaScript。
这个工具有一个免费版本,它仅从公开访问的代码中创建自动建议。然而,付费版本也可以使用私有代码。你可以在工具的官方网站上请求价格报价。
DeepCode
DeepCode 也是流行的软件开发机器学习工具之一。它的主要功能是检查代码并突出可能存在安全漏洞的部分。与前两个工具类似,DeepCode 从公共存储位置评估代码以识别相似性。不同的是,这个工具还利用模式来查找脆弱区域。
DeepCode 实施了一种在达到关键安全级别之前分析用户输入处理的方法。因此,当任何数据在没有安全验证或许可的情况下从一个点移动到另一个点时,该工具会标记为“受污染”,并提醒你。这个工具能够突出显示的问题包括跨网站脚本、SQL 注入威胁、远程代码执行以及路径遍历攻击。
你可以在像 Bitbucket 和 GitHub 这样的流行代码库中找到使用 DeepCode 完成的分析。这些报告是免费的,可以用于开源项目或少于三十名程序员的私人工作。你也可以使用 DeepCode 来分析你的内部代码托管,需支付费用。
PROSE
由微软创建的这个框架帮助通过示例生成代码。PROSE 代表“使用示例进行程序合成”,可以用来创建其他编程工具,而不是直接作为预测解决方案实施。开发人员可以使用 PROSE 的方式包括通过示例进行文本转换、通过预测进行文件操作和从文本文件中提取数据。
Pix2code
Pix2code 仍处于实验阶段,是一个创新的工具,可以将图形用户界面截图转换为计算机代码。通过使用深度学习技术,该软件可以分析三种不同格式的 GUI:iOS、Android 和 HTML/CSS。然而,由于该工具仍在测试阶段,你只能将其用于学习或作为额外软件开发的基础。
正如你所见,这些创新工具可以协助代码完成、安全措施,甚至代码生成。机器学习带来了巨大的可能性,以及快速高效的软件创建,因此值得深入研究这些工具。不过,任何单一工具都无法在没有经验丰富的软件开发团队的情况下运作。这些工具在节省开发时间方面不可或缺,但规划的初始过程和测试、QA 及部署的最终过程仍需要熟练的开发人员。
个人简介: 桑德拉·帕克 是 QArea 的业务开发人员,QArea 是一家软件开发与 QA 公司,帮助企业通过定制的软件开发和测试加速其业务。
相关:
1. 谷歌网络安全证书 - 快速进入网络安全职业道路。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT