近些年兴起的开发技术和工具层出不穷,低代码平台便是其中一种。
所谓低代码平台其实是一种无需编码或通过少量代码就可以快速生成应用程序的开发平台。通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序,其正式名称的确定不过是近几年的事情。
低代码凭借低门槛、高效率和易集成等特性,正在被越来越多的软件开发团队所青睐。Gartner早前预测,到2024年四分之三的大企业将会使用至少4种低代码开发平台,用于信息化应用开发。届时,65% 的应用开发将通过低代码完成。
看上去,低代码是一种颠覆性的技术,那么作为开发者,会不会被低代码所取代呢?
低代码平台是否是威胁
如果你是一名大龄程序员,面对低代码技术时,可能内心会有一种恐惧。试想一下,以后做项目的时候,即使非程序人员在经过一定的培训后(例如简单学习SQL),即可以使用一种低代码工具并投入开发过程中,那么开发者工作的价值可能就要大打折扣了。
这个想法是那么的真实,但是实际上经过一定的分析你就会发现,这在逻辑上其实是错误的,低代码开发平台永远不会取代程序员,也根本不打算取代程序员。低代码平台建立之初是为了减少程序员的工作负担,随着其进一步的成熟,代码量变得越来越少,功能也更加完善。但是有一点我们需要明白,低代码平台一般只做通用的基础功能,任何低代码平台在没有进行代码二次开发的情况下,对大型的复杂项目,很难做到个性化业务的全面支持,这是低代码平台永远需要程序员的原因。
低代码平台只是一款工具
在科幻片中,未来世界的人工智能会试图统治地球,身体里的软件能自主升级并征服人类。低代码平台是否也会像电影中那样,自己完成软件开发呢?就目前来说,答案当然是否定的。
未来软件的自我升级或许会实现,但现在来说,低代码平台还仅仅是一种辅助开发工具,和其他所有的工具一样,其价值源自于它的使用者。试想一下,如果大多数软件都能基于低代码平台进行开发,这就意味着企业可以随便雇佣一个非IT人员进行相关系统的开发,但是也仅仅局限于拖拽出基础的功能,如果没有必要的软件基础知识,进一步的拓展就无法做到,低代码平台的价值也就大打折扣。
与市场上所标榜的无代码工具不同,低代码开发平台的扩展性要更强。无代码工具是在已有的开发功能中做选择,进行有限的DIY;低代码开发平台是利用平台基础组件进行整合,并对不能满足要求的组件进行二次开发,最终以较低的代码量开发出复杂的业务系统。
在这里,最重要的就是开发者对软件、计算机架构、数据库、Web端等的基本原理的理解,专业的知识储备能够更好地提升工作效率,进行开发优化,避免走弯路,这是非专业人员所不能达到的。所以,非专业开发者能够使用低代码开发平台或许能够构建出面对特定场景的简单应用,但是,对于ERP、MES甚至以SAAS、微服务等为核心应用场景而生的更高价值的大型系统,依然是专业开发者的主舞台,低代码平台只是提供一种更高效率的手段罢了。
低代码是值得信赖的
通过以上我们可以明白,低代码平台并不会取代专业IT人员,相较于非专业开发者,专业IT人员依然有着很强的优势,但是当开发者初次去尝试了解低代码的时候,却各有疑虑。
面对这种所见即所得的开发模式,一种反应是“我的天啊,看看我能用这个以多快的速度开发出XXX!”另一种则是:“我不相信有人能用这个搞出YYY!”。
与第一种的乐观派不同,第二种的担忧也有其价值。因为当你与一些专业的开发者讨论低代码时,你会听到他们认为低代码开发平台可能是一个无法控制的“黑盒子”,这会给开发任务带来风险,如平台不稳定、开发过半遇到无法解决的问题等,首先,这种担忧可以理解,但却不尽合理。
低代码的技术栈并不特殊
首先,低代码开发平台是在开发者熟悉的技术栈上运行,就像这些技术栈一样,可能也经历了被认识、喜爱、鄙视并再次喜爱上的过程。比如力软低代码开发平台分别在.net和java平台各开发出一套系统,采用的均是其所在平台主流的开发技术,为了保持灵活性,采用分离式前端(vue),并支持Sqlserver、Mysql、Oracle等多种数据库。
这些主流技术栈保障了低代码开发平台自身的稳定性和可靠性,更重要的是,平台的编程接口也基于这些技术,所以,开发者可以将现有的服务器代码、SQL视图及存储过程、样式表等添加到使用低代码开发的项目中。那么这样来看,对稳定性、扩展性等担心就有点多余了。
低代码或许会降低资深程序员的成就感
到这里,失业的威胁,稳定性的担忧我们可以化解掉,那还剩下什么是可能让程序员不安的呢?对有些程序员来说,或许是失去挑战及成就感的担忧。
每当深夜下班,利用手中的技能完成一天的项目,或许还会回答StackOverflow、知乎或其他社区上的问题。就像现代炼金术一样,编码可以解决复杂的问题,甚至可以凭空构造产品,这项技能赋予自己力量和尊重,而低代码则有可能威胁到他们的地位。
毕竟,只需花费很少量时间来掌握软件工程知识,就能学会低代码开发。当低代码成为企业软件开发的首选工具后,专业开发者的威望很可能会随之降低。这些平台可以预先解决大多数复杂的问题,如负载平衡、资源分配、加密甚至界面交互等,这意味着使用低代码做开发的人在日常工作中需要克服的障碍和挑战会大大减少。不过相对于企业来说,低代码是为了解决更大的问题,那就是如何更快速地完成软件交付,这才是低代码的核心。
企业的快速发展需要实时信息化迭代
企业需要以一种能够匹配竞争对手、供应商和现代消费者稍纵即逝渴望的速度来进行变革。如今新的业务模式层出不穷,如果仍以传统模式对使用软件进行缓慢升级,企业发展可能会受到一定的限制。众所周知,传统的开发方式编写软件是一项艰巨且缓慢的任务,容易出现人为错误,通常来说,程序员编写代码的速度和他们出错的数量之间存在指数关系,写的越快,Bug越多。因此,更快地编码其实并不是一个可行的选择。
还有没有别的办法?
站在领导者的角度考虑这个问题,办法可能确实存在,但已经超出了编码本身。也许你正在企盼自己成为一个领导者,而不单是一个程序员,而要想成为领导者,就要超越自己的角色,看清大局。
这里的大局并不是 “解决复杂问题”或“重新考虑解决方案”,而是如何控制成本的情况下快速发布用户满意的产品。如果你不得不缓慢、费力、容易出错的工作,而有一种技术能够以同样成本获得快速、精确、准确的结果,我想你的选择是显而易见的。
所以,对程序员这份工作来说,最大的成就感应该源于其通过自己开发的软件让自己或他人的生活更加美好,而不是加班工作本身。所以你可能会希望拥有一个低代码库和无穷多的满意用户,也不愿抱着自己编写的专有源代码,以及一堆褒贬不一的评论。
原文.Stanley Idesis