随着低代码技术日渐火热,越来越多的开发者正将目光投向这个领域。和许多软件开发技术一样,低代码也不是“凭空产生”的,而是软件开发技术发展的必然产物。让我们一起将镜头拉开,在软件技术发展史的尺度下,观察低代码的诞生过程,希望能帮您加深对低代码开发技术的了解。
软件开发的生产力不断提升
编程语言是每一位专业开发者最熟悉的概念,也是软件技术发展史的重要见证者。
计算机诞生于1946年,计算机的核心部件是中央处理器(CPU)。计算机之所以能够工作,是因为我们给CPU输送工作指令。这里的工作指令就是机器语言,是由0和1组成的二进制串。机器语言可以被机器直接识别,但对人很不友好,非常繁琐也容易出错。
在计算机诞生后不久,人们就发明了汇编语言。汇编语言参考了人类语言的符号,用助记符号代替二进制串。程序在执行前需通过编译程序将汇编语言还原成机器语言,再输送给CPU执行。汇编语言比机器语言更容易理解和编写,但是它仍然高度依赖于机器语言,与CPU体系架构一一对应,不同的CPU都需要不同的汇编语言和指令集(CPU能够识别的操作)。
(汇编语言,图片来自网络)随后,语言发展到第三个阶段:高级语言。在1957年,计算机专家发明了第一个高级编程语言Fortran语言,随后陆续发明了BASIC、C语言、C++语言、Java语言等。高级语言是指面向用户的语言,它与人类的语言规则更接近,比如,C语言当中有If … then … else …;Basic语言中的While … do等。这样的语法和人类的语言表达方式基本相同。直到今天,新的语言仍然层出不穷,全球已经累计有几千种高级编程语言。
从机器语言到高级语言,编程语言越来越接近人类的语言,学习和理解的难度逐渐降低,随之而来的,还有编程工作效率的显著提升。可以说,现代编程语言的生产力已今非昔比。
程序员不足依然是常态
然而,生产力的提升依然赶不上计算机应用领域扩展的速度,专业开发人员紧缺成为常态。
最初,计算机非常昂贵,而且仅能提供有限的计算能力,主要被用在军事和科研等高精尖领域。随着硬件设备和操作系统等基础的发展,企业管理、工业设计、生产自动化等领域逐步引入计算机,加速自身发展。随着互联网时代,特别是移动互联网时代的到来,计算机的形式更多样、成本更低廉,应用场景可以说覆盖了我们工作和生活的方方面面,比如您阅读这篇帖子的时候,在您的终端和服务器上,就有不少于10个软件在为您服务。通常的说,这些软件都需要受过专业训练的程序员来开发。那么,程序员能提供的脑力劳动“够用”了吗?看过深夜里软件公司灯火通明的大楼,您就知道这个答案显然是否定的。
软件开发技术的三大发展方向
为了进一步提升软件开发的效率,软件开发技术做了很多有益的尝试,其中最成功的,当属可视化、组件化和框架化三个方向。
可视化
“可视化开发”是上个世纪90年代软件界最大的热点之一。随着图形用户界面(GUI)的兴起,用户界面在软件开发的工作量中所占比例也越来越大,有时甚至高达60~70%。对于最终用户来说,GUI可以让软件变得很友好;但另一方面,程序员通过编码来开发用户界面时,又很不方便。
如何能够提升用户界面的开发效率?可视化开发应运而生。最初的可视化专注于用户界面开发领域,可以让开发者通过拖拽的方式快速构建出用户界面,一些成熟的产品甚至可以做到“所见即所得”。即便与最先进的高级语言对比,使用可视化设计开发图形界面的生产率也能高出许多。
(使用Visual Studio IDE,可视化开发应用程序的界面)在品尝到可视化的“甜头”后,可视化开发的技术和工具迎来了大发展,其应用场景早已不仅仅应用于用户界面设计。如今的可视化开发已经涵盖了数据库设计、工作流设计、业务逻辑设计等各个领域。
全局来看,可视化开发在提高开发效率的同时,还降低了开发的技术门槛,这就让软件开发团队的构成有了更多的优化空间,如让美工参与构建用户界面,让业务人员设计业务流程等。新的团队构成除了能降低总体开发成本,还能通过减少沟通环节,提升软件团队的协同能力,加快软件交付速度。
组件化
与可视化开发相伴而生的,是软件开发的组件化。组件(Components)伴随着高级语言产生,它的本质是可重复使用的代码。当一段代码可以在一个软件中使用,也能成为另外一个软件的一部分时,就可以被抽象成一个组件。组件的价值不仅仅在于提高代码的复用性、提高开发效率,还通过组件化的设计,也降低了整个系统的耦合度,提高了系统的可维护性。
目前组件化的开发方式非常成熟,覆盖面从文字输入等基础功能、统计函数等数据处理到报表等复杂应用场景。组件中涉及用户交互的最为常见,也被称作“控件”(Controls)。比如,开发者使用可视化设计的方式开发业务报表时,可以直接使用葡萄城提供的ActiveReports报表控件。ActiveReports可以作为一个组件的形式嵌入到各个应用程序当中,同时它也提供了一种可视化的报表设计模式,同时代表了可视化和组件化两大趋势。
框架化
可视化和组件化聚焦在具体的功能实现,而框架化则为整个软件和开发流程提供支撑。框架(Framework)是指可被应用开发者定制的应用骨架。就类似人类的骨骼系统一样,框架规定了应用的体系结构,阐明了整体设计、协作构件之间的依赖关系、责任分配和控制流程。
(使用活字格开发出的应用系统的架构示意图)对于开发团队,框架化的价值在于提供软件的总体架构,简化了设计工作,降低对软件架构师的能力依赖,使得开发团队即使没有高水平的架构师,也可以让软件有一个很好的架构。同时,框架通过抽出非功能需求,让开发者能更加专注于业务逻辑的实现,提升了开发效率。总之,框架本身就是最佳实践的一个提炼和综合,基于专业的框架进行开发可以有效保障大型软件的处理能力、扩展性和可维护性。
低代码,软件开发技术的必然产物
可视化、组件化和框架化,通过将大量的开发工具、控件和技术文档深入到软件开发过程中,确实起到了大幅提升开发效率的作用。然而,这种“量变”的效率提升,对于加速增长的软件需求,依然杯水车薪。行业需要革命性的解决方案。
早在1982年,詹姆斯·马丁在《无程序员的应用程序开发》一书中就写道:“每台计算机可用的程序员数量正在迅速减少,以至于将来多数计算机将在没有程序员的情况下工作。”这种“梦想”无奈地道出了软件发展的难题:基于计算机的应用越来越广泛,程序员数量难以赶上需求的扩张,只能寄期望于让计算机在没有专业开发人员的前提下工作。如今,低代码技术的出现,让马丁的梦想正在变成现实。
低代码是指一种主要应用于企业信息化领域的快速开发技术。借助低代码,开发者无需编码即可生成企业应用的常见功能,使用少量编码能开发出更多扩展功能。低代码虽然是一种新的开发方式,但它是从高级开发语言出发,沿着可视化、组件化和框架化的发展方向,一路演变而来,是高级开发语言开发发展到一定阶段的必然产物,如同我们人类从猿猴逐步地进化到人一样。
(低代码开发技术)以葡萄城推出的活字格企业级低代码开发平台为例。活字格提供了所见即所得的设计器,从设计数据表到构建页面,从配置工作流到设置权限,直到一键发布都能以可视化的方式完成。活字格基于葡萄城在专业控件领域 40 年的技术积累,内置了企业应用所需的各种控件,开发者只需拖拽就能获得样式精美、功能强大的表格、图表等页面元素和Excel导入导出等实用功能。与多数类似产品不同的是,使用活字格构建的应用架构清晰、理念先进,达到专业水准,如采用表与页面分离式设计,满足数据库设计范式;可定制服务端逻辑,支持前后端分离架构等。配合内置的权限控制、审计日志等非功能性组件,活字格为开发者提供了一套开箱即用的企业级框架,支撑大规模企业级应用开发。
总之,以活字格为代表的低代码开发技术具有集成程度更高的可视化能力,更丰富的组件和更专业的框架,是软件开发技术发展方向的集大成者。量变积累成质变。在低代码的支撑下,实施、运维等非专业开发人员,甚至部分业务人员都能参与到企业软件的开发过程中来,成为“平民开发者”,补齐专业开发者的缺口。这些新生力量的加入,让软件开发的面貌焕然一新。不论是从零开始研发整套管理系统,还是在ERP等行业软件的基础上做二次开发;不论是应对非核心部门的临时性需求,还是承载企业核心业务流程运转,低代码都能帮助信息化系统以更低廉的成本落地,让更多企业提前享受数字化转型升级的红利。
(使用活字格的可视化设计器开发移动端应用)通过回顾软件开发技术的演进过程,我们看到软件开发技术的演进过程,就是不断降低开发门槛、提升开发效率的过程。从汇编语言到高级语言,从高级语言到低代码开发平台,软件开发正越来越容易;而低代码开发作为一种新兴的开发形式,它代表着未来的发展趋势,它可以有效弥补专业程序员的不足,它的应用必将越来越广泛。
(使用活字格开发的MES系统截屏)基于预测,未来会有超过一半的应用程序全部或者部分地通过低代码开发平台进行开发。同时,活字格等成熟的低代码开发工具本身也支持高级语言开发,用于扩展其应用场景。所以,低代码不会完全取代高级语言开发,高级语言开发和低代码开发将长期并存。
写在最后
这几年来,云计算、大数据、物联网、AI等新的技术趋势不断涌现。开发者是所有与IT相关的各项新技术的创造者,同时也是新技术广泛应用的推动者。开发者是技术发展的核心力量。如何让更多人成为开发者,让开发者可以更专注于业务和技术创新?作为软件开发技术发展新阶段的代表,低代码开发技术交出了自己的答案。活字格企业级低代码平台,由葡萄城基于在专业控件领域40年的技术积累而推出,正在推动着软件开发方式的革命性变化,引领着中国低代码平台的发展,曾获中国优秀软件产品、软博会十佳优秀产品等多项荣誉称号,欢迎您前往活字格官网了解更多详情,并免费下载试用。