人工智能在软件开发领域应用现状

转载本文需注明出处:微信公众号EAWorld,违者必究。


江湖上一直流传着这样的传闻:“程序员们很快就要失业了,因为人工智能马上就能写出完美的代码了”。人工智能是以软件形式存在的,编写了这些强大软件的码农们,如果被自己编写的代码所取代,来写出新一代的代码,那会是一个神奇而又悲伤的故事。我们今天就来看看人工智能在软件开发领域里的现状,我们距离传奇还有多远?

有人说软件开发是一种艺术,有人说软件开发需要工匠精神,不管是哪一种说法,软件开发都是一个创造性的工作,而机器曾被认为是缺乏创造力的,但是随着深度学习的发展,人工智能在一些创造性的领域也得到了飞跃的发展。

现在的人工智能可以画画:

Trippy Artworks Created by Artificial Neural Networks

可以作曲:

musical.ai

可以写作:

•  2017年5月,机器人微软小冰出版了诗集《阳光失了玻璃窗》。
•  2017年,韩国某通讯社也测试使用人工智能进行足球比赛报道,几秒钟就可以稿件上线。
•  2018年,阿里妈妈推出的AI智能文案。

下图是我用最近世界足坛最出色的球星梅西(蹭一下煤老板转会风波的热度)的名字为种子让AI创作的诗:


感觉这个诗做的不错呀,把煤老板的转会风波又推进了一个意境,你觉得呢?

同为创作,AI离写代码还有多远?

上面提到的这些例子,大多是使用深度学习为基础来进行创作,而用深度学习技术来进行软件开发,主要面临着以下的一些挑战:

1.    很难判断


深度学习是一种监督学习算法,需要大量标注的数据,也就是说对数据的正确和错误打标签。但是代码很难用正确或者错误的标签来标记。也很难用数值来量化。而可用于训练的已标注的代码也非常少。

2.    容错率低

对于谷歌的猫狗判别算法,能有个90%可能就算是不错了,但是软件代码有99%都是对的,那可还是编译不通过,软件要求不能有任何错误。不同于自然语言,代码对于噪声非常敏感。

3.    复杂的上下文

开发软件需要大量的上下文知识,需求的分析,系统的非功能性要求等等,如何把这些知识融入到代码,对于AI来说,挑战颇高。

尽管如此,人工智能在软件开发领域已经开始有所突破,那么我们就看看AI现阶段都能做些什么?

代码辅助

代码辅助指的是辅助写代码的一些功能和过程。例如代码自动补全,代码搜索推荐,代码转换等。人工智能在这个领域大有可为,想想我写代码的时候,一大半的时间在查文档,还有一大半的时间在搜google和stackoverflow,人工智能可以很好充当码农的好助手。在这个领域里,已经有了不少的创业公司和相应的产品。

TabNine

TabNine是加拿大一位大四学霸开发的智能代码补全工具,作者Jacob Jackson目前在滑铁卢大学主修计算机科学与组合优化专业。该工具支持23种语言,支持VS Code、Sublime Text、Atom、Emacs、Vim五种代码编辑器。在VS Code的扩展商店里,TabNine已经被下载超过万次,获得全5星好评。2019年12月,被Codota收购。

 

Kite


Kite是硅谷创业公司,成立于2014年,A轮融资1700万美元。Kite提供智能代码补全,支持Python和JavaScript。

 
Kite目前支持以下的IDE:

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值