机器编程驾到,未来全球78亿人都能写代码?( 二 )


其实机器编程并非新生事物, 早在上世纪50年代, 就已经有学术机构开始涉足机器编程的研究 。
在贾斯汀·戈茨利希看来, 当下正是发展机器编程的好时机 。 “机器编程汲取了我们迄今为止获得的所有软硬件知识 。 今日与往时不同的是, 我们站在了历史的拐点上, 我们现在有新的机器学习算法、新硬件与优化硬件、海量而多样的编程数据, 而这三者是发展机器编程的必备要素 。 ”
目前机器编程的效能如何, 具备怎样的优势?吴家骥介绍说, 有了机器编程, 软件的开发和维护将有望实现完全自动化, 编程人才的缺口、编程精确度有待提升等问题也迎刃而解 。
据了解, 机器编程的方法主要分为两种:一种需要依赖编程领域专家知识和已经设定好的模板库, 即编程机器把专家制定的规则和大量模板库组合起来, 进而满足人们的编程意图 。 但其问题在于, 专家的知识储备和模板库需要不断积累更新 。 此外, 编程中存在很复杂的逻辑和多样化的语法差异, 仅靠少数专家很难做到全面掌握所有信息, 其制定的规则也无法做到近乎完美 。
【机器编程驾到,未来全球78亿人都能写代码?】第二种是利用机器学习进行自我监督去适应编程规则, 让机器通过海量给定的代码学习正确的编程规则, 常用于进行程序代码测试 。 这种方式包括两个阶段:模式挖掘阶段, 主要学习用户指定的GitHub(一家开源平台)存储库中的特殊编码模式, 当学习完成时, 该模式将生成一个优先级字典, 为后续机器编程提供知识储备;扫描阶段, 主要是根据所学的特异性模式字典分析给定的源代码存储库, 当识别到异常模式时, 将发出报警信息并为用户提供可能的替代方案或进行自动校正 。
“利用自我学习的方法可提高机器编程效率, 这是由于自监督学习可以不断自我完善自我进化, 使得机器越来越聪明——在编程时可以快速把人类意图或自然语言转变为编程语言, 在代码调试过程中可以智能地提示错误 。 ”吴家骥指出, 机器编程的快速发展将有望大幅提高软件开发和维护的效率, 同时可以有效降低成本 。
据统计, 全球IT行业每年花费的1.25万亿美元软件开发成本中, 大约有50%用于Debug 。 目前, ControlFlag已经证实了其可以在广泛使用的产品级代码中发现隐藏的bug(漏洞), 比如在分析cURL(程序员广泛使用的实现互联网下载的开源命令行工具)时, ControlFlag发现了一个以前没有发现的异常, 促使cURL开发者提出了更好的解决方案 。
为人类程序员省出时间去创造
程序能够自动化的高效构建, 意味着程序员要失业了吗?贾斯汀·戈茨利希的观点是, 机器编程真正过人之处是创造数千万到数亿个就业机会, 并且专业程序员也不会被替代 。
“未来机器编程不仅不会取代程序员, 还会创造出大量就业机会, 可能多达上百万个 。 这是由于机器编程实质上大幅度降低了编程门槛, 就如同电脑上的很多操作工具, 它们的出现提高了人类的工作效率, 可以让更多的普通人参与到编程中, 实现更多的工作流, 即业务过程的部分或整体在计算机应用环境下的自动化 。 ”远望智库AI事业部部长、图灵机器人首席战略官谭茗洲说 。
英特尔公司曾表示, 其开发机器编程的愿景是:只要你能以机器可理解的方式表达你的“意图”——可能是用自然语言, 或者可视化的图表, 甚至是打个手势——机器编程就会帮你开发属于你自己的软件 。
对此, 谭茗洲解释道:“未来需要更有效的编程意图概要设计, 把大的意图拆解为更小的意图, 每个意图更容易让机器理解, 进而可以让机器编写代码 。 未来机器编程可能以一种交互式的方式进行, 通过多轮对话以交互形式构造编程环境 。 ”

推荐阅读