近日,外媒指出,在过去的35年里,软件行业发生了一些重大变化,其中之一就是越来越多的软件应用基于无代码原则构建平台,软件行业的未来将属于无代码平台。
那么,代码在软件编写中起到什么作用?无代码平台是什么?软件编写真的可以不用代码吗?无代码软件有哪些优势?它代表了软件行业未来的发展趋势吗?带着以上问题,科技日报采访了业内相关专家。
代码是软件的“物理”载体
当前,人类社会正处于高速发展的信息时代,现代信息系统的出现、发展和广泛应用是信息时代的突出特征。
北京理工大学计算机网络与对抗技术研究所所长闫怀志在接受科技日报采访时表示,所谓现代信息系统,是指以处理信息流为目的,由计算机和网络通信硬件、软件、信息资源、用户和规章制度等构成的人机一体化系统。软件是现代信息系统的重要组成部分,在其中发挥着关键作用。
软件是指与计算机系统运行有关的计算机程序、过程、规则以及相关的文件、文档和数据。软件在运行时会向计算机或其他设备提供一组操作指令或程序来处理信息,并以文档的形式描述该程序的功能要求以及如何运行和使用该程序。
一般认为,程序就是软件代码,是程序员(通常被戏称为“程序员”)使用开发工具支持的语言编写的源文件,软件代码通常是一组有序的数字或字母,是表示客观实体及其属性的符号。
一个软件的生成首先要从软件设计需求开始,然后进行软件功能设计,制定软件系统的总体架构、划分功能模块、确定各个模块的实现算法,最后通过编写具体的代码形成相应的软件。
“也就是说,代码是软件业务功能和逻辑结构的‘物理’载体,是软件运行并实现预期功能的基本实体。”闫怀志介绍,一般来说,人们经常看到的代码,是用编程语言编写的、可以用记事本打开的多行英文文本,也就是源代码。这个源代码,是程序员用汇编语言、高级语言编写的“原始”代码。
除脚本语言源代码外,大多数源代码不能直接在计算机上运行,通常只有可执行程序才能直接在计算机上运行,而从源代码到可执行程序的转换需要经过预编译、编译、汇编、链接等多个步骤。
闫怀志解释,之所以要进行这种转化,是因为源代码本身无法被计算机的中央处理器(CPU)识别,需要通过编译器“翻译”生成CPU能够识别的、以汇编语言表示的二进制代码,也就是目标代码。而目标代码需要经过链接后才能执行,这种链接后的二进制代码被称为可执行代码,可以在计算机上直接运行。
无需编码即可进行开发

代码作为软件的“物理”载体,在软件编写和运行过程中起着至关重要的作用。那么什么是无代码软件呢?
“严格意义上来说,无代码软件是不存在的,任何软件都必须有代码。”闫怀志介绍,人们经常谈论的无代码软件,其实就是指无代码开发。所谓无代码开发,是指软件开发人员无需手工编码,就能实现目标需求,即用软件来生产软件的一种软件开发方式。这种软件开发技术的创新实践,大大简化了知识传递和软件工程管控的过程,为软件开发和运维提供了极大的便利,让“人人都是程序员”不再是幻想。当然,专业程序员利用这种技术,也能大幅提高软件开发效率。
天津大学软件学院软件工程系教授冯志勇也表达了同样的观点。在冯志勇看来,所谓的无代码更多是一种概念,这种技术虽然让用户不再在软件编程界面输入代码,而可以使用图像拖动等更加人性化的人机交互方式来实现编程,但这需要在后台存储大量预先编译好的代码模块。
“其实无代码开发对后端支撑能力的要求非常高,后端需要配备非常强的技术团队,完成底层功能模块的开发,这样才能让用户完成‘傻瓜式操作’,操作界面也变得简洁。”冯志勇指出。
那么,如何实现无代码开发?
闫怀志介绍,无代码开发主要依托于无代码开发平台,这是一种无需编程的配置式快速软件开发工具,采用全新的人机交互方式,直接配置业务参数构建应用系统,让非专业程序员无需掌握高级编程语言,也可以轻松完成软件开发工作。
无代码开发平台可以提供统一的技术架构和极简的开发方式,用户可以自行选择合适的系统,甚至可以定制个性化的系统,避免专业代码开发的“繁琐”。目前常用的微信、钉钉等移动端APP,在这些应用系统的开发中,都有可能使用无代码平台。
安全风险
其实,业界早就对简化代码开发提出了要求。闫怀志举例,以企业应用开发为例,过去几十年涌现了工作流()、智能业务流程管理系统()、低代码(Low-Code)等应用开发模式。2018年5月,国际知名咨询公司 提出高生产力应用平台(High PaaS,简称PaaS)的概念,掀起了新一轮无代码开发热潮,很多人因此预言“无代码软件的未来已经到来”。
无代码开发的技术优势有很多,总体来说操作简单,效率高。这种模式让用户不直接写代码,大大降低了软件开发的门槛,适用人群更广泛。非专业程序员可以根据业务需求搭建适合业务的系统;而专业程序员则可以从繁重枯燥的编码工作中解脱出来,从而同时显著提升代码开发的质量和效率。
“目前,无代码软件的开发效率可以达到传统开发模式的10到30倍。但无代码开发并不意味着专业程序员会失业。”闫怀志认为,这是因为无代码平台编写的软件仍然存在一些不足。比如,要完成高效的无代码开发工作,操作人员仍然需要掌握必要的软件开发知识和编程技能,而且这种软件的定制能力会受到一定的限制,在可扩展性上也存在一些不足。同时,在安全性方面,无代码软件的安全性很大程度上取决于平台自身架构的安全性以及其提供的应用安全机制。因此,在安全性方面,该类软件也存在一定的风险。
但可以预见的是,无代码软件将是未来软件生产的一个重要发展趋势。在闫怀志看来,尽管这一发展过程中会存在诸多变数,但业内普遍持谨慎乐观的态度。“如果安全风险和自主可控问题能够得到有效解决,未来无代码软件的发展前景将一片大好。”他表示。(记者 唐婷)