# 低代码的发展
软件开发方式是否是‘低代码’,这是相对的,可以将其视为比较级。低代码这一概念开始流行是从2014起,由全球最著名的电子信息产业分析公司之一的Forrester,在一篇报告中提起。但低代码的根源可以追溯到20世纪90年代的第四代编程语言、计算机辅助软件工程(CASE)、快速应用程序开发(RAD)工具,这些早期的工具试图实现现代低代码的目标,即:用更少的时间和代码构建真正的应用程序。
# 计算机语言的发展
低代码趋势是从哪里开始的呢?下面的内容将探索这个问题,以便于理解为什么低代码开发平台会流行起来。先看高级语言的发展,提到高级语言一词,程序员首先会联想到 C 语言和 c++ 等,因为读大学时,它们大概率是计算机专业的必修课,进而再联想到在 IDE 中编写无穷无尽的代码。不论是 C 语言还是 c++,它们都不是高级语言的根源。
20世纪40年代,第一台电子计算机问世,此时汇编语言经历了长足的发展,但它过于复杂,且程序的可移植性差,这严重限制了程序的推广。此时,人们意识到需要设计出一个不依赖计算机硬件,能在不同机器上运行的程序,同时改程序要接近人类的自然语言。在 1954 年,第一个完全意义的高级语言 FORTRAN 问世,它脱离了特定机器的局限,是一个通用的编程语言。
FORTRAN 在汇编语言的基础上前进了一大步,但是依然存在问题,它主要用于科学和数值计算,且不像人们需要的那样直观。古往今来,人类总是在不断发现问题、研究问题、解决问题的过程中前进,为了解决 FORTRAN 的问题,COBOL 诞生了,再然后诞生了 C 语言。C 语言是结构化的,用英语语法编写的,从根本上背离了 COBOL 和 FORTRAN,多年后,c++ 在 C 语言的基础上添加了面向对象的编程概念,如继承和多态等。c++之后最大的变化来自 c#,它更适合创建 web 应用程序,在互联网爆炸式增长之后,这是推动高级语言,如Java、Python、PHP 等发展的最大动力。纵观计算机语言的发展,可以发现其整体趋势是让程序简单,提高效率,增加人类对程序的可读性。
在这里梳理一下,机器语言是第一代计算机语言,汇编语言是第二代计算机语言,高级语言,比如 C 语言、c++ 等是第三代计算机语言,之后的第四代计算机语言是一个简洁的、高效的非过程编程语言,用来提高数据库管理系统的效率,SQL 和 QBE 是第四代编程语言的例子。在第四代编程语言中,用户定义“做什么”而不是“如何做”,这与第三代编程语言形成了差异。绝大多数第四代语言都主要依靠在屏幕上和用户“对话”的交互方式,通过操作屏幕上的窗口、按钮、图标等来创建应用系统,在学习 SQL 的时候,不知你是否使用过 Oracle 应用开发环境,如果使用过,那么对第四代语言会有一个明显的感知。
有一些人可能不认为在屏幕上点一点鼠标,创建应用程序是在使用计算机语言,因此不认为第四代计算机语言是语言。第四代计算机语言是不是语言,这取决于计算机语言的定义,引用百度百科上的一句话:计算机语言是人与计算机之间传递信息的媒介。从“计算机语言是人类用来向计算机传递信息的方法、约定和规则”这个角度考虑,第四代语言确实是计算机语言。以人类语言为例,阅读这本图书的大部分读者可能对口语和书面语言较为熟悉,同时不可忽略,聋哑人使用的哑语也是人类语言。
介绍第四代编程使用了较多篇幅,旨在引出低代码,读到这里你是否觉得低代码与第四代语言很像,不同点在于,第四代语言主要面向数据库应用,而低代码主要面向 Web 应用。
# 低代码革命
低代码为什么主要面向 Web 应用,这不得不说互联网的发展,随着 Ajax 技术的普及,Web 应用程序变得越来越流行,人们开始使用简单的脚本去完成网页的开发,更专注于功能,此时应用程序需要以更快的速度开发。与原生应用相比,开发 Web 应用更快速,但随着市场需求的暴增,它的快速逐渐显得乏力,另外还有资源与成本的矛盾,专业技术开发人员的价格昂贵且数量少。
Forrester 创造了低代码这个词,Gartner 进一步向大众介绍它,Forrester 对低代码的定义是:低代码平台能快速的交付应用程序,它最大化的减少了手动编码、减低了培训和部署等方面的投资成本。Gartner 对低代码的定义是:低代码开发既描述了从代码中抽象出来的平台,又提供了一套集成的工具来加速应用程序的交付。从汇编语言到高级编程语言,开发者与机器之间多了一层抽象,这使程序能在不同的机器上运行,也加快了开发效率,从高级编程语言到低代码开发,开发者和机器之间又多了另一个抽象层,这加快了应用的开发速度,同时降低了对开发者编程能力的要求。
归根结底,不论何时,企业都想花更少的钱提高生产力,花更少的时间赚更多的钱,这就是低代码平台产生并火爆的原因。再次强调,低代码并不意味着完全不涉及代码,它只是让开发人员更容易创建应用程序,无需花费大量的时间去学习编程语言,再花大量的时间编写代码。
在你的公司是否有这样一种情况,业务部门和 IT 部门之间有一种矛盾,业务部门总想要快速开发应用程序去抢占市场,但是 IT 部门不能满足业务要求的快速,于是他们觉得对方不可理喻。低代码为业务人员创建自己的应用程序打开了大门,而不是等 IT 团队来完成这项工作,这使一些具备编程基础的程序员产生了对低代码的恐惧。的确,低代码会降低企业对程序员数量的需求,认为低代码让程序员失业,这一说法是没有依据的,不论是否有低代码,企业对专业程序员的需求总是存在的,专业程序员被分配去开发等复杂的程序,简单的程序由业务部门负责,这就是低代码给软件开发带来的变化。
低代码是未来吗?它不是未来,而是通往未来路上的一个点。