3000 words, let’s talk about the difference between learning low code and learning programming?

about the author

Hu Yanping , co-founder and CTO of Wanying Low Code, a technical expert of the Low Code/No Code Promotion Center of China Academy of Information and Communications Technology, and one of the drafters of the "Low Code Development Platform Capability Requirements" of the National Beacon Committee.

A CTO of a technology company once asked me: Is low-code a programming language that does not require coding? When we are not sure about the boundaries of low-code capabilities, what is the difference between spending time learning this "language" compared to learning python or C language?

If even the CTO has doubts about this, it must be even more so for beginners or non-IT people. In this article, I will use the form of questions and answers to give you some reports and explanations, hoping to solve some of your confusion about low-code.

First of all, let's analyze the difference between a low-code platform and a programming language:

How similar are low-code platforms to programming languages?

Friends who are familiar with the history of programming languages ​​know that new programming languages ​​are often developed by developers for specific problems by learning from and enhancing their familiar languages. Therefore, although the syntax and command format of each high-level programming language are different, no matter what programming language, there will be some common ideas and elements.

This common idea and elements are the basic elements of programming languages. Includes data types, constants, variables, operators, expressions, identifiers, keywords, arrays, basic control structures, functions, input and output, interpreters, and compilers. The following figure describes these basic elements in detail:

Basic elements of programming language and low-code implementation

(Take Wanying Low Code as an example)

From the comparison in the above table, we can see that a mature low-code platform will almost 100% fully possess all the elements required by a language. Why is this so?

A mature programming language must be Turing-complete (that is, it has been verified in practice and can solve most problems). Using this as a guideline, low-code platforms can avoid many inherent deficiencies in capabilities.

Still take Wanying low-code as an example. In fact, Wanying's design idea follows and refers to many JavaScript specifications.

JavaScript is the most widely used programming language in the world. It is simple, flexible, and easy to use. Many UI and product managers know a little JavaScript, which is why many users feel a sense of deja vu when using Wanying.

After reading this table, I believe that you will basically no longer have too many doubts about the capability boundaries of mature low-code: what most code can do, low-code can also do, and the speed is faster, getting started simpler.

接下来:

低代码是一门编程开发语言吗?

要回答这个问题,就得从低代码开发应用的过程和低代码所开发应用的结果状态两个方面进行论证。

下图是万应低代码平台开发应用的过程:

在整个过程中,有很多环节并不是通过一门编程语言就能够解决的,比如业务实体的定义、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毫无压力,并且逻辑能力比一般的交互设计师要强很多。

万应低代码平台,本质上其实是把软件工程的设计思想,用一种可视化的方式表达出来,让开发者在运用这种思想时能更容易、更轻松些。设计思想是灵魂深处的,是跟随人一生的,思想有了,不管用什么形态的工具都不会白学。

Guess you like

Origin blog.csdn.net/weixin_56668174/article/details/129199668
Recommended