中国700万程序员不够用怎么办?我们问了软件自动化专家北大谢涛
金磊 梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI
在自动驾驶领域,有着L1-L5的等级划分标准。
随着近年来自动驾驶火热,这一标准不断得到验证,已成为业界共识,也指导着行业发展。
人们开始想,其他行业能否对此有所借鉴?
最近,北京大学计算机学院讲席教授谢涛提出了他对时下另一火热行业——低代码/无代码开发的思考。
谢涛是最早开展智能化软件工程方向的学者之一,早在2005年就提出用机器学习提高软件质量的方法。
他提出软件的智能化创建也可相应分为L1-L5等级。
低代码/无代码开发为何成为热点?
今天的低代码/无代码开发行业发展到了哪个标准阶段?
下面来听听谢涛的看法。
程序员不够用了
据统计,中国有近300万家软件开发商和700万程序员。
但在“软件定义世界”的今天,这个数量还远远不够。
知名IT研究机构Gartner曾预测,要满足中国企业的所有数字化转型场景,需要开发至少5亿个新的软件系统。
新软件大多要为制造、物流、电力、农业等传统行业开发。
这些行业有着各异的需求,也有大量知识上的壁垒,也就是常说的“隔行如隔山”。
对于传统软件开发商来说,需要扎根到行业多年,才能积累足够的行业知识背景。
虽然今天软件工程师、专业开发者的队伍壮大起来了,但面对迅猛增长的需求,生产效率却没有太大的改观。
软件开发者对行业需求理解不到位,懂需求的人不懂软件开发,导致开发的低质、低效。
低代码/无代码开发和软件自动化正是在这一背景下兴起。
简单来说,如果能让应用需求方自己创建软件,个性化的需求就能被高效优质地满足。
低代码/无代码开发、软件自动化之间又有什么不同之处?
在谢涛看来,这两种技术分别面向不同的人群。
低代码/无代码开发的使用者懂应用需求,可能懂计算思维,也可能懂编程。
像在Excel里编写公式,或现在流行的拖拽式应用搭建工具。
软件自动化更进一步,使用者只需要懂应用需求,不一定需要懂计算思维,也不一定需要懂编程。
像是Excel里的快速填充功能,不再需要公式,只需要给出少量示例即可自动完成内容填充。
当前的低代码/无代码开发是软件开发的现状,通常对应着L1(辅助开发)和L2(部分自动开发)。
回顾整个软件工程50多年的历史,走过了面向过程开发,到今天的面向对象、面向构件开发。
再往前一步,谢涛认为应当是面向智构件开发。
简单来说就是“搭积木”,用复用、组装、集成来进一步提高软件开发效率。
和以往不同的是这些“积木”(也就是构件)中很多是被智能化地创建出来的,不需要人手动开发。
另外,一些复用、组装、集成也被智能化地自动进行,不需要投入人力。
不过,“搭积木”创建出整个软件系统的过程中仍然需要有人的参与去做开发,而面向智构件开发就是指导人在这如何去开发的方法学。
这里面的一个关键是从知识驱动、知识密集转向数据驱动和智能化手段。
不再需要靠“堆人力”去了解行业背景知识,而是用不断产生的数据让智能化手段越来越强,才能走向L3甚至更高阶段。
在这些思考基础上,谢涛对智能化软件工程的研究也深入到行业落地阶段。
在中国计算机大会 (CNCC 2021)软件自动化技术论坛以及CCF TF第49期技术研讨会上,他剖析了制造型企业数字化升级面临的问题。
提出用工业互联网操作系统、智能制造低代码平台、工业智能质检平台助力制造型企业解决信息孤岛困局。
谁是谢涛?
谢涛如今在北京大学计算机学院就职,担任讲席教授。
同时,他还身兼高可信软件技术教育部重点实验室(北京大学)副主任,北京大学信息技术高等研究院数据驱动软件开发实验室主任,北京大学新工科建设委员会副秘书长等众多职务。
他被评为美国科学促进会(AAAS)会士、电气电子工程师学会(IEEE)会士、美国计算机协会(ACM)杰出科学家、中国计算机学会(CCF)杰出会员。
谢涛最近一次走进大众的视野,是他在软件工程国际顶级会议ASE 2021(自动化软件工程国际会议)中,斩获了 最有影响力论文 (Most Influential Paper Award)。
要知道,这是ASE自1986年创办的35年以来,该奖项首次被华人学者摘取(除了谢涛外,另外一篇同期获奖论文的作者包含一位澳大利亚华人学者)。
而谢涛所凭借的论文,便是他在2007年发表的《PARSEWeb:A Programmer Assistant for Reusing Open Source Code on the Web》。
当时的谢涛正在北卡罗来纳州立大学担任助理教授,他和他的学生发现,程序员们在日常工作中经常会重复使用现有的框架或库。
但在这个过程中,一个问题便逐渐浮现了出来:
程序员知道他们需要什么类型的对象,但不知道如何通过特定的方法序列获得它们。
即便当时已经有了Google Code Search这样的代码搜索引擎,但要做到有效地去支撑这个编程问题,还是欠缺了一些东西。
基于这样的现状,谢涛和他的学生就决定“站在巨人肩膀”上开发出大代码挖掘基础设施。
具体而言,在这项研究中,他们提出了一种新方法ParseWeb,将“源对象类型→目标对象类型”这样的查询作为输入,并建议相关的方法调用序列。
这些序列可以作为解决方案,从查询中给出的源对象中获得目标对象。
谢涛团队的工作可以说是最早将大规模的代码搜索、机器学习和数据挖掘做了结合,成为大代码、软件大数据重要产业和学术方向的先驱“开荒者”。
这也正是14年后能够被ASE评为“最有影响力论文”的原因了。
ParseWeb的成功,一定程度上也奠定了谢涛在接下来的科研道路上,坚定对软件自动化的步伐。
而另一个里程碑一样的事件,发生在了四年后的2011年。
当时的谢涛正值学术休假,他利用这段时间来到了微软亚洲研究院访问,加入(现为副院长)张冬梅的团队一起合作。
他们所做的具体内容,叫做软件解析学 (Software Analytics),这个名字是由张冬梅在2009年组建团队时命名,对软件解析学的定义则是由谢涛和张冬梅的团队在2011年一起合作给出的。
简单来说,软件解析学就是研发出一个数据驱动的解决方案,来解决软件及服务相关的一系列任务,服务广大软件产业人员。
他们推动了一系列对产业有着深远影响的软件解析学系统,包括Windows操作系统的性能调试、代码克隆的检测,以及现在所谓的智能化运维等等。
时至今日,软件解析学已然在软件工程领域蓬勃发展,成为了非常重要的子领域。
而也正如我们现在看到的,回到北大后的谢涛,依旧发力于软件自动化相关的工作。
2020年底,谢涛被授予了科学探索奖,评委会给他的获奖理由是:肯定他在软件测试与软件解析学方面的成绩,支持他在数据驱动的软件自动化方法和技术方面的探索。
那么接下来,在低代码、无代码以及软件自动化这件事上还应该关注或聚焦哪方面的发展呢?
据谢涛介绍,可信度和质量安全需要被高度重视起来。
因为机器,哪怕是用到最先进的深度学习方法,也很难保证做到100%的准确率来自动生成满足需求的软件。
而当类似低代码、无代码这样的方法,交接给没有计算机背景的企业员工手中,如何保障其在所有环节中不出错,就成了低代码、无代码效果好坏的关键。
……
最后,也是大家最为关心的一个问题——低代码、无代码以及软件自动化的发展,是否会让程序员被时代淘汰?
对此,谢涛直言道:
不用担心。
首先,软件自动化在目前以及未来很长一段时间都还会是被局限于很特定的任务。同时,即便是现在低代码、无代码蓬勃发展,但依旧是满足不了数字化大浪潮的需求。
而它们的出现,只是省去程序员、工程师一些琐碎且重复的工作,好让他们能够将更多的精力放到更具价值和创新意义的工作中。
参考链接:
[1] https://taoxiease.github.io/publications/ase07-parseweb.pdf
[2] https://taoxiease.github.io/biocn.html
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态