代码开发的前景再诱人不过了。谁不想减少工作量?谁不想靠在座椅上,让机器收拾残局?毕竟,几十年来我们一直在告诉机器该怎么做。它们现在应该已经会做一两件事。
好消息是,越来越多的公司已经找到了方法来创建值得大肆宣传的“低代码”的软件包。有些方法非常棒,公司可能真的准备好了更大肆宣传的短语:无代码。实际上,软件栈已经被复杂的对话框、大大改进的拖放界面、更有弹性的数据库和更好的集成开发环境共同改变。只要加上一点所谓的人工智能(AI),就能达成交易。
我们都看过销售演示。点击几下鼠标后,整个堆栈就启动并运行了。再点击几下,就可以将其与本地LDAP集成在一起,这样办公室里的每个人都可以登录来完成工作。再点击几下,系统就开始输出报告和电子表格。对于那些很幸运仍然是工作流程一部分的人来说,这一切看起来就像魔法。
但是即使已经完成了良好的演示,代码运行顺畅,也有理由三思而后行。在靓丽的外表背后,有些问题无法通过点击一个简单的对话框就能解决。尽管交付低代码软件包的公司提供种种承诺,甚至提供不可否认的成功故事,我们有理由保持警惕。有些软件包并不如看上去那么好。以下是在面对低代码时需要保持谨慎的六个原因。
自动化让我们变得愚蠢
低代码的卖点是,计算机和自动化通过提供一种计算杠杆,使我们的智力成倍增长,从而使人类变得更聪明。也许吧。但您可能也注意到,随着人们越来越信任机器,我们有时会停止自行思考。如果算法说这么做是正确的,我们完全会跟着做。
不计其数的例子可以表明这种粗心大意会导致灾难。2016年,由于计算机故障让机场工作人员一头雾水,造成机场拥堵,多趟航班延误。据一家报纸报道,工作人员“不知道谁已经通过了(安检)门”。在过去,我们人类仍然有能力接管局面,比如说,在系统故障的情况下,把飞机降落在东河上。一旦我们开始过度依赖机器,特别是考虑到低代码的诱惑,我们还能在紧急情况下齐心协力吗?
大多数规则
低代码解决方案旨在满足大多数人。如果贵公司有点不一样,那么定制选项可能不够多。到头来,贵公司也会开始随波逐流,贵公司会变得更像别人。也许这并不重要,但是如果贵公司依赖有自己的特殊工作流、流程或方法,支持它的唯一方法就是编写自己的代码。
繁琐的东西积累
当我们人类编写代码时,自然做规定的最少工作,这惊人地高效。我们并不偷工减料,我们不会实现不必要的功能。低代码解决方案没有这种优势。它们被设计成一应俱全式,这在计算机代码中意味着库中充满了无穷无尽的if-then-else语句,用于测试网络中的每种偶然性。
低代码自然效率较低,因为它总是在测试和重新测试自己。毕竟,这种自动调整的能力是销售团队所推销的魔力。但它的效率也会比由熟悉业务的人编写的手工调整的代码低得多。也许这些多余的设置一开始没有那么糟糕,也许云计算公司会提供很多免费的积分。但最终,随着项目扩大规模,总要有人为这些额外的if-then-else循环买单。
机器偏见
尽管人工智能拥有令人敬畏的能力,但没有人真正知道它的模型中隐藏着多少偏见和不准确。低代码平台也有同样的问题。这不是一个新问题。被低代码平台取代的人类总是有很多偏见,这些偏见影响了他们开发的软件。只是数千年来,我们一直在与人类的偏见作斗争,我们已完善了许多成功对付偏见的系统。我们并不完美,但我们了解自身的一些缺点。
低代码系统是新的。我们刚开始了解它们如何犯细微或明显的错误。一旦我们克服了敬畏的感觉,不再自动地遵从神奇的算法,可能会开始找到一种方法来对付隐藏在里面的偏见。
可疑的改进
软件开发中有多少工作是关于处理分号和变量类型的?有多少时间花在了会议上,利益相关者要求您将按钮向左移动几个像素,并在背景色中添加更多的红色?
编写一些代码颇具挑战性,但大部分代码都是敷衍的。真正的工作在于应对人类。低代码版本的应用程序常常将库过程调用换成对话框,用于输入所需背景色的三种RGB色调。在方框中输入这些参数是否比编写出一行Java、Python或C++代码容易得多?
我们喜欢想象低代码对话框为我们节省了时间,但在许多情况下,它们只是为设计思维的相同心理工作流程提供了一个表象。花哨的低代码接口可能比研读文档、寻找过程调用的合适语法来得更高效,但常常不像您想象的那样可节省大量时间。
隐性成本
当低代码运行良好时,每个人都很高兴只需点击就行。但是当它运行不畅时,只有专业的程序员才能弄清楚。有时候,问题在于您需要做一些低代码系统并非旨在处理的非标准事情。有时候,您已经将系统逼到了出现故障或崩溃的地步。在任何情况下,只有知道如何编写真正代码的真正程序员才能找到解决方案。
低代码存在的问题是,它常常只解决简单的问题,比如语法。底层的一切仍然需要优秀程序员的技能,他们可以推理出我们再也见不到的所有隐藏机制。低代码系统仍然是软件,并且不可避免地需要有人说它们的语言,即字节、数组和数据结构的语言。