NoCode系列1:到底什么是NoCode和LowCode

1,660 阅读5分钟

公众号:前端耳东,欢迎加微信聊技术、讨论算法、交流面试心得等等 这是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产品和项目