目录
iVX和其它低代码的平台的区别
前言
这个图非常认真地对整个“低代码”领域做了严格的分类,这个里面并没有把只针对工作流或单纯BI的工具产品划分进去,主要是这一类,在我个人理解里面更像“SaaS++”,也就是增强版SaaS产品,这类产品也主要是给业务人员使用的。
严格意义上讲,低代码可以分为 “通用代码生成型” 和 “企业内部应用开发框架型” ,这两个名字虽然复杂,但是基本概括比较到位。
“通用代码生成型” ,主要就是涵盖”前端/后台/数据库代码生成“,做得比较好的,前后端数据库都做了,做得比较专的,可能只专注其中一部分,我上面表里面的多数是国外的公司,主要是做“通用代码生成”的国内公司确实比较少。
这类产品特点:往往不止是2B,还可以2C,价格和模式上也更加自由,有些甚至免费。
要做通用的编程产品,哪怕只是做前端都是非常困难的,涉及到几乎所有技术,从最底层编译器到最上层框架语言都需要。所以,往往这方面的产品现阶段还需要大量代码,国外的老外产品也不例外,另外功能和性能(运行效率上)也往往打了很多折扣,还有一些由于研发年头久,还采用一些很老旧的框架。
“企业内部应用开发框架型” ,这个就是国内大部分公司专注的类型了,这种类型通常提供了一些“应用引擎”以及“模型”,企业内的开发者使用这些提供的资源开发“框架内”的应用。然后在设定“环境内”运行。
这类产品特点也很明显:好处就是提供了一些方便的配置和接口,一些最基础的能力已经具备;但是缺点也很明显,东西只能在自家环境下跑,就算做得最出色的两家“mendix”和“outsystems”导出的文件“mpk和osp”也只能在自己环境下导入导出,PowerApps则只能在Azure下运行,APEX只能在Oracle下跑。所以造成了“技术框架”、“运行环境”等多处锁定。
剩下就是今天要说的 iVX 了,这个比较特别,它可以作为第三类“低代码/无代码”平台:
它将代码生成做到了极致,代码生成率大于95%,大家注意,不是那种功能堆叠,是很高效的IDE操作自动生成代码,平均一次有效操作生成500行以上代码;而且平台上有很多大型应用的实例,含多家上市公司核心平台 shop.ivx.cn ;不锁定,前端生成的代码可以直接在VUE/react中使用,后台可以直接导出Java和Node代码。开发者甚至可以完全抛弃iVX平台直接二次开发。(当然还是建议接着用,效率高)
那结论就很明确了吧~如果大家用过,或者去调研一下 doc.ivx.cn ,会发现“其它都是其它”。
下面我们来了解一下这个与众不同的代码/无代码”平台——iVX,最后为大家分析一下它的不同体现在哪里:
一、iVX——首个通用无代码开发平台
iVX对其定义是 “通用无代码开发平台”。这与该平台的目标是相一致的:一个浏览器端的IDE(整合开发环境);尽可能无代码并能支持全场景应用的开发;尽可能一次开发支持多套系统运营;并且对云和应用导出部署有良好的支持。
1️⃣通用
几乎适合所有的应用开发场景和支持在所有操作系统中运行。
- 支持的操作系统:浏览器WebApp、Android/iOS、小程序、小游戏、钉钉、Win/Mac/Linux、也支持最新的国产鸿蒙。
- 支持的开发场景:支持中大型复杂应用(基于无代码的逻辑编排引擎),电商、大数据应用、表单、工作流、Bi、任务流、OA系统、工业物联网、游戏、网站、视频应用、IM等等。
但其实也是有一些限制条件的:
- 一般不建议用iVX来直接实现大型算法(建议封装之后在iVX内部调用);
- 不支持操作系统级软件的开发,例如杀毒软件(iVX主体是基于Web开发环境);
- 大型3D的MMORPG多人在线游戏开发(一般采用专业游戏开发引擎制作)。
2️⃣无代码
iVX提供了“原子级”组件系统,支持用户“自定义组件”,并且配合图灵完备的“逻辑编辑引擎/面板”,就可以实现几乎所有应用的前后台“无代码”开发。
3️⃣开发平台(应用可移植特性)
iVX所开发的应用,都可以脱离iVX独立部署。也就是说,对于开发者而言,iVX就是一个“代码生成器”。和手写代码无差别,可以脱离iVX平台任意部署,而大多数其它“低代码”平台不具备这种“开发平台”属性,只能在平台内部使用。
4️⃣首个
我们还未发现国内外有类似的平台出现,现阶段做的最好的Mendix/ Outsystems等也只能称做“低代码”开发平台(还做不到“复杂逻辑的无代码表达”);而国内很多产品,由于不具备生成可导出部署独立应用的能力,还不能算作“开发平台”。
二、iVX的三大属性和两大能力
1️⃣iVX的语言属性
语言属性:iVX几乎就是一款“可视化的编程语言”,并通过“原子组件”+“逻辑编排”,生成中间代码,中间代码最终被iVX编译器,编译成“前端JS代码”和“后台代码”。现阶段,后台代码只支持JavaScript(Node或Deno中运行),后期会支持生成Java、Python、C#等代码。同时,iVX也具备编程语言的开放性,虽然iVX可以实现“无代码编程”,但是为了广大现有程序员的需要,iVX支持“嵌入自定义函数”“自定义SQL代码”“自定义CSS代码”等代码插入功能。
另外,这种语言还是“前后一体”,以及全中文的。“前后一体”的语言设计使得程序员在学习iVX后,具有更大的使用维度,不会再收到前后台开发语言不一致的限制,过渡也更加容易。而“全中文”则代表大部分文档和资料都会以“中文”形式存在,为“英文不太好”的广大中国开发者提供了更多的可能和更快速的学习环境。
2️⃣iVX的云属性(云原生)
云属性:iVX实现了“应用程序”和“运行资源”的分离;也就是iVX只帮用户生成可高效运行的程序代码,而将程序所需的后台资源(各种DB、函数计算、对象存储、CDN等)和程序本身分离,也就是说如果iVX生成程序放到AWS云上,那就使用AWS的资源,各种并发和计算能力依赖于AWS的能力,同理,如果放到阿里云上,则依赖阿里云自身的能力,当然用户也可以放在自己的机房中进行独立部署,这个时候后端并发能力,则依赖于用户自身的机房设备环境。
3️⃣iVX的工具属性
工具属性:iVX自带IDE(整合开发环境),开发这登录网页之后,直接进行项目的“开发”、“调试”、“发布”、“测试”、“运维”、“二次开发”等操作,也就是说直接在一个页面完成“应用的全生命周期”管理,最大限度缩短开发和运维流程,从产品上实现“DevOps”。并且,直接生成可导出的前后台代码,开发者不用担心会被平台绑定。
并且整个开发过程,也仅在一个界面中完成。包括:“应用开发”>>>“应用调试”>>>“应用发布”>>>“二次开发(运维)”。
4️⃣代码生成能力
对于一些写惯了代码的程序员来说,可以直接就把iVX作为一款“代码生成器”。无论是前端还是后台代码,iVX都可以编译后快速生成。过程中,iVX会先生成AST抽象语法树,然后再根据AST生成对应的代码。如果是其它应用(例如微信小程序),会编译成对应的微信小程序原生代码。
注意,虽然iVX可以导出类似Javascript这样的代码,但是非常不建议开发者直接去修改这个代码本身,因为一旦修改之后,就再也无法导入到iVX的IDE系统进行二次开发了。
5️⃣“图灵完备”的逻辑能力
iVX形成了一套“自洽”且“图灵完备”的逻辑系统,并且在前后台的逻辑处理中都复用了这套逻辑系统。这是一种基于“触发式”的面板系统,并且可以线性扩展,相比Mendix的基于“流程图”的逻辑编排系统会有一定优势。
优势主要表现在“对于分支逻辑的完备表达和可读性冲突的问题的解决上”。
对于复杂的逻辑,首先就具有分支复杂度的不可预测性,因此,就可能造成如上图这样的情况,而“复杂度的不可预测”和“逻辑可读性”之间本身就存在冲突,而这种冲突通过“流程图的方式”很难得到解决。实际上,这也是为什么Mendix/Outsystems称作“低代码”开发平台的原因,因为复杂的业务逻辑,通常还是需要通过代码来解决。
三、iVX相比传统编程方式有哪些优势
首先,我想申明的是“iVX和国内的低代码平台其实关系不大”!
iVX确实是“无代码”,可以说iVX是一个平台,但iVX的核心特征还是“语言属性”以及“云原生”属性。因此iVX是编程本身方式上的创新,是程序员对编程自身的革命!
为了大家方便理解,我把iVX相对于传统编程方式的优势概括为以下“四快”:
1️⃣快速学习
iVX可以把编程的学习周期从几年缩短到两三个月!如果是程序员背景学习iVX可能周期会更短,一两周就可以快速切换上手。以上数据是根据平台真实培训结果得出的平均数据,甚至有一些设计师、文科专业毕业生也可以快速学习和掌握iVX开发。
逻辑上其实很简单,因为iVX没有任何语法需要学习,图形化的操作使整个开发步骤也大大简化,因此iVX学习者只需要从逻辑和具体功能(或架构)入手,就可以完成开发。
2️⃣快速开发
根据用户熟练程度和使用规模,iVX可以数倍提升开发效率,往往以前10个人干3个月的工作,使用iVX后,现在3个人不到一个月就能完成。
3️⃣快速运行
这一点得益于iVX的核心CORE部分,包括编译和语法生成翻译,以及内部各种核心算法,都是真正的“大神级程序员”实现的(不方便透露其名字)。因此,开发者使用iVX开发的时候,就相当于获得了这位“大神”的加持,因此生成的代码质量也能得到保障。
4️⃣快速维护
iVX本身的结构化和本身极简的开发流程,保证了尽可能低的“系统维护”和“二次开发”成本。
前端部分所见即所得,即选即改;加上清晰的“可视化”日志系统,结构化的“动作组”“小模块”,使得整个应用可读性很强,逻辑梳理较为容易。
四、iVX能开发哪些应用
iVX是一款高速发展的无代码可视化编程语言,现在已经可以完整覆盖几乎所有操作系统应用的开发,包括:
- WebApp(通过Web浏览器封装,可以支持各种小程序,Android/iOS App,Win/Mac/Linux App)
- 原生微信小程序(iVX专门针对微信小程序,单独制作所有相关组件)
- 原生微信小游戏(iVX专门针对微信小游戏,单独制作所有相关组件)
通过iVX工作台,进入开发的IDE界面,如下图所示:
每一种类型的应用的基本开发模式是一致的,但有着不同的组件集与基本配置设定。因此,应用一旦创建后,就不能改变应用类型,我们需要在开发之前,决定需要创建的应用类型。
1️⃣webApp/小程序/原生应用
此类型的应用,以下简称为“web App”, 本质即网页应用,可以发布为纯的网页应用(即html5网页),或通过ivx平台提供的打包服务,打包为各种小程序(目前支持微信、支付宝、钉钉)以及原生应用(ios、android以及windows/mac)。无论是小程序,还是原生应用,ivx平台的打包服务都是通过webview(浏览器嵌入)的方法,将我们制作的页面嵌入至其他应用中。同时,ivx提供了各种系统接口层,可以让我们在应用中调用小程序或原生应用提供的接口,比如,地理位置,设备接口,文件接口等等。
在创建web App时,我们可以选择相对定位的舞台或绝对定位的舞台:
其中,相对定位的舞台,舞台和页面默认为相对定位环境,即流式布局;绝对定位的舞台,舞台和页面默认为绝对定位环境,即由用户手动指定每个对象的位置。如果您熟悉iH5平台,则可以选择绝对定位环境,其体验和iH5平台完全一致。
无论是绝对定位还是相对定位的舞台,默认创建时,窗口大小都为 375*667, 即手机窗口大小。我们可以通过工具栏右上角的窗口大小切换按钮,来将项目调整为PC或pad大小,来制作相应场景的应用:
2️⃣微信小游戏
微信小游戏是小程序平台新推出的一种小程序的特别类型。(在申请小程序时,需要将类型申请为游戏类,方可上传小游戏)
小游戏可以选择2D或3D类型,2D类型的小游戏,其内部是一个纯画布环境,3D类型的小游戏,其内部是一个3D世界。由于微信小游戏的小游戏根必须指定一种环境类型,因此我们只能创建纯2D或纯3D的小游戏,无法嵌套。
小游戏除了可以上传至微信平台,也可以直接发布为网页应用,在浏览器中打开与传播:
3️⃣微信小程序(原生组件)
微信小程序(原生组件),是一种特有的微信小程序类型。其中组件使用了小程序提供的原生组件,以及在此基础上扩展的组件。此种类型的小程序和第一种web App版本的小程序各有优势,我们可以根据自己的需求来选择需要制作的小程序类型。两种微信小程序的区别,我们将在下一节中详细展开。
原生组件的微信小程序,和微信小游戏类似,也可以直接上传至小程序平台,或直接发布为网页应用(H5):
当前,由于新版(v41版本)ivx编辑器的升级版数据逻辑处理机制和此类型微信小程序暂时不兼容,因此,此类型的小程序,依旧将使用旧版(v40)版ivx编辑器。待新版做了兼容后,将再行替换。
iVX的覆盖面如此之广,感兴趣的小伙伴快来试试吧:www.ivx.cn
五、iVX和其它低代码的区别
iVX,作为一种编译型低代码平台,目标为解决通⽤问题;而接⼝型低代码平台(others)目标为解决领域内问题,它们之间主要区别如下:
1️⃣产品的思路不同
编译型(iVX)解决通⽤问题;接⼝型(others)解决领域内问题。
编译型产品iVX会更加底层 iVX也可以开发类似Bi引擎、⼯作流、表单类产品,⽹站上可以找到(如下):
这个通过iVX开发的Bi引擎还可以⾃定义echart组件 。
2️⃣⽤户不同
iVX⽤户就是程序员或者统称为开发者(⾮业务⼈员);接⼝型的⽤户就是“业务⼈员”,满⾜不了,再给程序员开发 。
简单说就是:接⼝型,提供的就是⼀款可以接着开发的SaaS产品或平台;⽽编译型,则是⼀个完整的开发体系。
3️⃣学习价值不同
iVX是⼀种新的编程语⾔,学习价值较⾼;接⼝型产品,只能在该产
品框架内组装,⽽且同类型产品众多。
4️⃣应⽤范围不同
编译型能够开发更⼴领域;接⼝型,主要⽤于开发“企业内部流程管理系
统”。
5️⃣有⽆框架限制
编译型可以和任何系统和框架对接,也包括接⼝型地代码产品;接⼝型,
只能在⾃家产品框架下进⾏扩展,和别家不兼容。
接⼝型低代码框架是排他的,只能在框架内部扩展。
总体⽽⾔,当然,如果是业务同学,接⼝类就可以直接使⽤,会⽐较⽅便;如果是开发同学,我还是建议学习第⼀类“编译型”产品,价值更⼤⼀些。两种做法⽆优劣,只是解决问题不同。
后记
iVX试图提供一个最短的应用最佳实践路径,而且采用最简单的方式,连代码过程都给省去了…
我们认为人类智慧中最可宝贵的是“逻辑能力和其迸射出的创造性”,这些能力在编程过程中都得以展现。iVX能够“保留程序逻辑,去掉程序语法”,这将会使得有更多的人掌握编程这项技能!