低代码开发的市场态势和争议综述
“低代码”对企业数字化发挥了两个作用,其一、支持非专业编程人士利用“傻瓜相机”方式生成应用软件,其二、利用可视化工具、模型驱动的方式,帮助专业人士提高软件开发效率。
低代码并不是新概念,这种软件工程思想及方法从90年代初就有了,经历了三个发展阶段:
一、快速程序开发(RAD)工具
90年代初 – 2000年代
基于面向对象编程思想和对数据库CRUD操作的第四代编程4GL, 90年代兴起了可视化编程方法,快速生成企业级应用软件,减少“硬代码”工作量
适合半专业人员和专业人员,使用可视化方式以及更接近于自然语言表达的编程语句
国内在2000年前后,微软Visual Basic,Sybase PowerBuilder,Borland Delphi等编程工具曾经风行一时,当时用这些工具开发的软件直到今天还在使用;
提供集成的可视化开发环境
2010年后,随着互联网公司兴起,互联网公司技术人员主导了编程技术主流,PHP、Java等工具普及,RAD工具应用逐渐减少;
二、模型驱动开发(MDE)
2000年代 – 2010年代
2000年代开始兴起的软件工程的概念,采用了业务模型和技术分离的架构设计。提供一个集成的软件开发环境,使用流程和数据建模标准(例如UML,CWM等),构建描述应用程序或集成系统的业务功能和行为的模型,
编程人员无需关心自动生成代码的过程,提高代码生成的效率
主要面向专业人员使用,有名的工具例如IBM Rational,也有非常多的MDA工具,例如JDL Studio;推动了开放标准组织(例如OMG)、企业架构方法、Java等发展
这种方式对于软件开发组织的业务标准化治理、工程管理能力要求较高;
三、应用云平台(APaaS)
2015年后
APaaS是Gartner在2014提出的概念,PaaS是承载和开发应用的云平台,介于IaaS和SaaS之间,将PaaS分为面向集成的iPaaS和面向快速应用生成的APaaS
APaaS提供可视化、模型驱动的开发,使用可定制的表单、工作流和业务规则构建应用程序;一键式部署到公有云、私有云或企业内部;生成的应用程序组件在平台上可重复使用,提高开发效率
APaaS是低代码开发在云时代的实现方式,可以叫低代码平台
低代码/无代码开发包括了:低代码开发平台(LCDP)、智能业务流程管理套件、MDXP、RPA和公民应用开发(CADP)等五种类型
低代码工具不仅包含商业应用生成的工具,还包括了一些其他领域的开发工具,例如智能交互应用(例如Chatbot编辑工具)、IoT应用(例如Node Red)等
2019年后,微软、AWS、Google、阿里等云大厂下场低代码后,极大推动了行业发展
我最近读了一篇不错的文章,这篇文章将“低代码”开发工具分为五类:
1,纯模型驱动开发:使用机器处理的模型构件,本身并不强调减少代码量,而是提高软件工程的模拟、校验、优化以及软件逆向工程的效率
2, 基于模型驱动的低代码软件开发:用机器处理的模型构件来生成程序,目的是减少代码工作量,自带代码生成和解释器来实施,但是不提供应用软件生命周期管理及部署平台
3, 基于模型驱动的低代码应用平台:模型驱动的低代码开发,而且提供应用部署平台,即APaaS,这样的平台通常是云服务,也部署在公有云上
4,低代码应用平台:没有采用模型驱动的低代码开发以及应用管理,开发应用程序访问没有明确元模型或语言的定义的业务模型,例如关系型数据库或者XML/JSON文件,例如一些低代码报表生成工具
5,低代码软件开发工具:为降低代码量而生成简单的数据查询或工作流软件的工具
除了应用系统开发外,我认为广义的“低代码”还包括了在整个企业IT价值链里,IT运营人员利用模型驱动的无代码工具,来替代传统需要编写代码的软件工程工作,例如:
DataOPS:面向数据分析的数据准备领域的IBM CP4D、Talend、Informatica,阿里的数据中台工具Dataphin等等都可以称为“低代码数据工具”
MLOPS:例如整合不同AI云服务、模型驱动的AI平台厂商C3.AI、Dataiku等,也常被列入“低代码跑道”
从市面上将自己贴标为“低代码”的厂商及软件产品来看,大致分为两类。
一类面向“半专业开发人员”,可以称为“低代码”。驾驭这种工具需要较强的系统分析能力,有时候要求要有一定的数据查询、用户脚本等类型的代码编写能力,典型用户例如咨询公司和系统集成商的实施顾问、企业内部IT系统管理人员等,具体来说又分为三种流派:
另一类面向“非专业开发人员”,也称为“业务用户”或者“公民开发者”,工具应该记叫“无代码”。对用户有一定的对业务的抽象思维能力的要求,但是对IT系统架构和代码编写等没有要求,主要面向大型企业的部门级、团队级的需求来开发简单的数字化应用,或者中小型企业开发简单的企业级应用,这一类工具具体来说又分为三种流派:
注:为免争议,国内厂商名字模糊处理
最近几年来,低代码获得了不少IT战略家、技术创业者、投资人的追捧,因为它在数字化时代,迎合软件开发的过程敏捷、架构开放、不断拥抱需求变化的特点,解决了企业数字化长期以来存在的痛点:科技部门如何快速响应业务部门的需求?业务部门给IT部提需求迟迟得不到满足,开发排期遥遥无期。
无代码工具可以无需任何代码,搭建简单的运营管理系统,这是我弄的:
我认为低代码存在的明显优势是:
提升开发效率,快速产生最小可用产品
释放业务部门的创造力,让他们可以自己创造数字化产品,而无需依靠IT部门
适应企业的数字化架构的转型趋势,业务用户可以灵活组合内部和外部的业务及数据服务的能力
不过,低代码也受到很多IT专业人员的质疑,有些专业人员质疑低代码处理复杂业务的能力,有些企业CIO认为低代码是厂商的封闭标准,生成的应用不能移植,甚至有IT专业机构CTO称低代码为“行业毒瘤”。总的来说,对低代码开发的质疑集中在开发质量、可管控性、数据治理等问题:
企业IT管理者认为业务部门搞低代码开发,会造成“影子IT”(Shadow IT)的现象,威胁到IT部门存在的价值
低代码开发的效率和质量被硬核技术人员鄙视,相当于法国大餐厨师鄙视麦当劳快餐的烹调水平
无代码应用平台多为公有云服务,可能给企业带来IT治理、信息安全等问题
由于业务部门在低代码开发中自行定义数据格式,可能和企业数据治理要求形成冲突,造成新的数据孤岛
那么,你认可低代码吗?
旧文: