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