|零代码简史


文/明道云创始人任向晖
不写代码 , 或者写很少的代码来构筑软件并不是全新的概念 。 在上世纪八九十年代 , 在企业软件发展的早期就有影响力很大的标杆产品 。 比如微软在1992年在Office套件中增加了Access数据库应用 , 曾经被苹果公司收购的FileMaker在1985年就推出了 。 这两个应用到今天都还在运营 。
早期的低代码开发工具只能在单机或者局域网环境中运行 , 主要面向的还是企业IT专业人员 , 帮助建立各种灵活度要求比较高的业务数据库 , 实现常规的增删查改应用场景 。 很多Access的熟练用户都不是软件开发人员 , 他们能够自助完成业务数据表的设计和发布 , 让某个部门能够共享一个数据库 。
真正的应用平台(Application Platform)型产品出现在世纪之交 。 美国著名的财务软件厂商Intuit公司于1999年推出QuickBase , 顾名思义 , 就是快速构建数据库应用 。 这个产品在很长时间内都不温不火 , 直到2016年被剥离成一家独立的企业 。 但它的确开创了软件实现的新方式 , 让应用在封装好的平台上运行 , 而不再进行代码的编译和分发 。 这是解放用户生产力和扩大用户基数的关键一步 , 因为能够全程掌握软件开发和部署能力的企业和用户是非常有限的 , 而应用平台把这些繁荣和专业的技术环节统统承揽了 。 所以 , 这个门类在近几年被称为APaaS(应用平台即服务) 。
在云计算技术发展起来以后 , 这个门类焕发了新的生机 。 构筑云原生应用变得更加简单和直接 , 所有基于APaaS构筑的应用显然都是不依赖服务器的(Serverless) , 它甚至模糊了开发和使用的边界 , 使用者即是开发者 , 开发者当然也可以作为直接使用者 。 2014年 , 市场研究公司Forrestor正式提出了Low-Code的概念 , 并将相关品类称为Low-Code Application Platform(LCAP) 。 Gartner随后用高生产力应用平台(hpaPaaS)来命名这个品类 。 近两年 , 全行业对零代码/低代码平台的品类定义开始集中在“APaaS”这个称谓上 。
在这个品类发展过程中 , 自然演化出两种基本技术路径 。
1、基于IDE框架的快速开发平台
这个技术路径将传统的集成开发环境(IDE)充分可视化 , 允许开发者使用配置面板和控制台来替代相当比例的代码编写 。 开发者对前端界面组件、数据源绑定方式、数据模型、业务逻辑和工作流等均可自由定义 , 系统自动生成对应的源代码 , 开发者甚至可以进一步修改源码 。 这条技术路径上的典型产品是美国的Outsystems和欧洲的Bettyblocks , 两者均在相应市场处于领先地位 。

|零代码简史
本文插图
OutSystems的开发环境界面
IDE模式的应用平台可以提供更高的灵活性 , 尤其是对前端界面可以有自主控制的能力 。 但它依然涉及到比较复杂的应用开发过程管理 , 并大量使用技术语言 , 生成的应用依然需要编译、发布和部署 , 所以主要针对的依然是IT专业人员 , 甚至需要有一定的代码开发基础 , 学习和掌握的时间也比较长 。 它的主要价值在于提高开发者工作效率 , 降低重复劳动 。 严格意义上说 , 生成代码并编译运行的平台并不能称为应用平台 , 而只能作为开发平台 。
2、模型驱动 (Model Driven) 的应用平台
在应用平台市场 , 另外一个技术分支在近几年成为新的主流选择 。 它也进一步降低了代码开发工作量 , 甚至实现了完全的零代码 , 让业务人员能够直接完成或参与应用实现 。
所谓模型驱动 , 是相对代码生成编译过程而言的 。 用户一旦在应用平台上通过可视化的方式构筑了数据模型 , 视图形态 , 权限角色等 , 应用就直接在平台提供的运行时环境中运行 , 不再需要另外编译分发 。 SaaS形态的应用平台只需要完成用户注册后即可直接搭建和使用应用 , 不再需要配置独立的应用运行环境 。分页标题
因为摒弃了传统DevOps过程 , 模型驱动的应用平台指数级提高了实现效率 , 也大幅扩展了用户群体 。 但它也不得不牺牲应用实现的自由度 , 用户不可能随心所欲地设计前端界面 , 后端逻辑的复杂度也有一定的限制 。 话说回来 , 大多数企业软件 , 尤其是数据增删查改类(CRUD)应用 , 它们的交互范式本来就比较固定 。
Airtable , Smartsheet, Zoho Creator和http://Monday.com , 国内的简道云 , 伙伴云 , 氚云 , 以及我们自己的明道云都是模型驱动技术路线的应用平台 。 这些产品会更加接近于一个面向终端用户的应用 , 而不是开发工具 。

|零代码简史
本文插图
明道云的应用界面
3、相互融合的设计
虽然应用平台大体有两种截然不同的技术路径 , 但是特定产品可能会从对立面取长补短 。 对于IDE模式的应用平台来说 , 它也可能提供预置的模版 , 让数据模型设计充分可视化 , 来降低用户上手的学习成本;对于模型驱动的应用平台 , 它也会引入低代码能力 , 允许用户用脚本语言、表达式和函数来提升灵活性 。 可以说 , 这个品类的竞争就是产品能力和易用性之间平衡的竞争 。 再强大的应用平台 , 都不可能比得过原生开发模式 , 再简单易用的平台 , 如果不能兑现用户的需求 , 也是没有竞争力的 。
和20多年前的早期产品相比 , 现代应用平台的主要进步表现在:
1)和云计算环境的融合 , 让用户用很低的成本直接获取云原生能力 。
2)Web应用技术框架的进步 , 让浏览器可以承载复杂的前端交互要求 。
3)和移动技术的融合 , 让用户可以直接生成跨平台的移动应用 。
4)针对复杂逻辑的交互设计水平提升 , 让可视化配置实现复杂应用逻辑成为可能 。
5)支持性的技术框架日益丰富 , 包括数据库 , 缓存 , 对象存储服务 , 搜索引擎 , 容器技术 , 运维编排自动化等 , 让应用平台可以提供和原生应用开发完全一致的性能 。
【|零代码简史】在可预见的短期未来 , 应用平台一定能够替代相当比例的原生代码开发 , 大幅提高企业软件行业的生产力 。 围绕用户体验和逻辑实现方面的市场期待也会很快得以更好的满足 。