“图形化编程语言”——低代码中产生的新物种!(图形化编程源码)

低代码的定义就不再这里掰扯了,就按照最有名的三家海外的巨头来:Mendix、Outsystems、PowerApps(Power platforms)。即使最大的企业也没有办法形成“行业标准和技术标准”,也就是说“低代码”的做法每家厂商都是不同的,如果没有办法实现技术上的统一,我觉得低代码本身这种“混乱”的野蛮方式必将走向衰落!

今天想说的是,一种全新的物种,应该也是技术发展的趋势——图形化编程语言。之所以叫“编程语言”,是因为其核心特征是“生成全栈代码”,生成代码一定是一个重要的分水岭,凡是重视研发安全的企业,不可能轻视代码。这里面最有代表性的产品是 iVX 和 CodeWave,所幸这两家都是国内的企业。

通过分析这三个平台得出:

低代码平台的最核心特征

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代码,代码可读/可改,且全栈代码可以直接编译运行。这意味着,开发者对“图形化编程语言”可以做到完全无依赖,可以随时解绑。在生成代码方面,由于CodeWave底层使用了开源的工作流产品以及封装了RBAC等权限,可能无法做到全栈代码的生成。iVX在这方面有一定优势,能够生成可编译的全栈代码。

B 面向组件编程

要想去掉代码,比较可行的方式就是“面向组件”编程,并且把“逻辑控制”部分抽象出来。

面向组件编程优势有很多,例如:沉淀复用技术方案,大幅提升开发效率;但我发现更重要的是,可以实现“代码隔离”!什么叫代码隔离呢?就是学习者可以完全不懂代码!只需要学习组件相关的知识就可以了,这是一个非常令不起的进步,大幅降低了“编程”领域的进入门槛。

C 需要一个“程序逻辑可视化方案”

如果不想写代码,那么通过图形化的方式表达“程序逻辑”这一步,应该是绕不过的。那么如何设计一个好的图形化“程序逻辑”表达方案,就非常重要。现在常规的表达方案,基本上都是基于流程图的方式,总体来说有以下缺点:浪费空间(信息密度不大)、画图操作慢/维护也并不容易(特别是存在大量交叉线的时候)、复杂逻辑难以表达(例如一些非线性的逻辑)、组件和图形融合困难的问题。

“图形化编程语言”——低代码中产生的新物种!(图形化编程源码)

传统的流程图方案/大量留白

为了避免上面这些问题,iVX创新了一种全新的更高效的图形化逻辑表达方案,体验下来相当惊艳。

“图形化编程语言”——低代码中产生的新物种!(图形化编程源码)

iVX逻辑面板方案/信息密度很高

面对未来技术的发展,国内一定要走出自己的特色,不能全部都照抄照搬国外的技术和产品,在这方面iVX和Code wave已经走在了前面。

除了提供强大了的图形化IDE和代码生成能力以外,还提供了“比较完整的企业级的CI/CD”运维环境,包括“用户中心”“权限/角色管理”“日志中心”“消息/微服务管理”“代码和版本管理”等,为开发和企业研发团队,提供了一种全新的开发方式。

最近AIGC非常非常火,但我通过研究发现,主要还是在媒体领域突破和实用价值巨大,例如生图、生文、生视频、生声音,以及这些媒体格式之间的转换。但是在“生代码”这种需要超强逻辑和准确性的事物上,我觉得AI还是有待提升的。也或许自然语言本身就不适合用来描述复杂的逻辑过程!(如果自然语言本身时候做复杂的逻辑表达,那就没有必要发明数学和编程语言了)

在我看来,相比不可控的“AI”生代码,图形化编程语言无论效率还是可控性/准确性上更佳实用,也更靠谱!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。