写点什么

为什么我说低代码是“行业毒瘤”?

2021 年 4 月 28 日

为什么我说低代码是“行业毒瘤”?

使用低代码平台写出来的代码既难以维护,又难以测试,同时它还给行业传递了非常不好的信号,“程序员的价值是不值钱的”,最终造成的结果就是一些不具备编程专业技能的人,使用极不趁手、效率低下的工具来做写代码的工作。这是非常危险的,这类低代码工具就是行业毒瘤!


近段时间,低代码在市场中获得了前所未有的热度,很多投资机构都做了相关的分析与预测。Gartner 预测:到 2025 年,70% 的新应用将由低代码 / 无代码技术完成开发。那么,低代码真的是新风口吗?它真的可以提升效率吗?


带着这些问题,InfoQ 采访了 ThoughtWorks 中国区 CTO 徐昊,他表示低代码不是一个新概念,现在也不是低代码第一次引发业界讨论,以降低程序员门槛为目的的低代码从底层逻辑上就是不通的,这类低代码不是风口,而是行业毒瘤。

低代码并不是新概念,每隔几年就会重新流行


什么是低代码呢?2014 年,Forrester Research 研究机构正式提出了低代码的定义,即利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署的一种技术和工具。通俗一点理解,在程序员实现功能的过程中,只使用了很少的代码,或者是通过拼接的方式来完成,比如我们在 Excel 中输入公式,完成相应计算,这也可以算是低代码的一种。


在徐昊看来,低代码并不是一个新概念,每隔几年低代码就会卷土重来,在业界引发热议。


伴随着计算机产生的历史,“程序员”有一个圣杯性的使命——让计算机彻底工具化。不要只是让专业人员来操控计算机,要让一些没有编程训练、不是计算机专业的人也可以使用计算机完成相应的工作。


顺着计算机发展历史去看低代码,我们会发现每个阶段的低代码定义都是不一样的。


最开始,我们是使用机器码来编程的,FORTRAN 编程语言出现之后,我们就可以使用高级编程语言去编程,不用再操控机器。那么,与操控机器对比,FORTRAN 中的数学表达式就是“低代码”。


经过一段时间的发展,编程开始围绕数据来展开,那么,业务人员能不能不用写代码就生成自己的数据报表呢?这时,SQL 就出现了,当年它也被认为是“低代码”。


根据历史规律,这类“低代码”总是在出现之后再慢慢演变成程序员的一个工具。


这次,低代码能够流行的一个背景是微服务的发展。微服务的理念是把企业中复杂度高的应用拆解成多个微服务,然后通过更简单、更低成本的方式把已存在的微服务串联起来,形成新的功能。那么,企业在进行微服务改造的时候,心中存的念想就是可以降低新功能研发和创新的成本。当企业的微服务改造都基本完成之后,通过“低代码”的开发模式将它们串联成新功能,似乎是合理的选择。

以降低程序员门槛为目的的低代码是最没用的


低代码领域目前没有特别明确的类别划分依据,各家研究机构和企业都有自己的划分标准。在徐昊看来,低代码可以粗粒度地分为三类。


第一类低代码是我们常说的脚本化,类似于在 Excel 中使用宏,通常是围绕一个特定的产品或生态去形成脚本化的环境。以 Salesforce 为例,每家公司的销售流程都会有差异,即使是再优秀的 SaaS 服务或产品都只能覆盖 80% 以上的功能,剩下一些需求还是要定制化。而这些定制化的需求往往是轻量级的,因此,SaaS 或 PaaS 平台通过低代码工具就可以实现这些需求。


其实,脚本化在行业中已经存在很多了,基本上所有做产品的公司都有脚本化的需求,主体功能不变,通过一个轻量的脚本语言在上面去做定制化需求。最典型的例子 JavaScript,JavaScript 出现时的平台产品是浏览器,通过一个脚本语言去完成浏览器上的一些额外功能,但是现在很少有人会把使用 JavaScript 叫做低代码。从某种程度上来讲,这类低代码产品最终会演变成程序员的工作,甚至引发新一类程序员的出现,而它本身则从低代码退化成为真正的代码。


第二类是我们希望看到的低代码,但是可能没有商业前景。目前企业内部仍然存在大量的人工操作和流程。这些操作或流程可能都有特殊之处,如果把它们自动化,就可以把大量的人力从繁琐的工作中解放出来。


但是企业很难关注这些流程,再加上想要自动化这些工作是很难的。不过我们会发现,在行业中出现了很多针对个人工作流的自动化工具,比如苹果的 automator, 昙花一现的 IFTTT,甚至更早的 yahoo pipes。这种简单的个人流程自动化低代码,通常是根据屏幕上发生的事情来触发,或者根据绘制的简单流程完成业务自动化的操作。


服务于个人生产力的低代码,既不会对行业造成影响,同时又有很明确的市场需求,但由于不赚钱,进入这个领域的人非常少。


第三类是现在常见的以降低程序员门槛为目的,想要说服企业使用便宜的人力成本去干活的低代码平台。在它们的宣传语中甚至会强调自己不只是低代码,而是无代码。


这类低代码其实就是之前出现过的使用表单去绘制工作流,然后在工作流程的每个节点上配上表、企业流程和 OA。


徐昊表示:“这类代码其实是最没有用的,它给行业传达了非常不好的信号——程序员的价值是不值钱的,它尝试说服企业的理由永远是程序员那么贵,使用我的工具,就可以使用更便宜的程序员了。事实上,这些能够实现的功能非常有限,甚至会导致很严重的结果,让一些不具备专业技能的人,使用极不趁手、效率低下的工具,来干写代码的工作。这是非常危险的,这样写出来的代码既难以维护,又难以测试,这一类的工具低代码平台是行业毒瘤。”

为什么我说低代码是行业毒瘤?


徐昊认为以降低程序员门槛为目的的低代码是行业毒瘤,但有意思的是,这类低代码平台在资本上是最受追捧的,因为它能讲出很美好的故事。原本企业需要花很多费用来雇佣程序员,而使用低代码工具就可以节约这部分成本。但仔细思考,就会发现这个故事的内在逻辑是有问题的。问题出在哪里呢?


第一,低代码平台预设的使用人群永远是初级、入门的人


以图形化工作流为例,当你完全不会写代码时,通过拖拽工作流这种直观的方式可以实现相关代码。但开发者会成长,不会永远处在同样的位置,而低代码平台预设的使用群体永远是初级、入门的人。


以面向幼儿编程的编程语言 Scratch 为例,它将代码结构表达为图形化的模块,通过图形化的拖拽拼搭代码。在这种情况下,即使是不识字的小朋友也可以通过拖拽去实现相关功能。但是小朋友不会永远不识字,当他成长之后,就会发现打字的效率是要远高于拖拽。


第二,低代码平台暗藏巨大的变革成本


根据徐昊的观察,目前绝大多数低代码厂商提供的产品都尝试覆盖完整的软件生命周期。企业购买之后,开发者在平台上按照平台的规则来编程。所以,低代码平台看似售卖的是开发工具,实际上卖的是一种工作模式,企业研发团队需要改变原本的工作模式。这种变革的成本是非常巨大的。


据徐昊所知,某厂商的研发部想要上线一个低代码平台来提升研发效能,但是上线之后,发现团队没有办法使用低代码平台来接管整个业务,再加上上线时间很紧张,所以权衡之后,他们又采购了另一个低代码平台,想要联合两个平台来解决问题,但现实是直到现在,他们还在尝试如何将低代码平台成功应用到企业业务中。


第三,风口不代表长期发展,低代码其实是个伪需求


在投资市场中,低代码似乎已经成为了一个新风口,很多研究机构都对低代码的未来做了分析和预测。Infolob 研究显示,低代码应用程序保持着 40% 的年复合增长率,预计到 2022 年,低代码应用程序市场总规模将达 212 亿美元。研究机构 Gartner 则预测,2024 年应用软件开发活动当中的 65% 将通过低代码方式完成,同时 75% 的大型企业将使用至少四种低代码开发工具进行应用开发。


那么,被资本市场看好是否意味着低代码的未来值得期待呢?


徐昊表示:“风口和长期发展并不能完全划等号。资本市场的投资策略往往是宁可错投、不可错过,而作为行业从业者,我是从基础逻辑来判断一项技术的未来,即它对行业长期发展是否有帮助。”


“低代码的出现确实是有市场机遇的,现在程序员缺口很大,大家都在 996,加班干活,所以我们需要一个提升效能的工具。但你仔细思考,对于很多企业来说,这其实是个伪需求,低代码的定位不是帮助从业者提升效能,而帮助小白来入门行业。软件从业者的效率会低于一个没有入门的人吗?显然不可能,所以与其关注低代码,不如关注针对程序员本身是否有工具可以帮助他,能否将他的流程进行有效的自动化。”


采访嘉宾:


徐昊,ThoughtWorks 全球技术策略顾问、中国区 CTO 及首席咨询师。


自 2003 年起开始实践极限编程等敏捷方法,是 Agile China 和 BJUG(Beijing Java User Group)创始人,在 Scrum 和 FDD 等敏捷方法、敏捷交付和敏捷项目管理、IT 人员胜任力、大规模工程实践、以及组织认知模型等方面有着丰富经验。目前致力于构造高效 IT 组织的理论与实践,大规模团队敏捷实践和管理再造,以及企业级技术应用趋势和技术战略的研究等。

2021 年 4 月 28 日 15:3111343
用户头像
田晓旭 InfoQ 编辑

发布了 477 篇内容, 共 218.8 次阅读, 收获喜欢 1500 次。

关注

评论 26 条评论

发布
用户头像
我们都是手撸代码,各种“框架”是毒瘤;我们都是拼 SQL 语句,各种 ORM 是毒瘤;我们都是手写 JS,就连 JQuery 都是毒瘤;我们都是使用原生语言开发移动端,各种 Flutter/RN 是毒瘤。。。
2021 年 05 月 03 日 13:40
回复
用户头像
“人工智能并不是新概念,每隔几年就会重新流行。”
2021 年 05 月 03 日 13:32
回复
用户头像
这么一说,我更要努力学习毒瘤了
2021 年 05 月 03 日 11:38
回复
用户头像
能点评下 钉钉的宜搭吗
2021 年 05 月 01 日 20:36
回复
用户头像
低代码就好像以前做java的时候的二次开发,程序员搞的苦不堪言,也得不到任何成长,目测随着行业发展,初级程序员越来越多,中高级会越来越少,企业更难招到人,岂不是给我们大龄程序员带来更多的机会🌝
2021 年 05 月 01 日 10:48
回复
基数变大,人才怎么可能会越少
2021 年 05 月 01 日 18:03
回复
用户头像
钢铁侠设计战衣就是用低代码开发吧
2021 年 05 月 01 日 10:32
回复
用户头像
我们公司一直在做低代码,客观地说,低代码和试图化有点作用,就如同前面有同仁说的:一个项目80%简单的部分可以使用低代码解决,剩下20%得用高级语言解决。这80%主要是业务模型的定义,这块视图化,有助于开发人员和业务用户去讨论修改,这里我们称为业务模型化,剩下一部分是业务之间的简单关联,字段联系,外健也可以视图化,最后说说20%,这里一般就是批处理和长链路,这个任何宣称可以低代码解决的,我觉得都是忽悠,当然整个项目开发中最重要的是沟通已经全局观看项目开发,业务用户永远觉得添加些小功能很容易,低代码可能能快速实现,但是不从全局观上考虑,就会陷入深渊
2021 年 05 月 01 日 08:53
回复
用户头像
本文跟无远的观点很像,无远的初衷就是要帮助专业开发者提高开发速度,降低开发成本,而非完全不懂技术的门外汉,已经取得很大的成功!看案例:https://wuyuan.io/case 。这个过程是不是叫做”低代码“其实无所谓了,或者说当时都没有这样的概念,无远只想解决实际问题。真正的技术人员是绝对不可能被忽悠的,技术行不行一试便知,烧钱炒概念没有意义。
2021 年 04 月 30 日 21:02
回复
用户头像
私以为“低代码”更应该是一种软件开发要检查的原则和努力的目标。其本身的实践具备不同的代码的“低”度,从复用三方库,到调用三方服务,到配置式扩展,图形化的托拉拽,以及借助语音和AI技术自动生产代码,所需编写的代码越来越少,但需机器生成和执行的代码不一定减少,相反可能多得多。
“低代码”本身没有毛病。合理的场景加上合理的取舍应用其反映的是实际的软件生产力的切实提升。

但是俗话说得好“越缺什么,就越强调什么”。“低代码”是如此之好,为什么到现在还处于风口浪尖,成为当下的软件商业热词呢?!这恰恰反映了一个事实:当下成熟的低代码方案奇货可居,低代码方案远非一种普适性的大众商品。在许多业务领域此低代码都不是那么容易实现的目标,更不存在成熟并广泛可用的低代码解决方案,更不会是今后软件开发的标准。
我不反感"低代码",但反感那些将低代码包装成包治百病的方案,通过各种广告渠道搞病毒式营销的工具厂商。
同时,我感到更加恶心的是有一些把十几二十年轻的VB,PB,FoxPro这样的数据库CRUD软件开发平台包装成低代码平台来“挂羊头卖狗肉”的不齿行为。但凡认认真真写过几年代码,也不会膨胀到如此地步。

展开
2021 年 04 月 30 日 18:47
回复
用户头像
首先这个“低”就是鄙视,什么低?低级?你才配高级,人家都是低级,在你的平台里你的规则里活着?谁都不愿意受制于人,谁都想完全控制计算机,这样的风口我认为是无知的资本炒作形成的,成不了气候。
2021 年 04 月 30 日 15:39
回复
用户头像
用低代码甚至无代码的方式迅速解决80%场景里面的开发工作,剩下20%具备本质复杂度的问题留给传统代码的方式,两者结合才是正确用法。类似空军的J-20用于攻坚,耕地的活留给J-7,J-10,J-16.高低搭配,干活不累
2021 年 04 月 30 日 14:02
回复
用户头像
该评论已删除
2021 年 04 月 30 日 10:00
回复
你这玩意儿这么牛,咋不去做个中国的salesforces呢,市值千亿,何必来忽悠我们这些程序员,哦,忘记了,真正的程序员是没法被忽悠的,只要那些自称“码农”的才会被忽悠,因为他们自己的不对自己的手艺感到自豪。
2021 年 04 月 30 日 18:32
回复
Nemo回复ppcai
他说了啥?好奇...
2021 年 05 月 03 日 14:38
回复
用户头像
用“毒瘤”来评价显然有些过激了,低代码平台有其特定的价值,比如简单或中等复杂度的表单流程是可以通过低代码来提高效率的,另外即使使用低代码平台也并不代表不需要程序员,特定场景或需求还是需要程序员基于低代码平台来扩展。任何技术的发展都需要一个过程,我相信随着低代码平台越来越完善,其还是有一定的价值,至少在创新业务中可以通过低代码平台快速为企业搭建信息化系统,验证业务可行性,降低企业试错成本。
2021 年 04 月 30 日 09:55
回复
用户头像
确实是个伪命题,多少代码叫低代码?代码量是根据需求量和需求的复杂度来的,一不管应用复杂度,二不管应用质量,完全是哄人玩呢。搭一些小的临时的功能还行,要真正有实用性,没那么简单。
2021 年 04 月 30 日 09:04
回复
用户头像
我来一句话讲清楚。面向非专业人事的低代码是毒瘤,面向开发人员的是王道。
2021 年 04 月 30 日 08:38
回复
用户头像
不管怎么样,InfoQ应该多一些这样的内容,有观点,有碰撞,有思考。
2021 年 04 月 29 日 22:42
回复
用户头像
作者代表的利益团体是现有程序世界的既得利益者,因此,观点上自然也会有一定的倾向性。
1. 最核心的点:使用低代码平台的成本和是否真会提升开发效率?
用户不傻,自己会判断是否能提升效率,在很多场景下,用户都会亲自去测试如果采用低代码/无代码所带来的成本和收益;理论上,现代编程语言趋势就是“往上层抽象,越来越容易懂,并平衡开发效率和运行效率”。低代码/无代码本身的发展并不违背这个基本趋势。
个人认为,如果不具备语言形态的国内低代码,功能/场景限制比较大,顶多算是一个集成几个场景的SaaS。国内Salesforce(lightning App builder),Orocle Apex, Mendix,国内iVX, 都还是做的不错的,iVX已经具备无代码语言形态,可以看作加强版(企业版)作者提到的Scratch。
2. 软件/IT行业,包括开发过程确实还是存在很多问题:例如,大量中低端程序员打开发的大量中低端代码;传统企业/中小型企业/创业公司,对程序员“难招,难管”;程序员成本过于巨大,付了最多的钱,甚至不知道他们在什么。在某种程度上来说,程序员推动这个互联网发展,同时也成为发展的一大阻力。企业思考突破这一问题无可厚非,另外,这里确实是巨大商机;作为程序员自身,也想作者所说,希望可以完成这个圣杯,实现对自己的革命。
3. 作者说毒瘤太过了,苹果当年也是毒瘤~ 对旧体系的颠覆,即是机会,也有成本;3/4/5G也是一样~有没有机会核心还是看“能不能解决问题”
总结一下,看以下几个问题是否解决的好是关键:
A 开发快吗?提升1倍还是几倍效率?
B 能实现什么场景?是每一个场景就需要一套低代码产品吗?还是一个都可以解决?(语言形态)
C 学习快吗?需要多长时间掌握这个平台和产品,成本多少
D 运行效率如何?能和云一起用吗?可以导出部署吗?生成代码质量如何?
E 维护容易吗?效率如何,成本如何

也许大家把低代码/无代码看作一个“代码生成器”,就没有那么抵触了
展开
2021 年 04 月 29 日 13:27
回复
用户头像
其实低代码现象就好比现在留下的少儿编程,采用拖拽的方式让小孩实现编程,美其名曰这叫少儿编程,其实这和真正的编程差距太大了,这样误导只会让孩子产生更多的误解和偏差。因为程序开发本来就是学习工具然后创造出程序应用出来,现在却拿着成熟的产品再去创造产品,这个过程去学习编程?这将会导致中国的程序开发大部分人都停留在应用层,而不去深入研究程序开发背后的逻辑,硬件我们已经被美国限制了,现在连软件行业国人也在误入歧途,可悲,可悲啊!
2021 年 04 月 29 日 11:39
回复
逻辑是逻辑,语言是语言;低代码有它想要解决的问题,例如应用的快速开发!它并妨碍其他人去研究底层逻辑和操作系统。就像云计算有了,大家可能不用去研究底层网络实现和数据存储过程一样!未来工作场景和问题会不断细分,这个倒是没什么好担心的。研究底层难度大多给钱就好了~做应用快,需求大,成本会逐步降低。当然,应用开发的工程师可能收入也会有变化~
2021 年 04 月 29 日 12:55
回复
用户头像
“ThoughtWorks的基本业务是定制化软件开发以及其中采用的敏捷软件交付实践的咨询服务”。出发点决定观点。
2021 年 04 月 29 日 11:11
回复
如果低代码成了,对外包公司的影响会不会很大呢?
2021 年 04 月 29 日 11:15
回复
来活了,外包公司负责维护低代码,繁琐且没技术含量
2021 年 04 月 29 日 17:54
回复
外包公司干的活就是维护低代码屎山
2021 年 04 月 29 日 21:32
回复
加载更多
发现更多内容

太秀了!用Excel也能实现和Python数据分析一样的功能!

JackTian

Python 数据分析 Excel 2月春节不断更 实操案例

react代码切割之路由懒加载

前端小猪

React webpack

我看JAVA 之 String

awen

Java 源码 string

万字长文带你解读Redisson分布式锁的源码

鄙人薛某

Java redis 分布式锁 redisson

智慧党建APP开发,智慧党建平台的功能

13530558032

UI自动化测试框架_地图测试如何开展呢?

小小娃爱吃甜食

最佳实践 测试 测试落地

超大规模会议技术优化策略 轻松实现 500 人线上流畅沟通

融云 RongCloud

音视频会议 视频会议

基于matlab的控制系统与仿真5-simulink仿真模型

AXYZdong

matlab 2月春节不断更

全面开放!华为云GaussDB(for openGauss)正式商用发布

华为云开发者社区

数据 华为云 GaussDB 云数据库 GaussDB(for openGauss)

区块链数字版权平台--为内容版权保驾护航

13530558032

你是不是一个害怕失去,而拒绝开始的人?

SwiftHub

读书笔记 工作体会

Jira Software Data Center 可以免费使用高级路线图啦!

Atlassian

DevOps 敏捷 Atlassian Jira

程序员成长第十三篇:做好时间管理

石云升

时间管理 程序员成长 28天写作 2月春节不断更

双非本科生、非大厂,毕业一年,业余净收入20万

不脱发的程序猿

程序人生 28天写作 二月春节不断更 外包项目 程序员接私活

让 AI “潜入”物流中心,你的快递很快就到!

华为云开发者社区

华为 AI 数字化 物流 智慧物流

我看JAVA 之 Object & JNI

awen

Java jni Object

区块链溯源系统开发,区块链农产品质量安全追溯体系建设

WX13823153201

区块链溯源系统开发

区块链电子证照共享平台--基于区块链的电子证照存证

13530558032

入驻infoQ了

SwiftHub

平台写手

TcaplusDB祝您开工大吉

数据库爱好者

数据 TcaplusDB Tcaplus

开工大吉:TcaplusDB将持续为您提供可靠的数据服务

TcaplusDB

数据库 TcaplusDB Tcaplus

做好 IM/RTC 底层技术服务,帮助开发者打造自己的“Clubhouse”

融云 RongCloud

IM RTC clubhouse

一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理

华为云开发者社区

容灾 备份 GaussDB(DWS) 逻辑备份 Roach

跨越异构鸿沟,Redis 迁移同步过程中的挑战与解决方案

京东科技开发者

云计算 大数据

《你越迷茫,越要去闯》读书笔记

SwiftHub

读书笔记

理解RocketMQ

awen

RocketMQ 翻译 消息中间件

基于 Flink SQL 构建流批一体的 ETL 数据集成

Apache Flink

flink

多种多样的语音连麦方式

anyRTC开发者

flutter uni-app ios android WebRTC

MySQL COUNT(列名) 、COUNT(常量) 和 COUNT(*) 之间的区别

桃子

用Vue3构建企业级前端应用,TS能让你更轻松点

华为云开发者社区

Vue 前端 Vue3 ts 框架

日记 2021年2月26日(周五)

Changing Lin

2月春节不断更

为什么我说低代码是“行业毒瘤”?-InfoQ