为什么无代码画画图就能快速开发的工具软件注定要失败 - 世界架构师


每隔几年,人们都希望有一个简单的图形界面画画图就能开发会取代开发团队,业务专家可以快速轻松地创建出精美的有创意的表达方式,并将其无缝地投入生产,总有少数初创公司会接受这一挑战,而且他们大多都会失败。

为什么人们不断尝试将生命注入一个明显注定要失败的解决方案是一个有趣的问题,但一个更有用的问题是它注定要失败的原因,以及有哪些替代方案?

人们不断尝试创建画画驱动开发工具的原因有2个组成部分:

1. 首先,作为一名软件工程师,您将学会以某种视觉表现形式绘制您的想法;然后,必须将这些简单的流程图,UML图或高保真模型转换为计算机可以解释的代码。在设计阶段,过程感觉非常顺利,如果只有实际的编码可能是无摩擦的,您可以在相对较短的时间内搞清楚您的想法并产生很多价值。

2. 第二个原因是与开发人员合作可能令人沮丧。业务专家或产品经理经常不得不在“系统”可以做什么和不能做什么方面与程序员发生无休止的争论,或者由于一些无法预料的技术难题而不能满足需求,并成为项目达到最后期限为什么没有完成的借口。

这两个原因动机相遇时,一个商业理念诞生了:“让我们创建一个工具,使构建软件像绘制流程图一样简单!”

乍一看,这个想法很有价值。有足够多的任务示例过去非常难,但今天很简单,比如是建立网站的任务。12年前,建立和托管网站是一项严峻的工作,耗资数千人,需要许多专家。即使是小的文本更改也需要花费数周时间,而且成本很高。今天,您可以在几分钟内创建一个设计精美的网站。如果您擅长使用电子表格软件,那么如果您熟练使用电子表格软件,这将成为大多数入门级办公室工作的必要条件。

如果这种趋势成立,而且看起来确实如此,即使是普通高中的孩子也应该能够使用简单的“点击和拖动”界面构建下一个Netflix。

这是建立低代码平台的承诺
这些软件平台大多数都是从一些简单的基于流程图的界面开始的,它允许您将数据流或用户交互串联在一起。表示数据源的小块可以放到画布上并连接到软件。然后,理论上,您只需按一个按钮即可生成应用,报告或工具。看它就行了!

这让客户兴奋不已,准备开始用业务分析师替换所有昂贵的软件工程师,他们是业务流程图专家。

然而,有两个缺失的部分被方便地遗漏或忽略:第一个忽视了特别具体情况,您的低代码提供商要么通知您他们的工具不是针对您的特定用例,要么您被告知您必须使用他们非常友好的脚本语言自己构建自定义功能;另一个缺失的事实是视觉图是实际解决方案的粗略简化,它忽略了可能出错的事情或用简单线条捕获的所有细节。这些细节需要以准确和明确的方式清楚地表达出来。

突然之间,你发现自己正在寻找精通你所购买的特定低代码平台的程序员,这是一项非常艰巨的任务。

现实情况是,无论何时构建具有任何级别的自定义功能的软件,您将需要能够轻松编写代码的人。这些人更容易在代码中编写代码,而不是在编码时将某些图片混合代码中。这就是为什么低代码必然会失败的原因,当您需要在不适合现有工具的域中创建某些东西时,您已经进入了最终需要完成编程的域,并且在该域中,您需要一个编程语言,而不是绘图工具。

有什么选择?
自计算机时代开始以来,我们看到了与计算机通信方式的稳步发展,从打印机上编写的二进制程序到Python,Elixer和Rust等现代编程语言的爆炸式增长。正在发生的事情是语言本身变得越来越具有表现力和抽象性。这意味着一个想法和你需要编写的代码之间的距离在缩小,你需要越来越少的代码来表达这些想法。

编程,编码或软件工程现在仍然是清晰,完整地表达复杂思想的艺术。首先,提出这些想法,其次,这个表达方式,使得软件项目难以估计并且通常很难完成。

该文主要强调了细节对软件系统的重要性,其实画画图本身也是需要有设计思想的,不是随便画画就可以,需要用逻辑方式表达出来,UML等语言和现代语言Java等在表达路径上越来越一致了,它们其实都是逻辑表达语言。所以,画图UML模型驱动开发+代码细节=复杂的软件工程。