• 简中
    • 繁中
  • 注册
  • 查看作者
  • “行业毒瘤”低代码

    转载:本文来自微信公众号“InfoQ”(ID:infoqchina),作者:田晓旭,转载经授权发布。

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

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

    带住呢啲问题,InfoQ 采访‌ ThoughtWorks 中国区 CTO 徐昊,他表示低代码唔系一个新概念,而家也唔系低代码第一次引发业界讨论,以降低程序员门槛为目嘅嘅低代码从底层逻辑上就是唔通嘅,呢类低代码唔系风口,而是行业毒瘤。

    1、低代码并唔系新概念,每隔几年就会重新流行

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

    喺徐昊睇来,低代码并唔系一个新概念,每隔几年低代码就会卷土重来,喺业界引发热议。

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

    顺住计算机发展历史去睇低代码,我哋会发现每个阶段嘅低代码定义都系唔一样嘅。

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

    经过一段时间嘅发展,编程开始围绕数据来展开,噉样,业务人员能唔可以唔用写代码就生成自己嘅数据报表呢?这时,SQL 就出现咗,当年佢也被认为是“低代码”。

    根据历史规律,呢类“低代码”总系喺出现之后再慢慢演变成程序员嘅一个工具。

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

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

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

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

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

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

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

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

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

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

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

    3、点解我说低代码是行业毒瘤?

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

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

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

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

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

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

    据徐昊所知,某厂商嘅研发部想要上线一个低代码平台来提升研发效能,但是上线之后,发现团队没有办法使用低代码平台来接管成个业务,再加上上线时间好紧张,所以权衡之后,佢哋又采购‌另一个低代码平台,想要联合两个平台来解决问题,但现实是直到而家,佢哋仲喺度尝试点样将低代码平台成功应用到企业业务中。

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

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

    那么,被资本市场睇好系咪意味住低代码嘅未来值得期待呢?

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

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

    采访嘉宾:

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

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

    cantonese.live 足跡 粵字翻譯

    2021-04-29 15:35:12

  • 0
  • 0
  • 0
  • 165
  • 请登录之后再进行评论

    登录
  • 任务
  • 发布
  • 偏好设置
  • 单栏布局 侧栏位置: