返回顶部
    1. 机器编程驾到 未来全球78亿人都能写代码?

      时间:2021-01-04 20:39     来源:互联网     阅读:

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

        本报记者 华 凌

        1%

        据统计,全球78亿人中,只有2700万人会编写代码,占比不到1%。美国有50万个编程人员岗位空缺,欧盟目前只有10%的编程人员受过计算机科学专业训练。  

        据报道,英特尔公司在2020年12月推出的机器编程研究系统ControlFlag是全球首个自我监控系统,不需要标记数据就能学习。在初步测试中,这个系统利用超过10亿行未标记的产品级别代码进行训练,还可以自主检测代码中的错误,发现了许多过去被开发人员忽略的违规和异常。

        英特尔首席科学家、英特尔研究院机器编程研究主任及创始人贾斯汀·戈茨利希认为,这款软件能够“大幅减少评估和Debug(修补漏洞)所需的时间和成本”。 英特尔研究院的研究人员发现,软件开发者会花费大约一半的时间用来Debug,通过ControlFlag以及类似的系统,程序员有望大幅减少Debug的时间并把更多时间用于人类程序员最擅长的工作。

        机器编程的实质究竟是搬运代码模型,还是具有一定的自主开发特征?目前机器编程的主要方法有哪些,效能如何,具备怎样的优势?为什么有专家认为机器编程不仅不会取代程序员,还会创造出大量就业机会?

        机器编程让代码不再是“手工艺品”

        快速发展的科技领域几乎离不开编程。传统编程看似简单,其实对操作者的要求很高。尽管大多数人可以熟练使用自然语言表达自己的想法,但是让所有人都去学习编程却并不是件容易事,这需要人的逻辑思维和对底层原理的理解作为支撑。

        据统计,全球78亿人中,只有2700万人会编写代码,占比不到1%。根据美国非盈利组织code.org的数据,美国有50万个编程人员岗位空缺,欧盟目前只有10%的编程人员受过计算机科学专业训练。

        “如同好的作家不一定是好的编剧,作家描写人的内心活动可以用‘心如刀绞’这类语言进行描述,但是编剧需要通过场景搭建和细节设置把这种情绪细致地表现出来,演员才能沿着这个逻辑栩栩如生地表演出来。”西安电子科技大学电子工程学院教授吴家骥介绍说,好的程序员就如同代码“编剧”,往往需要通过长时间学习和实践才能掌握编程的基本规则。

        传统编程是基于计算机语言规则和逻辑,利用规范化的编程语言,把人的意图在计算机世界里实现的过程,程序员就像传统工厂流水线上的员工一样,只需按照定义好的标准接口和编程规范,把需求意图拆解为正确的逻辑,用代码写出来。

        然而,在软件飞速发展的今天,软件的开发和维护却依然是既耗时又容易出错的工作。贾斯汀·戈茨利希认为,这从软件诞生之日就困扰着一代又一代程序员的问题其实并非无解,他认为:“我们能创造一个人人都是软件开发者的社会,届时机器将会承担编程部分的工作即机器编程,让代码不再是‘手工艺品’。”

        吴家骥向记者介绍,所谓机器编程,就是通过机器学习和其他自动化方法,设计可以自动编写软件的软件,它涉及形式化方法、编程语言、编译器、计算机系统等多个领域。机器编程所使用的自动编程技术既有精确方法(比如形式程序合成),也有概率方法(比如可微分编程)。

        “人类的编程过程侧重于逻辑业务,很少关心编程的语法、格式等。而机器编程实质是搬运代码模型,因为目前还没有成熟的编程机器可以达到自主开发软件的程度,包括英特尔最新提出的ControlFlag。”吴家骥指出。

        有助于大幅降低开发和维护成本

        其实机器编程并非新生事物,早在上世纪50年代,就已经有学术机构开始涉足机器编程的研究。

        在贾斯汀·戈茨利希看来,当下正是发展机器编程的好时机。“机器编程汲取了我们迄今为止获得的所有软硬件知识。今日与往时不同的是,我们站在了历史的拐点上,我们现在有新的机器学习算法、新硬件与优化硬件、海量而多样的编程数据,而这三者是发展机器编程的必备要素。”

        目前机器编程的效能如何,具备怎样的优势?吴家骥介绍说,有了机器编程,软件的开发和维护将有望实现完全自动化,编程人才的缺口、编程精确度有待提升等问题也迎刃而解。

        据了解,机器编程的方法主要分为两种:一种需要依赖编程领域专家知识和已经设定好的模板库,即编程机器把专家制定的规则和大量模板库组合起来,进而满足人们的编程意图。但其问题在于,专家的知识储备和模板库需要不断积累更新。此外,编程中存在很复杂的逻辑和多样化的语法差异,仅靠少数专家很难做到全面掌握所有信息,其制定的规则也无法做到近乎完美。

跟帖

0

参与

0

发表评论
  • 暂无评论~