万字长文讲透低代码

简介: 万字长文讲透低代码


按规则这篇应该叫做“数字技术名词解释—低代码”,但之前的名词解释篇都是一两天草就,这篇磨蹭了半个多月,七七八八写了过万字,于是做一把标题党。


低代码这个概念今年极火,争议也极大。有些人力捧,觉得以后“人人都是程序员”,, 又有不少人嗤之以鼻,如有ERP老兵讥讽《低代码,不要以比“中台”还快的速度臭大街》,有ThoughtWorks中国某徐姓CTO怒斥《“行业毒瘤”低代码》,还有很多认为低代码是新瓶装旧酒,早已有之,或者无非就是个高级外包。可惜的是,无论支持还是鄙夷,各路专家写文都是“草就”,至今也没一篇三观正且详实的。阿朱的几篇三观是正,但行文也过于简明,可能懂的自然懂,不懂的还是不懂。


本文希望对这个当前动荡不安的领域做一点“不草就”的综合说明,想说清楚七大问题:低代码和无代码(也称零代码)是什么关系、怎么判断一个低代码平台是否专业、国内是否有专业的低代码平台、低代码是不是新瓶装旧酒、低代码真的搞不定专业的企业应用吗、低代码不适合开发哪些应用、低代码并非银弹。


鉴于这个领域现在实在太乱,希望大家能多转发一下,让更多的人正确理解低代码。



01

低代码和无代码是两回事



第一步得把低代码和无代码分清楚,因为这俩差异巨大,但现在业界经常混为一谈,导致很多很多问题,比如双方争论但指的不是同一个事情,厂商的口径乱,行业报告的结果不能看。


低代码专指低代码应用开发平台(LCAP),是一个被业界广泛认可的概念,头部的分析机构如Forrester和Gartner都已经发布了多年低代码开发平台的报告。如下图所示,大家可以看到这两家的报告入选的产品都很接近,特别是头部的六家简直是一模一样。这说明低代码应用开发平台已经是一个比较成熟的市场。


相反,分析机构对无代码的态度就很微妙了。虽然也有一些分析机构也提无代码开发平台的概念,如G2(当然更不用说目前混乱的国内分析机构),但Forrester和Gartner从未发布过无代码开发平台的报告。Forrester和Gartner倒也不是说无代码是个伪概念,他们的共识是无代码这个词只是一个营销用语,主要用来突出一个工具无需编程基础,消除业务用户的恐惧。


‘No-code’ is a marketing term, implying the tool is for non-professional developers. — By Gartner

(https://appian.com/resources/resource-center/analyst-reports/gartner-quick-answer-low-code-vs-no-code-dev-tools.html)


Businesspeople hankering to deliver their own apps love the “no-code” message. Thus, “no-code” has become a marker for products aimed at empowering business users. However, customers report that even powerful low-code platforms in some cases can’t produce apps without any coding. So what does this mean for the “no-code” promise? — By Forrester

(https://go.forrester.com/blogs/watch-your-language-low-code-and-no-code-are-not-the-same/)


无代码这个词通常用来形容一些细分领域的开发工具,最常见的是应用搭建平台(国外一般叫App Builder之类),如国外的Appy Pie、国内的宜搭、简道云等,还可以用来形容Airtable / AppSheet / Treelab这类在线表单工具或轻流这类的工作流工具。这几类工具差别巨大,如下图所示,还有人将无代码和低代码的江湖分成十二个“门派”,由此可见无代码是一个相当宽泛的概念


image.png


无代码的“通用”开发平台,目前看并不存在,据我看将来也不会存在。因为开发软件必然要编写逻辑,就必然要写代码,除非哪一天人工智能能做到自动写代码。


我觉得低代码和无代码的关系有点类似于关系数据库和NoSQL。关系数据库专指一种特定的数据库,即便多家厂商的产品实现可能千差万别,但至少提供的功能很相似,都高度遵循SQL标准。低代码开发平台虽然今天的标准化程度还没关系数据库这么高,但无论是Gartner还是Forrester都已经开始给出比较清晰的筛选标准,如要支持通用场景(如UI、逻辑和数据三层都要有)、要满足专业开发需求等,随着行业发展标准化程度肯定会进一步提高。NoSQL则只要不是SQL都算,不管你是KV、wide-column、文档还是图,都可以叫NoSQL。NoSQL这个词热了有几年,但现在不太讲了,因为市场格局开始清晰之后,大家就不会关注过于宽泛的NoSQL,而是根据需要关注具体的类型。我个人认为无代码这个词将来也一样会慢慢淡出,虽然现在十二个门派很是热闹,但不出几年真正有影响力的门派肯定也不多,这时大家也就不关注无代码而是直接找具体的产品了。


本文后续只专注讨论面向通用应用开发的低代码。低代码不是一个想吸引业务用户的用语,业务人员见了“代码”两个字就吓跑了,再低也没用,如果业务人员写不了100行代码的话,那10行也一样写不了。低代码平台主要面向专业开发,这点已经是头部分析机构的共识,虽然Forrester之前走过弯路,曾经也发布过面向业务人员的低代码开发平台报告,但近两年已经不再发布了,只保留面向专业开发者的低代码报告。用户数据也说明这一点,21CTO在《低代码开发可不低,用户仍需要与IT技术部门联手》一文中提到据某统计“只有6%的低代码开发是由业务人员完成的”,OutSystems的数据是69%的用户是专业开发,宜创科技CEO宜博也曾说低代码面临“懂技术的看不上,懂业务的学不会”的尴尬。


所以无代码和低代码完全不同,无代码面向业务人员,低代码面向开发人员;无代码泛指多种开发细分领域应用的工具,低代码特指一种通用开发工具;无代码不被国际头部分析机构认可,低代码被广泛认可


现在国内很多行业专家和分析机构经常把两者混为一谈,这对技术的价值衡量、甲方的技术规划和选型都造成很大混乱,我迫切希望大家能够把低代码和无代码区分开,集中研究具备通用能力的低代码平台





02

专业的低代码长啥样




现在市场上鱼龙混杂号称“低代码”的产品很多,怎么才能快速区分是不是“专业”?很简单,找一个最专业的产品来对标


哪个产品才是最专业的?我们可以先看为什么低代码这两三年才热起来?不是因为Salesforce这样的SaaS厂商,也不是Appian这类BPMS厂商,这轮低代码热其实主要是因为OutSystems。OutSystems虽然也早在2001年就成立,但之前一直“猥琐发育”,2018年D融资了$3.6亿,才突然引爆市场。无论Forrester还是Gartner都把OutSystems列入领导者象限,阿朱说他最推崇的低代码平台就四个,OutSystems也是其中之一。所以,OutSystems就是专业低代码平台的代表


对比OutSystems和很多国内所谓的低代码平台,我找出了六项区分度最高的判断标准:模型驱动、可视化开发、表达式语言、软件工程、开放集成和脚本语言


(1)模型驱动

“模型驱动”可能是最明显的区分标志,因为刚好有一个也很流行的概念叫“表单驱动”。很多人搞不清楚这两个概念,但其实这两类产品挺好区分。


首先可以看用户手册,这样不用安装试用也能看出差别。使用模型驱动的平台比如OutSystems、Mendix的手册会有很大一章讲怎么做数据建模和处理,包括怎么定义实体、实体间关系、主键、唯一性、索引、数据怎么访问、筛选、分组、统计等等,还提供SQL或类似扩展。使用表单驱动的产品则往往手册第一章就是说明怎么定义各种表单,都是各种和界面相关的控件,比如单选多选下拉框、文本日期数字等。


其次可以看界面。下图是分别是模型驱动的OutSystems和某表单驱动产品的相关操作界面,大家看是不是很不一样。

(模型驱动,OutSystems)


image.png

(表单驱动)


(2)可视化开发

可视化开发不是拖拉拽做个界面(这只能叫可视化设计),而是有完整的可视化编程语言系统,能够编写业务处理逻辑。看OutSystems这类产品的文档,你会发现很多编程语言的基本构造都有,比如顺序 / 分支 / 循环 / continue / break、输入输出参数、局部变量 / 全局变量、struct和list、异常等。虽然这些东西都是拖拉拽完成,看上去没有密密麻麻的一行行代码来吓人,但也足以吓退业务人员。一下几张图都来自于OutSystems,大家可以感受一下。


image.png

(左:逻辑开发工具箱,注意有If、Switch、For Each流程控制;右:一个比较简单的逻辑)


image.png

(怎么抛出和处理异常)


(3)表达式语言

表达式语言有些类似Excel里的公式,有表达式语言才可以做一些比较复杂的计算。下图是OutSystems的表达式编辑器,大家可以看到有各种操作符,还有很多内置函数,比如数学函数、字符串处理函数等。


OutSystems这个例子看起来还比较简单,但表达式语言也可以很复杂。微软是搞语言的行家,下图是个微软Power Fx的例子,这个表达式是要提取一个句子最后一个单词的表达式,也挺复杂吧(说实话我看了好大一阵子才看懂)。


image.png


表达式语言也有更平易近人的设计,比如我们轻舟就是用类似Scratch的积木块设计。两种设计功能上是等价的,积木块设计更容易上手,Power Fx这样的设计写复杂表达式更方便。


(4)软件工程

专业的低代码平台需要提供测试、debug、版本控制等软件工程支持。开发软件都会出bug(低代码平台基本消除了语法层面的bug,但对语义层面的bug一样无能为力),需求也总是会变。所以测试、debug、版本控制这些支持也是必不可少的。OutSystems为什么做的最好,我觉得跟它完善的debug支持是分不开的。下图是OutSystems的debug界面,看起来和专业IDE有的一拼。

image.png


(5)开放集成

理论上,有了模型驱动等上述四大功能,开发一个不是太复杂的独立应用就够了,但典型的企业软件都是相互依赖和集成的,所以平台还需要具备能够调用外部API和开放API给别人的能力。平台如果没有这两方面的功能,开发出来的应用相互之间都没法连通和集成,全是技术债。我们看国外关于低代码的文章,经常会看到一个词叫Shadow IT,说的就是这个问题。大家都胡乱的开发各种应用,还都集成不起来,将是一场大灾难。


(6)脚本语言

脚本语言就是用JavaScripts、Python、Java等做扩展,这些其实就是正儿八经的专业编程语言了,但低代码平台会把工程复杂性都封装好,让开发者不需要配置部署环境,随手就可以写代码,写完一键发布马上可以运行。


其实上述标准和Gartner是很一致的。Gartner在魔力象限报告里说:

An LCAP is characterized by its use of model-driven or visual development paradigms supported by expression languages and possibly scripting…

里面模型驱动、可视化开发、表达式语言、脚本语言都提到了。


小结一下,判断是不是"专业”低代码,可以重点看模型驱动、可视化开发、表达式语言、软件工程、开放集成和脚本语言等六个方面





相关文章
|
6月前
|
搜索推荐 前端开发 程序员
低代码开发的优势与劣势,看这一篇就够了
低代码开发的优势与劣势,看这一篇就够了
|
10月前
|
人工智能 安全 搜索推荐
如果你在选型低代码平台,可以从这5个角度去分析抉择
如果你在选型低代码平台,可以从这5个角度去分析抉择
102 0
|
10月前
|
前端开发 数据可视化 程序员
低代码打翻前端的饭碗?探秘两者藕断丝连的关系
低代码打翻前端的饭碗?探秘两者藕断丝连的关系
|
10月前
|
运维 监控 前端开发
一文吃透前端低代码的 “神仙生活”
一文吃透前端低代码的 “神仙生活”
150 0
|
10月前
|
数据可视化 前端开发 搜索推荐
低代码平台名声臭,用起来却真香——90%重复工作给你完成喽
低代码平台名声臭,用起来却真香——90%重复工作给你完成喽
|
10月前
|
数据可视化 搜索推荐 程序员
给你们讲个笑话——低代码会取代程序员
给你们讲个笑话——低代码会取代程序员
|
供应链 数据可视化 算法
万字长文讲透低代码(1)
万字长文讲透低代码
|
数据可视化 数据挖掘 开发工具
低代码是什么意思
此前,阿里云智能总裁张建锋曾在钉钉发布会上表示:“未来的软件开发一定是碎片化的,低代码开发将成为未来几年的行业关键词。”这句话表明了低代码在过去两年的火爆程度,预示着低代码有望成为软件领域的新风口。
低代码是什么意思
|
前端开发 数据可视化 JavaScript
阿里低代码引擎怎么样,好不好用?
目前,市面上已经有了很多低代码产品,包含最早的 VB、FrontPage、Dreamweaver、Flex ,以及现在的云端的 Webflow、9466网页助手等,但是仍然没有一个产品能真正做到把可视化搭建当作主要的、最终的输出方式,就算有,最终也会落下一个“不会用、不够用”的名声,或者只能作为一个辅助、入门或教学级产品,难登大雅之堂。
|
运维 数据可视化 IDE
组装式应用思想具现的低代码平台
近几年低代码平台在在国内进入了高速发展的阶段,各种低代码平台如雨后春笋一般的涌现。低代码平台的出现让应用的实现变得容易。也让即使不懂编程代码的人能够制作程序应用。低代码平台归根究底还是组装式应用的实现。