作者介绍
胡艳平,万应低代码联合创始人、CTO,中国信通院低代码/无代码推进中心技术专家,全国信标委《低代码开发平台能力要求》起草人之一。
曾有科技公司CTO问我:低代码是不是一种不用敲代码的编程语言?在不确定低代码能力边界的情况下,我们花时间去学这门“语言”,相比学python或者C语言等,又有什么区别呢?
如果连CTO都会对此产生疑虑,那么初学者或者非IT人群想必更是如此。本文我将用问答的形式,向大家做一些汇报说明,希望可以借此解开大家对于低代码的部分困惑。
首先我们先剖析一下,低代码平台和一门编程语言的区别:
低代码平台和编程语言究竟有多像?
熟悉编程语言史的朋友都知道,新的编程语言往往都是开发者针对特定的问题,通过借鉴和加强自己熟悉的语言所开发而来。因此,虽然每种高级编程语言的语法、命令格式各不相同,但不管什么编程语言,都会有一些共同的思路和元素。
这个共同的思路和元素就是编程语言的基本要素。包括有数据类型、常量、变量、运算符、表达式、标识符、关键字、数组、基本控制结构、函数、输入和输出、解释器和编译器。下图对这些基本要素作了详细描述:
编程语言基本要素及低代码实现方式
(以万应低代码为例)
通过上表对比可以看到,一个成熟的低代码平台会近乎100%地完整具备一门语言所需的各种要素,为何如此呢?
成熟的编程语言一定是图灵完备的(即经过实践验证、能够解决绝大部分问题),以此为指引,可以让低代码平台避免很多能力上的先天不足。
还是以万应低代码为例,其实万应的设计思想遵循和参考了很多JavaScript的规范。
JavaScript是全球使用用户最广的编程语言,它简单、灵活、易上手,很多UI、产品经理都懂一点JavaScript,这也是为什么很多用户在使用万应时会有似曾相识之感。
在读懂这张表后,相信大家基本就不会再对成熟低代码的能力边界存在太多疑虑:绝大部分代码能做到的,低代码也一样可以做到,而且速度更快,上手更简单。
接下来:
低代码是一门编程开发语言吗?
要回答这个问题,就得从低代码开发应用的过程和低代码所开发应用的结果状态两个方面进行论证。
下图是万应低代码平台开发应用的过程:
在整个过程中,有很多环节并不是通过一门编程语言就能够解决的,比如业务实体的定义、PaaS能力集成、项目发布部署等。
低代码平台能力远超过任意一门单一语言,它涵盖了需求设计、技术设计、前端开发、后端开发、打包部署、测试等多个环节。从这个层面讲,它是一个开发平台,而非一门开发语言。
再看万应低代码平台输出应用的基本结构:
从上图可以看出,万应包括了业务实体定义、业务逻辑定义、高级PaaS能力集成、多种形态应用生产和部署。因此,我们可以确定地说:万应平台底座不是一门编程语言,而更像是一个整合了云计算、大数据和编程语言思想的企业级数字化底座。
学会低代码=学会一门编程语言吗?
我们可将低代码能力与相应传统编程语言的学习要点进行对比(以万应低代码为例):
通过对比可以看到,掌握低代码,并不仅是学会了一门语言,而是“学会了很多门语言”。因为从最终成效看,使用万应低代码即可以实现“一个人就能撸出一个应用”的效果,也即一个万应低代码的开发者,就是一个传统意义上的全栈工程师——一个从网络、操作系统、中间件、数据库、后台开发、前端开发层面都具备一定基础的全栈工程师。
那么:
学会低代码比学会一门编程语言难吗?
学会和精通是两个不同的概念。
学会一门语言不难,精通一门语言很难。正如本文开头所述,其实大部分语言的基本要素都是一致的,不论是老牌的后端语言Java/C#,还是新锐的后端语言Golang;不论是市场占有率最高的JavaScript,还是以性能著称的Rust,他们的基本要素都是类似的。学会了一门语言,再学另外一门是很容易的。
那么精通一门语言主要体现在哪些地方呢?我认为主要是一下几个方面:
● 算法的思想。面对同样一个问题,“精通语言”的人会用简练有效的算法高性能地去解决,而“会用语言”的人或许最终也能解决问题,但效率却无法企及。
● 架构的思想。以企业数字化为例,在解决数字化问题时,关键就在于整个项目的架构能力,尤其是Java、C#这类后台语言:怎么定义领域模型,怎么定义微服务,怎么用好面向对象思想,怎么用好各种设计理念,这些架构上的思想都是项目成败的关键。
● 框架熟悉程度。成熟的语言会有大量、各种各样的第三方框架,去丰富语言的能力,比如C#的Entity Framework、FreeSQL等,对这些框架的熟悉程度,决定了使用这门语言的效率,也决定着对这门语言的掌握程度。
学会一门语言所需的知识点比学会万应低代码要少,毕竟万应涵盖了数门语言能力、数个研发领域。但是精通万应比精通一门语言要容易得多:
很多算法万应在底层内置了,开发者无需深度理解,可以直接使用;
万应将如何做好一个企业数字化应用的架构思想和方法论,内置入平台,开发者同样无需深度理解,可以直接使用。当然如果开发者深度理解了,可以产生知音般的共鸣;
同样,万应还将很多框架通过自研或集成方式,内置到了平台,开发者只需要拖拽、配置即可。
精通万应要多久?时间成本高不高?
一名应届毕业生,从零基础到精通万应(请注意,是精通而不仅是学会),时间周期在3个月左右,曾有合作伙伴听到此有点望而却步,认为时间太长,成本太高。其实这里存在一些误区:
1)低代码开发相对传统开发大大降低了操作门槛,但并非完全没有门槛,不仅仅是操作,软件开发的一些基本思想、流程规范等都需要掌握,整体时间3个月是相对零基础人群而言,如有编程基础,这个周期会短至1周左右;
2)万应低代码平台有完善的培训机制,员工入门只需要3-5天,入门后就可参与项目,着手界面的搭建和简单逻辑的编排;
3)万应低代码平台开发速度快,成果反馈时间短,在多所高校中被用作教学平台。对开发者而言,万应是一个非常适合通过项目中去锻炼的平台,越复杂的项目越能锻炼人。而对于企业而言,在项目中,开发者就已经有产出了,并不完全是成本支出。
最后一问:
低代码平台这么多,如果将来换一个平台,那现在是不是白学了?
先说结论:就万应低代码而言,不是。
首先,我们前面分析了,万应几乎包括了一门编程语言的全部基本要素,万应在逻辑编排、动作流里边的设计思想就是编程语言的思想,开发者学会了万应再去学习Javascript或Java这类语言,会更容易,会得到更多共鸣。
其次,万应是一个全栈的开发平台,学会万应就基本理解了软件开发的全过程。而仅仅是理解这个过程,很多工程师都要花上好几年时间,甚至有些工程师在工作几年之后,依然只理解自己眼前的点,难以获得全局视角。
再次,万应涵盖了后台、数据库、前端等多个环节,学会了万应就会“不自觉”地懂一些后台开发逻辑、数据库设计和脚本逻辑,以及前端的语言框架、HTML、CSS布局等。这些都是国际通用标准,是可以迁移的知识点。
最后,万应是一个所见即所得的开发环境,界面设计器跟全球有名的Figama类似,掌握万应的工程师,去设计产品UE毫无压力,并且逻辑能力比一般的交互设计师要强很多。
万应低代码平台,本质上其实是把软件工程的设计思想,用一种可视化的方式表达出来,让开发者在运用这种思想时能更容易、更轻松些。设计思想是灵魂深处的,是跟随人一生的,思想有了,不管用什么形态的工具都不会白学。