最近我在技术圈子里看到一个有趣的话题:“为什么程序员都讨厌低代码?”
很多人对这个问题可能有点疑惑:“低代码不是号称能提升开发效率,节省时间吗?为什么程序员反而不买账呢?”
说到这个,我就想起了那本经典的《人月神话》,这本书里有一句名言:“没有银弹。”意思是,软件开发中不存在可以让开发效率提升10倍的“万能武器”。这句话放到今天依然适用,即便已经过了五十多年,无论从汇编到C语言,还是到后来的面向对象编程、各种框架和低代码工具,大家都在努力降低开发中的复杂性,但谁也没能搞出一个所谓的“银弹”。
为啥?低代码为啥不行?
我们得先搞明白开发中的两种复杂性——本质复杂性和附加复杂性。
本质复杂性指的是业务本身的复杂度,比如电商平台上的各种优惠规则、库存管理的逻辑,这些都是业务要求带来的。这种复杂性不是因为你用的编程语言太难造成的,而是因为现实世界本来就这么复杂!
附加复杂性呢?是指因为开发工具、语言、框架等技术带来的复杂性,比如用Java写个“Hello World”得折腾半天,配环境、装IDE、建工程、写代码、运行——这都是附加复杂性。
低代码宣称自己能把这些步骤简化到极致,甩给你一堆现成的组件,一拖一拽就能开发应用。听起来是不是美滋滋?
但问题来了:附加复杂性在整体开发中的比例远没有本质复杂性那么大。换句话说,就算你能把附加复杂性降到零,也没法让软件开发效率提升十倍。
简单打个比方:你想盖一座大楼,传统开发就是从地基到结构到外墙,一步一步砌出来;低代码呢?它就好像给你一堆乐高积木,“随便搭,随便拼!看,这个楼马上就起来了!”看似很爽对吧?但问题是,你能用乐高搭个20层的楼,但你真敢住进去吗?外表是楼,但架构稳定性、配套水电、楼层间的承重力……这些都没法保证。
再看现实中的“低代码”:
很多人觉得低代码是个新潮玩意儿,但我告诉你,真正用得最广泛的“低代码平台”早就存在了——
-
王者:PyTorch —— “低代码”的真正强者,它能让你快速上手深度学习模型开发,一行代码就能搞定卷积层、激活层、全连接层,但本质复杂度(理解深度学习原理、调参、数据清洗)它丝毫没帮你减轻。
-
史诗:数据库 —— 只要你学会了SQL语言,你能在一堆庞杂的数据中飞速查找、更新、操作,但设计数据库的范式、索引优化、事务隔离这些本质上的复杂性依然在。
-
传说:Word、Excel、PPT —— 不服气?你要搞个报表,Excel能帮你自动计算、筛选数据,点点鼠标就能生成各种统计图表,但数据分析的逻辑复杂性——什么数据该怎么处理、业务需求是什么——还是全靠你自己啊!
外行觉得低代码“万能”,内行哭笑不得
低代码只是“附加复杂性”的减法,本质复杂性还得靠脑袋
再说回正题,低代码确实能在一定程度上降低开发中的附加复杂性,适合做一些简单的表单管理、流程自动化的系统,但真要用它开发复杂的业务系统?
难!这些平台依赖现成的组件拼装,你要改改逻辑都得费老大劲儿,而业务复杂性一点没变,该面对的沟通、理解、梳理还是得程序员自己来。
很多非技术人员以为程序员讨厌低代码是因为“危及了饭碗”,但真相是,低代码把我们需要花心思解决的复杂问题当成了“拼拼图游戏”,这就让专业的人哭笑不得啊——如果这么简单,凭啥我们要写那么多年代码,理解那么多底层逻辑呢?
最后一句话送给想靠低代码做大项目的老板们:用低代码做个表单系统还行,想搞ERP、CRM这种复杂系统?我只能说——加油💪!不过,记得备好Excel 😜。