近期阅读了阮一峰的第341期周刊文章《低代码编程,恐怕不会成功》,我对文章中的观点深表认同。阮一峰在文中的观点较为温和,但明确表达了对低代码发展前景的不看好。作为一名一线员工,我在工作中接触过几套低代码平台,基于实际体验,我也认为领导所期望实现的低代码平台最终难以成功。
1. 低代码平台
“低代码(Low-Code)”这一术语是Forrester Research的Clay Richardson和John Rymer于2014年在《New Development Platforms Emerge For Customer-Facing Applications》报告中首次提出,它被定义为一种借助可视化界面和配置(区别于传统编码方式)来快速搭建应用的开发模式。
自2014年提出至今的10多年间,低代码领域迎来爆发期,众多科技公司纷纷涉足,不少公司甚至开发了不止一套低代码平台。
2. 直击痛点
- 缩短开发周期,快速响应需求
低代码平台具备可视化开发界面与丰富组件库,使用者通过简单的拖拽、配置操作,就能快速构建应用程序,极大地缩短了系统开发时间,减轻了开发工作量。并且,在功能更新上线方面,低代码平台无需进行多次部署,进一步节省了部署所需的时间成本 。 - 减少人员投入,快速降低成本
低代码平台打破技术门槛,使不掌握专业编程技能却熟知业务流程的人员得以投身应用开发。他们凭借对业务的深刻理解,借助低代码平台直观的操作模式,无需精通复杂编程语言与开发工具,就能依据自身业务需求创建应用,有力推动了业务与技术的深度融合。这一过程中,企业对开发人员、需求人员以及售前人员的投入大幅减少,人力成本得以迅速降低。 - 满足客户想要一次购买,多场景使用的幻想;
在数字化浪潮中,客户渴望软件“一次购买,多场景使用”,低代码平台正中下怀,完美契合客户需求。
低代码平台之所以火爆,在于精准击中老板与客户痛点。对企业老板而言,借助低代码平台可减少开发、需求人员投入,削减企业最大开支——人力成本。从客户角度出发,其期望拥有一套能自行操作、终身使用且无需持续投入成本的系统,低代码平台恰好满足,这也注定了它的迅速崛起 。
3. 低代码的硬伤
在实际应用里,低代码平台确实能简化部分开发流程,当然这里只针对相对简单、固定的客户需求。当面对的业务需求变得复杂时,其局限性就会迅速凸显出来。
- 用户个性化需求与低代码难以扩展之间的矛盾
低代码的特性注定了低代码不可能做到传统代码开发的灵活性、可扩展性,因此对于客户复杂且高度定制化的应用开发需求,低代码平台存在明显短板,难以提供充足的灵活性与强大功能支撑。以定制化需求开发为例,低代码需在既有框架上调整,过程中要全面考量对全局的影响,这使得开发难度与复杂程度远超传统代码开发,进而导致成本快速攀升 。 - 降低成本与项目维护之间的矛盾
低代码平台在降低成本与项目维护之间存在显著矛盾。要打造一个运行良好的低代码平台,对设计人员的技术积累要求极高,需具备丰富经验。而在后续的功能扩展、故障排除以及性能调优等关键环节,普通开发者往往力不从心,这就需要投入更高的人力成本。一旦前期设计存在缺陷,后续扩展维护又不到位,项目便会逐渐陷入混乱,沦为难以收拾的“屎山”,严重影响项目的可持续性与应用效果,最终导致平台和项目烂尾 。 - 操作简单与需求灵活之间的矛盾
低代码平台诞生的初衷,是让毫无开发经验的普通人员也能开发应用。从用户视角出发,他们自然希望系统简单,最好无需复杂学习就能上手开发。然而,简单操作难以满足灵活需求。灵活需求涉及复杂业务流程定制、独特交互设计等,需深入代码编写、精细架构搭建,绝非简单操作低代码平台的既定模板、有限组件就能实现,两者间存在难以跨越的屏障。
而且,低代码平台开发出的产品在性能优化、与现有系统集成等方面也存在诸多问题。从我的经验来看,低代码平台很难达到领导预期的效果,注定难以成功。
4. form follows function
至少我想不出成功的例子,哪一个受欢迎的应用程序是用低代码工具生成的。
阮一峰说:这十几年,一批批程序员前仆后继,去搞低代码编程(包括无代码编程)。光在我身边,就有三四批。
这个想法很好,确实很多人需要,尤其不懂编程的人,这简直是生成程序的唯一可用方式。
但是很奇怪,他们无一例外都失败了,开发出来的低代码工具,开始还有一些好奇的用户,很快就不来了,用户越来越少,后来即使开源了,也没人用。
更奇怪的是,这似乎不是偶然现象,业界所有的低代码工具好像都不成功,至少我想不出成功的例子,哪一个受欢迎的应用程序是用低代码工具生成的。
直到上周,我读到一篇文章《Visual programming is stuck on the form》,才恍然大悟,低代码编程有先天缺陷,恐怕不会成功。
文章说,优秀的作品都是形式(form)和功能(function)的统一。形式必须服从功能,功能决定了形式,英文叫做”form follows function”。
对于优秀的程序员,只要弄清楚了底层,UI(用户界面)就会显而易见。
低代码编程的问题在于,它是先有 UI(形式),再有代码(功能)。
用户先拖拉生成 UI,系统再根据 UI 生成代码。这是本末倒置,让底层代码适配 UI,注定了两者都有问题:UI 是空想出来的,代码为了适配 UI,注定冗余和低效。
所以,优秀的软件不可能用这种方式生成,低代码编程不会成功。
以上,是阮一峰在文章里描述的原因,低代码平台是一种本末倒置的开发方式。
5. 以有限的功能实现无限的需求,注定失败
低代码平台要实现良好运行,依赖两个基础条件:
一是构建功能简单的系统,比如能快速生成类似原型软件的领导驾驶舱大屏这类应用;
二是在持续的需求迭代过程中,将需求有效把控在合理范畴,然而这在实际操作中难度极大。
面对用户五花八门的需求,传统编码方式有时都难以招架,低代码平台以有限功能应对无限需求,且复杂程度更高,更是注定失败。
尽管在当下经济形势下,低代码依然深受科技公司老板和数字化系统客户追捧,可这种追求最终只会以失败告终,造成资源浪费。