低代码的历史
虽然“低代码开发”这个术语是在2014年由知名市场研究机构Forrester为了描述这一类服务提供商而创造的,但低代码背后的想法并不新鲜,很早就有低代码的思想了,我们简单回顾一下“低代码”的思想历史。
- 1970年-1990年:第四代编程语言
第四代编程语言:ABAP, Unix Shell, SQL, PL/SQL, Oracle Reports, RJames Martin在他1982年出版的《Applications Development Without Programmers》中,认为4GL技术(如RAMIS和FOCUS)向更广泛的人群开放了开发环境,并使非程序员能够自己创建应用程序。
- 1990年:快速应用程序开发
作为对瀑布模型的响应,当使用Visual Basic、Delphi和Oracle Forms等可视化编程工具“组装”桌面应用程序的概念开始流行时,我们看到快速应用程序开发(RAD)在20世纪90年代获得良好的发展势头。
- 2001年:模型驱动架构
为了减少部门和开发之间的距离,对象管理组织(OMG,Object Management Group)在2001年推出了模型驱动架构(MDA)。作为一种软件设计方法,它提供了一组指导方针,用于将规范构建和表示为模型。
- 2007年:移动平台
随着苹果在2007年发布iPhone iOS进入移动设备市场,以及一年后谷歌的Android问世,各种移动平台应运而生。开发者积极使用Android Studio和Xcode等可视化编辑器在本地开发Android和iOS应用。
- 2014年:低代码与低代码开发平台
2014年,弗雷斯特集团(Forrester)发表了一篇文章,此后“低代码”(low-code)一词成为显学。
至此,”低代码”开始以固定概念在中国IT行业延展。
国外主流低代码平台上线时间:
- 2015年,微软、谷歌低代码上线;
- 2018年,西门子收购Mendix,OutSystems获得融资,低代码在海外走红。
国内主流低代码平台上线时间:
- 2015年4月,简道云低代码平台上线;
- 2018年,明道云低代码平台上线;
- 2019年,阿里巴巴宜搭低代码平台上线。
- 2021钉钉6.0发布会再次引燃低代码市场。
低代码是什么
低代码指的就是用少量代码能够快速完成的交付的软件开发方式。
和低代码相关联的概念就是零代码和纯代码。顾名思义,零代码就是根本就不用写代码,通过配置化、可视化的拖拉拽方式就能够生产的工具或者服务。纯代码就是必须要依靠大量的专业开发来写代码能完成软件服务。
我们通过一些客户端软件工具或者WEB工具直接通过搭建或者拖拽产生的功能就是零代码服务,不需要写任何的代码。
我们常见的线上问卷系统就可以通过拖拉编排表单的方式生成问卷,无需任何代码就能生产出一个可被分发的问卷。纯代码的用例就特别多了,我们广泛指的通过写代码实现的功能都可以称之为存代码,比如说用前端语言写出来的小程序、网页,用JAVA或者PYTHON写出来的后端程序等等。
那么低代码就是属于零代码和成代码之间的一种模式。即通过少量的代码和可视化拖拉拽的能力,就能生成全部的业务逻辑并生成可运行的软件服务。比如现在比较流行的市面上的一些低代码平台,诸如宜搭和简道云等工具,就把自己定义为”低代码平台”。
其实早在04年的时候就有C端产品的零代码功能、低代码的系统。我记得那个时候新浪和中华网就提供了个人主页的服务,可以通过简单的拖拽和一些简单的HTML的代码就能够实现个人网页的定制,比如可以替换一些图片、拖拽一些容器表格等。这个应该算得上是最早期用户能感知的低代码的系统。
其实广义上的概念低代码、零代码和纯代码。适用于任何涉及的软件系统的地方。但是我们普通人,终端消费者一般关注直接能上手使用产品即可。很少有动力,也没有意愿去做代码配置相关的事情。像个人主页都是上个时代的产物,潮流过了,当有更好的工具和产品时,再也不会有人愿意去使用了。
从目前的实际落地应用来看,不管是低代码还是零代码,都是针对特定的场景或流程的,比如运营的活动页、表单、数据等。因为这种场景对于前端和逻辑来说都是相对收敛的,才可能抽象出通用的前端组件物料和后端的逻辑。从而可以通过可视化和流程编排实现软件功能的交付,一旦扩散到全场景,就变成了纯代码的空间了。
低代码的核心
狭义上来说,低代码有三个基础能力必须要要具备,才能称得上是企业级低代码工具平台。
纵观Forrester和Gartner低代码测评领导者角色的平台,如Outsystems、Mendix、Appian和Kony等国外知名公司对自己产品的定义,低代码开发平台必须具备的核心要素 “3+1” :
3个能力:可视化(拖拽式) 、MADP(移动优先) 、aPaaS(云上开发环境) 。
1个必须:有配套的生态(成熟的开发者、和其他云或企业内部系统连接的能力) 。
当然也有另外的视角,比如outsystems给出的低代码的核心要素:
即低代码平台的构成为:一个可视化的IDE+后端服务的连接器+应用生命周期管理。
当然,很多人还会谈到类似于“模型驱动”“表单驱动”“中台能力”“持续集成”等等众多概念,这些都是可能涵盖的因素,而不是非必要因素。
企业级中后台低代码
我们一般提到的低代码平台更适用于企业级服务。也只有通过良好商业设计,才有可能促进低代码的真正发展繁荣。
首先大量的对客业务,由于业务复杂、需要迭代快、需要极好的体验,基本上无法通过低代码来实现企业的对客的产品的交付,低代码平台能力所限,做不到这种支持快速迭代的能力,交互体验上也完全无法让客户接受,就算做到了也很难维护和扩展。
目前业界达成一致的对低代码工具的适用范围就是中后台业务。即将低代码平台用于企业中后台业务的搭建和提效,比如搭建企业内部的审批流、业务流、门户、管理后台、数据看板等。这些中后台业务对交互、视觉、体验要求都比较低,大多都是可以抽象高度相同的组件和流程,并且只要能顺利完成功能就可以接受。
在技术侧也能抽象出前端的基础表单、数据组件,后端可以抽象出固定的BPM流程,随着前端引擎技术的完善,也为低代码在落地提供了能力支撑。
面向业务人员的低代码
低代码配置人员专职招聘
举个例子,假如以前一个传统企业,它需要搭建一套企业内部个性化的审批流。那么他有三个做法,第一个方式是招聘研发团队,第二个方式是把服务或者工具外包给其他服务商,第三个是购买成熟的软件服务。
那么分别会存在以下的一些问题:
- 购买软件服务价格一般特别贵,并且不一定能满足自己个性化需求。
- 招聘研发团队成本又极高,一名前端研发就至少需要一万块,再加个后端一万块,一个产品经理一万块,就至少3万/月起步。并且大量的传统企业,也未必要需要持续管理这么大的一个研发团队。
- 如果把整个项目外包,费用用极其的贵,企业级一套系统的定制,不管功能多小,大概率是万元起步。
那么有没有办法通过一个成本比较低,又能快速的制制出企业所需要的一些通用简单的it服务呢?
那么这里就需要提到低代码平台。
即存在一些软件厂商他不再提供具体的某一个固定服务,而是提供一种通用的平台能力。企业可以购买这种平台能力用于搭建生产企业自身业务经营所需要的服务。
就如同AI人工智能技术的出现一样,给社会带来大量的新职位,比如我之前听过我司就有专门的“人工智能训练师”这种神奇的岗位,低代码也是一样,大量企业开始招聘专门的低代码工程师,可以给大量的中低端技能工作者带来新的机会。
这就是数字化潮流下,普通人转型必须要思考的一个方式,如何快速适应现代化,每个时代都给普通人留下了机会。
面向研发人员的低代码
记得有人说过,前端永远是稀缺的。相对后端庞大体量来说,不管在什么公司,前端的资源永远是紧缺的。
因此IT行业就一直有个命题,要如何协调均衡后端的能力,解决前端稀缺的问题。众所周知,大量的中后台业务起着支撑企业核心业务、提高内部生产效率的作用,但是大量的复杂的中后台场景无法直接让所有业务人员搭建出来,因此较为复杂一些的系统还是依赖研发同学来搭建。
因此,低代码在研发人员流程和系统搭建,起着重要作用。对于企业主来说,只要招聘少量的后端,就可以完成大量本来需要前端的工作,同时通过搭建平台的提效,可以减少对于程序员数量的依赖。
对于研发人员来说,用低代码工具搭建出平台,弥补了前端不足的缺陷,同时一个研发就可以完成搭建+低代码开发的完整流程,同时通过低代码平台内置的版本控制、发布、部署、上下线和数据看板能力,省去了一大堆纯代码开发所需要的发布、上线、运维成本。
低代码实现
低代码平台网上已经有很多比较成熟的系统。思想基本上都比较一致,就是采用搭建的方式来生成应用。这里面就不得不得要提一下乐高。乐高基本上是开创了玩具组装的先河,我们可以看到通过乐高,已经可以搭建出很多很多样的一些模型,甚至有些能运转的各种系统,比如说能搭建出会跑的车,能搭建出轮船,火车,汽车等等。甚至还可以搭建出能直接飞行的飞机。而乐高本身只提供一些基础的原件,比如说发动机、塑料的元件等等。
乐高抽象了一套非常基本的元素,这些元素能够通过一系列的规则搭建出各式各样的玩具应用,甚至有些还及其复杂。同理,低代码平台也是沉淀和抽象出各种基本通用的元素,比如说表单,输入框,按钮,文本,图片上传等基本能力。用户可以通过编排生成对应的页面,然后配置相关的流程流转节点,并且和系统的通讯录和已有系统接口API打通。然后流程化的运转就能够实现客户的业务流程。
从目前来看,低代码的核心实现方式是页面+流程+开放网关。页面用来承担业务的数据,流程用来抽象业务逻辑,开放API则用来和外部系统进行集成和交互。
由于前端渲染引擎技术的进步,基本上通过拖拽的方式就可以生成接近定制化页面的效果。但是对于流程的编排则相对来说比较困难。不同企业或者不同的业务操作流程千变万化,低代码平台无法覆盖每一个行业上面的流程。目前也只能做到最通用流程的控制。比如最基本的自动流,人工流和外部流等等。对于异常情况处理也往往不符合预期。我对于已有的系统,系统上来说比较困难的一点就是系统的异构,导致无法统一的用网关API对接,这个也是非常难的一个点。大量企业采购或者外包或者资金的系统,一般往往无法和低代码平台的API直接实现对接。
就笔者而言,低代码平台完全没办法用于对客户的生产,一般是用于对内部运营的工具上面。比如说搭建一些审批通过后自动线上任务的配置后台。或者搭建一些数据库的配置界面。
低代码的争议
现在对于低代码平台的争议也非常多,一方意见就是想通过低代码平台能实现组织或者业务大部分的需求。但是另外一方的想法是认为低代码功能非常局限,只能满足于一些特定较小场景里面的需求,完全没办法做到通用化。而且,在一定程度上,传达出替代程序员的意思,进而给程序员行业引入一个灾难,即:程序员已经不值钱了。
以上是笔者在脉脉上的一个讨论话题的评论,总体上大家是不看好低代码对于研发人员的提效上,有点鸡肋,食之无味,弃之可惜的体感。
业界比较知名的一篇文章,痛批低代码,《“行业毒瘤”低代码》,用词比较激烈,大家可以阅读一下,概括一下意思,就是认为想通过低代码取代程序员不是一个特别不切实际的想法,至少短期来看。
实际上目前从这些低代码平台提供的能力来看,最通用的就是搭建表单,审批流和报表。同时对于较大较复杂的业务都没办法很好的支撑,而且过于复杂的情况下,代码量并不低,同时还可能造成平台本身自身的代码难以维护,也会陷入到跟自研系统一样的代码逻辑膨胀问题。
低代码的未来
关于对于未来的计划,我还是非常乐观的。首先我们中国的人力成本会越来越贵,那么就导致了外包和定制开发也越来越贵。因此会有着越来越多的企业会使用第一代码的方式来提高效率降低成本。
同时随着it信息行业发展,云计算的普及、前端脚本组建框架越来越容易和视觉体验好。也会发生着不断的技术革命,降低页面组件生成的成本,更多的大厂和开发者会进入低代码领域。
但是传统的低代码平台应用相对来说比较狭窄,没有结合业务具体场景,虽然做到了极度通用,但也导致了不能很好的适应各式各样的业务定制。像美国的地代码比较知名的就是sales force。他们的地代码继承在平台上能够更很好的和业务结合,能够创建业务模型并且能跟系统的各个子流程打通,能够充分的对业务的定制和扩展。真正实现了提高企业的效率,解决了企业的问题。因此长期看来,低代码和bpass深度结合,可能才是真正的主流。
因此未来面向提效赋能业务人员的低代码和无代码,会继续发展,包括各种APaaS、BPaaS和DPaaS等,毕竟企业提效是强诉求,低代码一定程度上在降低应用交付的门槛,对于企业内部业务人员、服务商部署来说都是有着显著的收益,但是很难出现一个所有行业通用的低代码平台;
但是面向开发人员的低代码,短期来看,依然是辅助工具,而远远达不到替代程序员的目的。
更多原创内容,关注公众号:ali老蒋