如何选择“低代码”、“无代码”和“图形化编程语言”?(低代码设计)
低代码的定义就不再这里掰扯了,就按照最有名的三家海外的巨头来:Mendix、Outsystems、PowerApps(Power platforms)。这三家应该很具有代表性了,应该也是低代码平台里面做的最好的(应该不会有太多人有异议)。
通过分析这三个平台得出:
低代码平台的最核心特征
A 不直接生成可以部署的代码(一般是某种打包格式)
其中,Mendix生成 .mpk 文件,应该是一种Java的打包格式,也有部分JS代码;
Outsystems生成 .osp 文件,应该整体上和Mendix类似的方案;
PowerApps生成 .msapp 文件。
也就是说,比较“杰出”的低代码平台,是可以导出文件,并部署在自身“系统”内部的,但是无法部署在“非自身定制系统”。也就是说,低代码平台直接“互不兼容”,低代码平台生标准的代码运行环境也是“互不兼容”(例如不能直接在Java环境运行)。
B 面向模型编程
低代码平台,设计时主要是针对企业内部管理场景服务的(设计初衷)。在我看来,低代码平台,不能算是一种“新技术”,而是一种为“企业服务定制的产品”,这一点和SaaS有点像。因此,免不了会有一些局限性,无论是功能和性能上都很难和编写代码的系统相比并论。但是,在一些固定场景下,低代码平台效率会很高。
几乎所有低代码平台都可以涵盖在这其中基本模型中:
BPM模型
表单模型
在线表格模型
BI报表画图模型
在这个基础上,有一些进一步做了“页面编辑器”“数据库设计器”等等,这些就算做的很好的了。
如果再进一步的,会做“逻辑设计器(或者叫逻辑编排工具)”,Mendix和Outsystems在这方面都做得很不错。
C 面向最终用户收费
这是一个商业模式的特征,但是由于产品是“运行时”的配置产品,也就导致了这种“收费方式”。这一点和“图形化编程语言”按开发者license进行收费有很大不同。
无代码就是“SaaS”
在我的理解里面,所谓无代码就是SaaS,两者没有什么区别!最多无代码平台把多个SaaS集成起来,具有一定的“互操作性”而已。多数情况下,无代码产品更希望“在线使用”,而不是“本地部署”,这样更符合SaaS的特征(但国内已经卷得面目全非了)。
图形化编程语言的基本特征
图形化编程语言:这个是新兴起的技术方向(同时也具备很强的产品属性),其实很多产品早就开始尝试,其实没有引起足够的重视。在一些领域“图形化编程语言”占领着绝对的统治地位,最明显的就是“Scratch”,儿童/青少年编程,这个一说,应该很多人就知道了。但是,作为“通用”编程语言而存在,能够实现各种企业/工业和个人应用的开发场景,这是一个非常大的挑战。
但是,国内已经有两家企业做得很不错了,一家是iVX,另外一家是CodeWave。(我在这里就不做更多比较,因为我觉得往这个方向发展的,都很了不起!海外还没有怎么看到可以商用的产品。)
图形化编程语言的基本特征:
A 直接生成全栈代码
作为一种新型编程语言,必须可以往前兼容,也就是最好能够自动生成“高级语言”,以iVX为例,前端可以生成Vue/React/flutter/小程序等,后台可以生成Java/Node.js代码,代码可读/可改,且全栈代码可以直接编译运行。这意味着,开发者对“图形化编程语言”可以做到完全无依赖,可以随时解绑。
B 面向组件编程
要想去掉代码,比较可行的方式就是“面向组件”编程,并且把“逻辑控制”部分抽象出来。
例如iVX组件层可以抽象成这样,其中包括“变量”和各种类型的组件,可以说“一切皆组件”!Scratch其实也是类似的方式:
但是,Scratch由于是给小朋友理解“文本编程Coding”这种模式的,因此并没有做进一步的“优化”,而iVX则进一步把“逻辑的控制结构”也给抽象出来,这样更方便用户使用和编程。
C 免费的(如果要收也不会面向最终用户收费)
iVX和Scratch都是免费的图像化编程语言,iVX更适合企业和程序员学习,而Scratch是针对小朋友学习和使用的,CodeWave好像现在是收费的。
但是,由于“编程语言”本身是面向“开发者设计”,而非“面向企业设计”,因此,最多就是和Ideal J一样收IDE的license费用,不太可能收最终用户的费用(因为原则上完全不知到最终有多少用户,运行时应该是“未知”的)。
如何选择呢?
从企业安全考虑,我觉得 企业应该尽量避免使用“低代码”平台,理由如下(欢迎大家指正):
低代码和SaaS平台用完即走不同,低代码平台需要企业长时间的“投入和迭代”,往“低代码平台注入知识”,这样使用过程中会“越来越重”,以至于无法剥离。对于被选择低代码厂商来说“也许是个好消息”,对企业也不傻,很少愿意“被锁定”在某一个平台。
从快速开发考虑,是可以少量使用“低代码”和“无代码SaaS”平台的,特别是“SaaS”平台,用完即走的特性,肯定对企业会更加友好。
如果从技术升级,中台建设(我个人其实还是挺中台的,只是中台要求较高,如果用图形化编程可以试一下,成本会降低很多),降本增效来讲,“图形化编程语言”应该是不错的选择,效率上相比代码提升明显,能力边界和代码开发非常接近。