[程序员] NoCode 系列 1:到底什么是 NoCode 和 LowCode


转一篇文章: https://mp.weixin.qq.com/s/1Rl4_VLK1Yqs_E2VsITErw

这是 NoCode 系列的第一篇文章。

PS:低代码=LowCode ,零代码=NoCode

印象中大概是从去年( 2020 )开始,各种 NoCode 、LowCode 、可视化搭建等等概念铺天盖地的充斥着各个技术社区,很多大公司也开始火急火燎的造自己的 NoCode 产品,生怕错过了这个技术(晋升)风口。

我想大部分人应该是看的一脸懵,到底是什么 NoCode ,什么又是 LowCode ,它们之间的区别是什么,市面上有哪些相关的产品?如果我是个小白的话,我能不能自己写一个简单的 NoCode 产品?

这些问题也是我好奇的,刚好我现在在公司负责做一个 NoCode 的产品,我准备写一个系列文章来记录我对 NoCode/LowCode 的学习理解和思考。

来源于 HPAPaaS

在 NoCode 和 LowCode 之前,其实还有一个更早的概念叫 HPAPaaS ( Enterprise High-Productivity Application Platform as a Service ),它是由 Gartner 公司在 2017 年的报告中给出的概念,它的详细定义是:


application infrastructure functionality enriched with cloud characteristics and offered as a service” with “high productivity” supporting “declarative, and model driven design and one-step deployment.

这里面有几个关键词值得注意,支持描述性的、模型驱动设计和一步部署,这基本已经有点雏形了。

不过 HAPPaaS 这个概念在 2019 年的 Gartner 报告中被 LowCode 替换掉:


This “Magic Quadrant for Enterprise Low-Code Application Platforms” replaces 2018’s “Magic Quadrant for Enterprise High-Productivity Application Platform as a Service.” Its definition relaxes the requirement for each vendor to be a cloud PaaS vendor, though all the vendors included in this Magic Quadrant have PaaS capabilities anyway.

并且在报告中,Gartner 给出了未来 5 年的市场预期:

● 到 2024 年,四分之三的大型企业将使用至少四种低代码开发工具进行 IT 应用程序开发和公民开发( citizen development ,可以认为是非 IT 背景的用户进行开发,例如:业务用户 /产品经理 /业务顾问等)。

● 到 2024 年,低代码应用程序开发将承担 65%以上的应用程序开发活动。

从这一段我们可以知道 LowCode 的来源是由 HPAPaaS 演变或者说进化而来,它的目标是可以让非 IT 背景的用户进行部分开发工作。

前面说到了 LowCode ,那么 NoCode 又是什么?

在 2019 年的 Gartner 的 Low-Code 报告中,可以看到这样的解读:


Gartner has covered low-code development for mobile apps used in the workplace under rapid mobile app development (RMAD) tools (see “Market Guide for Rapid Mobile App Development Tools”). We have also observed that no-code development tools are being marketed toward lines of business as a way for them to own their data applications. The idea is to “democratize” application development by enabling and facilitating citizen development (see “Citizen Development Success Depends on an Equal Partnership Between Business and IT Leaders”).

However, the no-code tools targeted at minimally skilled citizen developers often end up requiring trained IT staff for certain use cases. Therefore, we consider no-code tooling as a subset of the larger low-code tool market, especially as enterprise-class low-code platforms increasingly strive to address both citizen and professional developers.

可以看出来 NoCode 是个从属于 LowCode 的概念,即 NoCode 是 LowCode 的子集:

NoCode 和 LowCode 之间的区别和定义

那么 NoCode 和 LowCode 有什么区别?

准确来说,LowCode 和 NoCode 在很多时候界限并不明显,在维基的描述上,通过下面这三个方面来区别它们俩之间的区别:

  1. 使用者:NoCode 产品可以让任何用户使用,包括非技术和技术; LowCode 产品需要用户懂得编程知识

  2. 用户界面:NoCode 产品通常依赖于预置的用户界面层(模板),这些模板可以简化产品的设计; LowCode 产品则提供更灵活的 UI 配置选项,但是这样的代码是某些选项可能需要通过写代码的方式去配置

  3. 核心设计:NoCode 内置业务和开发模型,但是最终用户是使用拖拽或者简单的逻辑编排来决定应用的设计; LowCode 产品也会内置类似的业务和开发模型,但是更依赖于硬编码来实现应用的设计

通过上面的这些分析,我们可以总结大致对 NoCode 和 LowCode 下定义:

NoCode 产品对外展现的是一个普通非技术用户可接受的工具类产品,通过拖拽、勾选等等图形化操作来完成目的;

而 LowCode 产品对外展现的是一个半编程工具,减少从头写的代码,但是仍然需要一定的编码或者技术人员的介入来完成目的。

所以如果你想研发或者选择 NoCode 和 LowCode 产品,你需要搞清楚以下几个问题:

  1. 这个产品的使用者是谁? ta 们有技术背景吗?

  2. 这个产品解决的问题和场景是否可以抽象或者穷举为固定的流程?

搞清楚这些问题后,才能开始接下来的事情。

NoCode 会抢走程序员工作吗?

这是个有趣的问题,也是很多程序员在担心或者质疑的问题。

我先说我的答案:

NoCode 会抢走部分程序员的工作

因为 NoCode 解决的是那些可以被高度抽象成固定流程的问题,比如说如果你只是想做一个简单的增删改查页面,那么这个场景就很固定很好抽象,NoCode 产品就可以很好的解决它;但是如果是很灵活无法模式化的问题,那就只能靠程序员手写代码来解决。

比如说有一个产品叫 retool ,它的卖点就是节约研发工作,快速的开发内部系统。所以只能提高解决问题的能力了,固定、重复的场景迟早会被自动化。

NoCode 解决重复性模式化的问题,剩下的复杂的灵活的问题,就靠我们程序员来解决了。

下一篇

下一篇讲讲市面上的 NoCode 和 LowCode 产品和项目

发表评论

您的电子邮箱地址不会被公开。