原创公众号:bigsai

前言

最近发现了一些新名词——0代码编程,和大家分享一下。并且这个和当前比较流行的前端框架React,谷歌的Go语言,Node这些最新技术关系很大,持续分享一下。

最近一些年互联网发展迅猛,应用从简单架构向复杂架构发展,架构变向复杂之后相应的环境、平台等管理就变得复杂,例如利用docker容器来管理环境。也在发展中诞生了很多新技术和简化代码的工具和平台例如Jeecj这种代码生成工具平台,各种脚手架平台简化代码量,但仍需编写代码。

在我以前的时候就想过会不会有一个工具之类能够开发网站和app,就像PS一样不懂图像处理技术但是通过操作依然可以达到良好的效果。刚好笔者最近接触到一个有趣的工具并自己试了一下,感觉非常有趣(iVX可自行百度一下)一个0代码生成的平台。虽然尚不知道它能否成为未来的趋势和热点,让一些不懂代码的人也能尝试开发属于他们的app,让一些懂代码的人能够简化他们的网站开发。

这是第一篇的介绍,主要还是先将iVX官方的一些介绍归纳总结一下,后续可能会跟一些系类。主要是源于新奇,0代码开发的平台和技术到底是怎么样的,通过近期的学习研究可以看一下,当然也欢迎有兴趣的一起研究下。当然对于这种平台可能会有同类产品,以后可能会对比分析一下。

理论基础

先介绍一下iVX的一些理论基础,有些名词我不是很熟,查阅了百科将他们翻译下来。

一、低代码开发平台(LCDP:Low-code development platform)

在维基百科中的的定义:A low-code development platform (LCDP) is software that provides an environment programmers use to create application software through graphical user interfaces and configuration instead of traditional computer programming.

可以看出低代码开发,首先提供的是一套软件,其次这个还是给程序员用的。只是可以节省程序员开发的时间,提升开发效率(类似一些脚手架,逆向工程生成部分代码)。

iVX提供是的“0代码开发语言”,因此概念上还是很LCDP不太相同。

低代码VS零代码,对比两者关系如下:
低代码产品做的是工具,优化程序开发的过程,降低开发时间成本。

  • 适用人群:现有程序员,对他们过度和学习非常友好
  • 适用公司和场景:大型公司最友好(Mendix和Outsystem也是这么做的),需要投入服务资源较多,适用公司BPM场景
  • 对现有体系影响:影响较小,公司现有研发资产过度容易
  • 解决问题:加快程序员开发速度,为公司降低开发成本
  • 收费方式:企业账号收费;按应用收费;按公司规模收费
  • 最终产品形态:IDE(云)
  • 生态:大B生态,B端生态

0代码语言,除了加速开发,还改变编程习惯,0代码工具本身就是新的开发语言。

  • 适用人群:想成为工程师的人+50%现有程序员(长期目标是90%现有程序员)
  • 适用公司和场景:大型公司BPM OA ERP业务+外包公司团队+中心创业公司,几乎所有应用开发场景,除了算法场景
  • 对现有体系影响:冲击较大,是对整个研发体系的变革
  • 解决问题:提供一种全新的开发手段和体系,降低开发门槛和节省开发成本(我们认为这是技术发展方向)
  • 收费方式:应用复杂度收费;企业账号收费;云端资源收费;C端培训收费
  • 最终产品形态:语言+IDE(云)
  • 生态:C端+B端生态

二、可视化编程语言(VPL:Visual Programming Language)

可视化编程语言(维基百科),这个理念和我们产品应该是最接近的。Wiki中重点提到了类似Scratch的可以拖拽的语法块,来生成目标语言程序这种方式;另外,还有类似Mendix或Outsystems的通过流程图的方式自动生成目标可执行语言的方法。以上两种均采用了面向过程的方法来进行设计整个逻辑过程。而iVX可以算是另外一类可视化编程语言,采用的是“事件触发”逻辑。

而iVX提供以下程序开发配套工具(挺完整的):

  • 多人开发
  • 版本管理
  • Debug功能
  • 细颗粒可组合的前后台组件库
  • 支持复杂逻辑的事件编辑面板

多种可视化编程语言在适应的领域上:

  • Scratch、Blockly只适合儿童编程,只能生成非常简单的应用;(WebApp,Flash)
  • Mendix等产品,只适合企业场景,特别是BPM、OA场景的应用开发;(应用类型:WebApp)
  • iVX可以支持众多场景的开发,企业场景、个人应用、游戏等都支持。(应用类型:WebApp 手机原生应用 桌面原生应用 小程序)

三、快速应用开发(Rapid application development)

在维基百科中的的定义,Rapid-application development (RAD), also called rapid-application building (RAB), is both a general term, used to refer to adaptive software development approaches, as well as the name for Terry Barraclough’s approach to rapid development.

可以看出,它是一种软件工程的理论方法和对应衍生产品,通常有IDE的界面和例如瀑布流、敏捷开发等模型。它和iVX研究方向有关系,但不是我们目前讨论的重点,不在这里详述。

四、领域语言(DSL:domain-specific language)

相关理论:DSL由软件大师Martin Fowler提出,我的理解是“设计一门特定范围的语言(开发领域),使其有更出色的表现”。
DSL 语义模型 ----> 编译器 ----> 系统识别语言 ----> 运行
| |
| |
| V
| 目标代码
V
中间代码

DSL实际上就是为了把语意表达和系统识别的语言解耦。但是在DSL理论中,认为只适合特定场景,我们认为这种模式思维会有一定局限性。例如iVX在语言设计的时候,希望是没有局限的,也就是适合任何应用开发场景。更加追求语言本身的通用性这一特点。

五、aPaaS,iPaaS(Cloud-based integration) & PaaS
这三个概念,就不在这里细说了,都是云计算领域的概念“平台即服务”的延伸,iVX符合这个定义。

六、无代码编程/可逆计算

参考这两篇知乎文章:
https://zhuanlan.zhihu.com/p/61288928
https://zhuanlan.zhihu.com/p/64004026

这两篇文章探讨了,0代码(无代码)编程的可行性,以及开发无代码编程产品体系所需要的相关技术和技术难点,并对比了和代码开发的各自优略。

但是,我觉得这两篇文章都是理论研究为主,漏掉了实际产品设计中非常苦难的问题,程序逻辑的0代码编辑解决方案。

七、第四代编程语言(4GL),第五代编程语言(5GL),下一代编程语言

第四代编程语言(4GL):

可以参考维基百科给出的定义。总结以下几个特点:1. 智能;2. 非过程化程度高;3. 面向问题,可用性高;4. 支持数据库管理开发。详见James Martin在其1981年的《没有程序员的应用程序开发》

第五代编程语言(5GL):

最主要提到的一点就是:面向问题的,非程序员也可以操控的编程语言(这个正是iVX追求的目标,而且已经基本实现)

由于研发难度较大,第五代编程语言,后期的研究就基本处于停止状态了。

八、AI编程

现在主要还是停留在前端阶段,无逻辑部分。主要实现方式,就是把简单的界面直接翻译成JS代码,可以识别按钮等简单界面控件。

这个以前学习JavaGUI插件拖动,还有一些安卓之类可能会设计到生成代码。iVX也涉及到代码自动生成,但是是前后台代码的自动生成,原理和技术实现上和通过视觉分析生成按钮控件有很大不同,就不在这里细说。

开发过程篇

一、组件的抽象

构造通用的应用需要一些什么组件,解决这个问题就意味着需要对现有的所有应用和可能的应用场景进行拆分和抽象。对于一个应用抽象或许还可以,但是把抽象出来组件反过来可以构建各种应用,这又是另外一回事儿了。这就类似于一个NP问题,也许永远没有一个最优解,但是通过不断的努力和尝试,iVX已经基本上可以构建任何应用了。

组件的抽象非常漫长,而且抽象的层次也非常关键,什么是基础组件,什么是基础组件之上抽象的扩展组件(这种组件更加实用,往往可以马上表达某一功能),可能在之上还有模型和模块的概念,在之上才是模板和模板复用。

之后,所有的组件都是对象化的封装(包括事件本身),都有“三位一体”的表达,这就是“对象属性”“触发条件”“对象函数”。

比较难的是后台部分,前端还有一些库的方法可以参考,后台抽象难度会更大一些。

二、逻辑的抽象和表达

上一步比较难,是内容量太大,细节非常多,花的时间也就多。这一步是真的比较难~
所有的程序开发,抛开了界面和数据,剩下的就是逻辑,逻辑成应用的灵魂,也是最难0代码表达的。
iVX创造了基于的“条件触发式”的非代码逻辑方式,以及为这个方式专门提供了一个事件编辑面板,支持前端、中台、后台的逻辑编辑。
同时iVX支持MySQL的所有操作逻辑。

三、形成完备的中间语言

总体来说,iVX是从WebApp开始研究和演进的,更多的使用了Web前后端流行技术。
iVX前端是使用React,生成的前端代码也是React的Core。中台采用Node.js,直接解析JS代码。后台和云端基础设施相连,采用了Go来架构,效率更高更稳定。
中间语言,只的是通过前端拖拽组件和配置完事件之后,生成的中间代码,类似描述性语言。这个语言必须我们自己构造,类似需要积累一个字典一样,后续通过这个“字典”,将一个一个应用编辑成一篇“文章”。

四、支持各种目标系统的编译器

这个过程技术含量最高,需要做编辑器!这个领域现在已经很少年轻程序员涉足了。
例如,做支持微信小程序原生的编辑器,就需要把微信小程序“嚼烂”,然后再对应我们现有组件写一次,然后把对应的语法翻译成JS业务,最终通过编译器编译成微信小程序的代码。现阶段,我们支持iOS Android Windows Mac等原生应用和Web应用,所以编译器的复杂度可想而知,还要速度快,这个活据我所知,技术含量极高。

结语

这次的介绍就这么多,看起来iVX不错,我也在上简单玩了一下,一些模板和视频教程讲解的挺细致的,希望它能为我以后写快速网页:

但是一个新东西脱胎换骨的学成成本肯定也要考虑,但目前感觉还行,后续的话可以考虑用它写个小网页应用分享给大家。

最后,微信公众号:bigsai ,欢迎关注这个分享干货的小哥哥!关注回复打卡拉你一起打卡力扣。

初探一个0代码开发—iVX平台相关推荐

  1. 低代码开发Paas平台时代来了

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 低代码理论 概念 低代码开发基于可视化和模型驱动的概念,结合了云原生和多终端体验技术,它可以在大多数业务场景中,帮助企业显著 ...

  2. ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车

    ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 文章目录 ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 所需组件 一.小车所需组件 ...

  3. 简单Android app开发_什么方法开发APP最简单?试试0代码开发平台

    开发APP有哪些方式? 说到开发APP,那肯定是找外包公司最方便,只用花钱就能坐等APP完成.但是,现在需要开发APP的公司范围越来越广,传统外包公司高昂的费用显然已经不能普罗大众,那么,有没有简单便 ...

  4. 0代码开发,2小时上手,人人皆可DIY的对话机器人,一文看懂「竹间智能」新品发布会...

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 让我们把时间拉回到56年前,MIT 的 AI Lab做出聊天机器人,说不定不是第一个,但也是非常早期的一个聊天机器人--Eliza. 它是1 ...

  5. 半天做完的数据报表,YonBuilder只要十几分钟,0代码开发

    进入数字化时代,拍脑袋的决策方式显然不靠谱,一切要靠数据说话.与信息化时代相比,数字化时代的企业对数据的应用更广泛.更深入.为了应对激烈的市场竞争,企业经营决策者们对数据的依赖度越来越高,企业各个业务 ...

  6. ivx平台开发——不用代码实现一个九宫格抽奖

    原创公众号:bigsai 前言 上次说过在看一些关于0代码开发平台ivx,前一段时间忙完考试最近跟着教程0代码实现一个九宫格抽奖,哈哈哈感觉还是蛮强大的,懂点的人都知道可视化这个东西我们正常都是用一些 ...

  7. HighNewTech:低代码(0代码/无代码,无需代码)开发的简介以及如何选择最合适的低代码开发工具

    High&NewTech:低代码(0代码/无代码,无需代码)开发的简介以及如何选择最合适的低代码开发工具 导读:在互联网时代,博主经常反思一个问题,如何跟进这个快速发展的时代才能不会被淘汰?博 ...

  8. 低代码开发平台_如何挑选最适合你的低代码开发平台

    根据Forrester研究报告,不论是成熟大型的,或是新的小规模的低代码开发平台供应商,每年都在以50%的增长率快速的发展中.在众多的低代码开发平台里,挑选最适合企业的才是至关重要的. 在选择低代码开 ...

  9. 国内外低代码开发平台调研(2022)

    "低代码开发是云计算之后的下⼀场IT⾰命." --钉钉发布会所提到的低代码开发. 钉钉6.0发布会 近⼏年来,低代码概念越来越⽕爆,随之⽽来的低代码产品也越来多,这其中就有很多优秀 ...

  10. 盘点:2022年国内比较主流的低代码开发平台有哪些?

    史上最全"低代码开发平台"介绍合集,2022年国内30家优秀低代码开发平台汇总盘点!这些平台必须拥有姓名!(以下排名不分先后) 1.宜搭--阿里 宜搭是阿里巴巴自研的低代码应用搭建 ...

最新文章

  1. 微信同步通讯录服务器繁忙,企业微信同步通讯录时提示 mobile existed
  2. Apache详细介绍 - [ Apache v2.4.10 for Windows ]
  3. leftjoin多个on条件_MYSQL|为什么LEFT JOIN会这么慢?
  4. tensorflow中batch normalization的用法
  5. kali安装pip3
  6. 【Liunx】Linux 文件基本属性
  7. 韩松、朱俊彦等人提出GAN压缩法:算力消耗不到1/9,现已开源
  8. matlab中ifelse能嵌套吗,嵌套if语句(nested if statements)
  9. MySQL日志及主从复制实现
  10. CentOS7 下安装telnet服务
  11. 1048: 谭浩强C语言(第三版)习题6.4
  12. 使用影子系统后win10导致的蓝屏解决办法
  13. Windows系统设置共享文件夹及访问共享文件夹
  14. panabit之HTTP管控
  15. 使用js脚本实现网页版微信定时发送信息
  16. 设计一可控同步四进制可逆计数器, 其由输入X1, X2控制, 用D触发器和74151及必要的门电路实现
  17. python科学计算教程视频_【P14】Python科学计算与图形渲染库视频课程视频教程 it教程...
  18. 计算机病毒程序没有文件名 是靠 识别的,计算机理论选择问题和答案.doc
  19. MAC下 抖音APK反编译
  20. 德国奔驰将自主研发车载系统MB.OS,对抗Tesla

热门文章

  1. Python编写时钟表turtle
  2. 车联网大数据框架_车联网大数据平台架构设计-系统总体架构
  3. Java求抛物线输入角度速度_知道初速度和抛物线的角度,怎么计算落点
  4. OMNeT学习之TicToc2-7详解
  5. 笔记本开机循环显示:this product is covered by one or more of the following patents 解决办法
  6. tiny4412 uboot 2020.10版本移植(三)——uboot初步启动
  7. 尺度、空间异质性、干扰、景观多样性、景观连接度,对其概念的理解
  8. 2019年360笔试
  9. 【Ubuntu20.04+ROS Noetic】ROS解决BUG日志【一】
  10. C# 下拉菜单的设置 lookupedit