在由轻流主办的第二届「无代码未来趋势论坛」上,上海交通大学沈备军老师发表了主题演讲。
她从学术角度为大家讲述了无代码开发的技术内核。
以下为沈备军的演讲全文:
大家好,我是沈备军,来自上海交通大学软件学院。
我在这分享的主题是:无代码开发技术的“内核”。
无代码开发的本质
在讲这个技术内核之前,我先简单介绍一下自己。我一直从事软件自动化研究,至今已经有 30 年的时间。在上个世纪 90 年代的时候,我们开发了第一款低代码工具叫 Formnet,做的是企业信息化、面向程序员的低代码开发平台,取得了很大成功。
我们成功开发了亚运会的系统,并获得了国家技术创新二等奖。这个工具我们也推向了全世界:在日本,特别是美国,在美国一个政府的应用系统开发中用得非常多。最近几年,我们一直在研究代码的自动生成和缺陷的自动修复。
今天,主要从学术的角度、从全球视野的角度,一起来探索无代码开发的技术内核。
无代码开发从学术角度来说是什么呢?
它是一种新型的面向最终用户的新的开发模式,是一组工具方法、技术和平台组成的辅助。让我们的业务人员,没有任何软件工程、软件开发技能的人员能够自主开发出一个出色的软件,这就是无代码在学术界的定位。我们经常说是软件改变了整个世界,而无代码开发是改变了软件的开发,它给软件带来了两大优势。
第一个,它让我们人人都是程序员。中国现在要做企业数字化转型,那么全国有多少程序员呢?据统计有 700 万个,从需求来看是远远不足的。而无代码开发使得任何人都可以成为程序员,这是第一大 benefit 。
第二大优势是什么呢?就是领域的交叉创新。以前我们在做软件开发的时候,经常会碰到这样一个问题,开发人员不懂业务,业务人员不懂技术。这时候我们做出来的软件常常不能解决真正痛点。现在我们让业务人员懂了技术,可以来开发软件。那么最后创造出的软件可以想象一下创新能力有多强。
所以这是它的两大优势。
过去的做法
我们前阵子一直在讨论鸿蒙操作系统的内核,大家知道,我们交大软件学院陈海波教授做了鸿蒙操作系统的内核,非常出色。
现在我们探索一下无代码开发,它的技术内核是什么?
我们总结一下无代码开发技术内核,它是一个领域特定语言 DSL 。那么这个领域特定语言,它的表达方式是可以各种各样的,比如轻流的内核,是一种可视化编程、搭积木式编程,甚至还有配置式的编码。除此之外,全球无代码技术的内核,还有示例编程、演示编程、自然语言编程等等。轻流代表的是企业信息化,采用可视化编程的方式来实现无代码。
微软 Excel 当中的快速填充,它是一种programming by example。我们只要把数据的输入输出的例子写在那里,它会自动生成下一个数据,所以它叫 program by example 。
还有机器人编程,我们看到有专家演示过一个机器臂在拧螺丝或者在捡。机器人可以做很多事情,比如说可以捡石头,甚至照顾老人。机器人的编程以前是程序员做的,现在我们在研究什么呢?叫 programming by demo。我在这拧个螺丝,它看了我怎么做,它马上就学会了,它不用编程,这叫无代码,我做个例子它就会了。这又是另外一个 DSL 。
在物联网领域也要用无代码。国际上最有名的无代码语言就是 IFTTT,用 If Then 规则来编写代码。非常好的、有趣的例子。
再来看儿童学习无代码,儿童的想象力有多大?我们让他也成为程序员。我们常说,程序员从娃娃抓起,怎么抓?第一个语言, Scratch、MIT委托进行维护的。如果你们有小孩可以开始学无代码开发了,不仅你自己在用,小孩子也要学,他可以用搭积木的编程方式,编写出一些多媒体软件来。
还有手机软件,手机的 App 我们也可以用无代码进行开发,所有你可以看到的这一个世界。
无代码的世界真是非常大,创新想象的空间非常大。那为什么无代码可以让无编程经验的人也能够编写程序呢?这是因为它是领域特定的, DSL 领域特定的。基于这个领域,我们进行抽象,第一个关键点就是抽象,把共性抽象出来,然后进行实现。
第二个,抽象出它的可变性。比如说企业应用当中,很多应用当中把它的可变性抽象出来,用一个语言来进行表达,让我们的业务人员用这个语言来定义和配置。
第三个就是工具自动化,所有这些事情要有一个环境工具来进行支持。
那么现在的最大的难题是什么呢?如何去设计这个 DSL 。
我们有五个步骤,大家一起来看一下。
第一,针对某一个特定领域,例如儿童学习你要做什么。进行领域的需求分析,确定它的共性和可变性,针对共性。
第二,我们要开发出一个组件平台或者是说引擎来进行实现。
第三个步骤是什么,把这些可变性设计出 DSL语言来。
针对这个 DSL 语言,还要开发它的工具。
最后一步 IDE 是让它可以编辑、可以调试、可以部署上线,这个是我们的一个核心。
无代码的未来
最后,我要展望一下无代码技术的未来。
第一点,我们可以看到各种领域的 DSL 将来是百花齐放。今天我们在这看到是轻流赋能企业信息化的这样一个无代码平台。那将来会有什么?我们可能已经有了无代码的游戏式开发,已经有了机器学习 Auto ML DSL,没有编程能力的人也可以用机器学习来进行编程。我们的科学计算、数据分析,物联网机器人等都将百花齐放。
我们说轻流是个非常棒的产品,它的成功是可以复制的,可以复制到各个领域当中;或者说,轻流可以不断地扩展,它可以从企业信息化扩展到各个领域当中。
第二点,未来趋势是什么?从自动化到智能化。现在我们的无代码用的积木式的可视化的方式来进行开发,它实现的是自动化。那么接下来,下一代会引入人工智能,使得这个软件更加的智能。现在我们说的是无代码开发,那么将来有可能开发两个字就会没有了,变成“无代码的软件”、“实现无代码的软件生成”……
也就是说我们的业务人员不需要有计算思维,他只要懂应用需求,有了需求我们可以直接自动地来生成这个软件。我对无代码的趋势是非常乐观的。
软件定义世界,在无代码时代,让我们一起来编写软件。谢谢大家。