人工智能会取代程序员吗?6月29日,2018第二十二届中国国际软件博览会(以下简称“2018软博会”)高峰论坛上,百度高级副总裁、AI技术平台体系(AIG)总负责人王海峰给出了答案。他表示,“人工智能将赋能软件开发更高质高效,加速软件开发的智能化升级。”
软博会由工业和信息化部、北京市人民政府共同主办,是软件和信息技术服务业领域规模最大、最具影响力、持续时间最长的软件专业展会。在2018软博会“新时代 新理念 新软件”的主题下,王海峰的演讲聚焦“软件智能开发”。
软件产业是引领科技创新的核心力量之一。数据显示,2017年中国软件和信息技术服务业产值达到5.5万亿元,同比增幅13.9%。软件行业是推进大数据、人工智能、互联网+等国家战略实施的重要支撑服务,同时在强化科技创新引领作用、推进供给侧结构性改革和大众创业万众创新等国家“十三五“重大任务部署中,起到激活市场主体、提升产业层级的重要作用。
软件产业规模日益庞大的同时,软件开发也面临巨大挑战。王海峰表示,一方面,软件产品交付的需求在急剧提升;另一方面,随着需求量的增加,软件编程现场数据规模急剧膨胀;此外,跨地域交互协同开发日益成为常态,一个项目往往涉及多个国家地区的开发人员。
这种多任务、跨地区的大规模编程过程,在带来挑战的同时,也催生了新的机遇——编程现场大数据随之产生。编程现场大数据具有瞬时性、海量性、多样性、可变性的特点,呈现出典型的大数据特征。王海峰表示,数据是人工智能发展的基础之一,“编程现场大数据既是软件开发的产物,同时也能为AI赋能软件开发提供了有力支撑。”
在算法、算力、数据的共同作用下,人工智能正迅速发展并渗透至各行各业,甚至在一些领域超过人类能力。这也引发了关于人工智能是否会取代人类工作的思考,软件开发行业的程序员们同样有这样的担忧,在百度搜索中,有大量的与“人工智能会取代程序员么”相关的搜索结果。
在王海峰看来,人工智能不会取代人类。在软件开发领域,人工智能不仅不会替代程序员,还会赋能软件开发,让软件开发的过程质量和效率更高,提升程序员的工作质量与效率。
王海峰以百度程序员的日常工作为例,解释了人工智能如何赋能软件开发。宏观上看,一个程序员每天会承接大量的产品需求,进行开发、评审、测试、编译、构建、发版等工作;微观上看,程序员的日常工作与代码密不可分,看代码、调试代码、追查问题,程序在循环往复的编写、测试、调整中持续迭代。
王海峰表示,基于编程现场大数据的软件智能开发,可以提升程序员开发的效率和质量。通过对编程现场大数据的采集、校验和处理,以及构建跨地域和动态感知编程环境,它能够实现智能化编程环境基础框架,进而搭建起人机协同开发服务云平台,其中智能编程机器人可以辅助人操作代码生成、接口推荐、代码推荐、代码评审、代码扫描、缺陷追踪等工作。
比如,人工智能技术可以通过代码语义理解,自动生成注释,可以进行代码的生成和补全,提高程序员的工作效率;可以对代码中的问题进行辅助定位和修复,提升程序员的工作质量。
“百度正在构建以编程开发为核心快速迭代,实现软件生产过程实时反馈,让整个生产过程高度并行化的软件智能开发技术。”王海峰总结到,未来,随着智能化水平的提升,简单的软件开发工具将变成智能助手,与人类程序员形成互补,机器人成为程序员的同侪,提升软件开发的质量和效率,共同促进软件开发行业的发展。