18年的时候,我第一次听到NCDP这个概念,当时只是稍做了一下了解,没怎么在意。但是发现这两年这个概念越来越火。
NCDP的全称是:No-code development platform。无代码开发平台。
乍一听这个名字挺厉害的,甚至不少人提出的问题是:以后是不是程序员要失业了?
其实我觉得这个名字噱头大于实际的意义。
的确,NCDP的出现,间接地看,恰好也符合我们国家供给侧改革的主基调。
因为很多互联网企业,在之前享受了人口红利带来的大量市场需求,对内部的降本提效并没有太多关注。而技术人员占据了互联网企业人工成本的大头。
其次,很多传统企业希望做数字化转型,但是组建一个完整的技术团队成本又太高。如果采购标准化的SAAS产品,又无法完全贴合自身的业务情况,必然有或多或少的工作场景无法被覆盖。
但是很多文章却因此提到程序员是不是因为NCDP而要失业了,我觉得就有点夸张了。
甚至有人还一本正经的喊出口号:中台之后,就是无代码编程。
这两个概念其实没什么联系,唯一算得上联系的估计就是都能降本提效吧。
不得不说,现在的NCDP产品的UI设计的都很不错,界面很漂亮,特效也很炫酷。但很多人只看到了展现层面很棒,却可能忽视了「流程」这个概念。
一个完整的系统是离不开流程的,这才是人与人之间通过软件高效协作的基础,单单只是信息的共享,并不够。
虽然目前的确有些无代码平台也有提供通过可视化界面设置流程的功能,但是这些流程更偏向简单的表单信息的流转而已。真实业务中会存在的不同表单之间的转换,拆分、合并等等复杂操作并无法很好地满足。
因为NCDP本质是一个「在给定范围内做事」的解决方案。如果要满足各种交错复杂的情况,对于基础组件的数量需求是指数级的提高。这个不可能仅仅由NCDP背后的开发团队来完成。
所以,单从实际的功能性上来说,不可能代替程序员。
我们再从程序员的价值这个角度来看看。
程序员的价值,仅仅是将业务逻辑翻译成编程语言,然后交给计算机去执行吗?
肯定认为不是。
程序员的核心工作不是coding而是「抽象」、「建模」,coding只是将这些信息通过编程语言传递给计算机去运算的媒介而已。比如,
- WMS系统是对现实中物流的建模。
- 电子商务网站是对现实中交易的建模。
- ……
哪怕再简单的应用程序,都需要完成抽象和建模这两个动作才能完成开发工作。
如果你认可这个观点,那么再来看“NCDP会不会代替程序员”这个问题就变成“NCDP能代替程序员进行抽象和建模吗?”。
我想答案是显而易见的。因为任何NCDP都不可能通过有限的模块、组件来表达现实中的所有事物。更何况,我们的世界还在快速发展。
我们可以再大胆想象一下,假如真的存在可以满足以上要求的NCDP,他会有多复杂?茫茫多的配置、组件。像不像你现在的软件系统里的配置和引用的二方库、三方库?
到时候学习NCDP的使用,就会类似于学习一门更高级的编程语言,就像从汇编到c++那样。只是门槛相对会低一些,就像汇编与C++的区别,但还是需要专业的人员来做。
所以,我宁愿认为以后NCDP是一种类似于当代办公人员会用excel一样的基础技能,可以用它来解决一些简单的问题,但它不至于代替程序员。
但是,作为程序员面对这样一股潮流袭来,也得作出一些改变。大致有三条路可以走。
第一条路,一定要更深入的掌握业务知识,成为一个懂业务的程序员。因为以CRUD为主的系统是最容易被业务人员用NCDP代替掉的。而如果你能成为某个开发团队中的业务专家,你自然可以胜任业务最复杂的工作。
第二条路,往技术底层走。与NCDP相似的LCDP(低代码开发平台)也在蓬勃发展,它的特点就在于针对未满足的场景允许通过额外的编码来自定义实现。但是届时的编程环境已经与现在不同,你通过编码所能掌握的范围有限,如何编写出高性能、稳定好的代码变得更加的重要。
另外,NCDP如果要继续发展可能会出现组件、项目模版生产者的岗位,为平台提供更加丰富的组件和模版。此时你也得对NCDP背后所用到的技术了如指掌才行。
最后一条路,你也可以进入到软件是非标准化的行业。比如,游戏行业。在那里找回你熟悉的编程感觉。
简而言之,未来做程序员的门槛又要提高了。
其实你仔细回想一下,你会发现NCDP提倡的软件开发方式早就在一些特定领域内出现了。比如,CMS系统。
甚至微软在20年前就推出了拖拉控件式的编程方式WinForm、Asp.Net,虽然一直没能成为主流。
如今的NCDP汹涌袭来,自然是有它的优势的。但是我们也不能忽略它背后可能会带来的新麻烦。
想象一下,以后每个人都可以都可以搭建应用,那么会不会导致更多的数据冗余和信息孤岛产生?而且冗余的数据如果没有及时同步带来的后果可想而知。
另外,如果不加以限制,通过NCDP搭建应用程序的数量会爆炸式增长,长期如何来维护?谁来维护?等等很多问题在等着我们。
好了,总结一下。
这篇呢Z哥和你聊对当下时髦的NCDP的看法。首先,我认为不管从功能性角度还是价值角度都不会代替程序员,当然以CRUD为主的软件肯定会受到影响。
以后NCDP最多会是像Excel那样的通用技能,每个人都会一些简单的使用方式,比如用来拉拉报表什么的。
但是,作为程序员我们还是要未雨绸缪一下,我能想到的应对这个潮流的道路有三条。
- 更深入的掌握业务知识
- 往技术底层走
- 进入到软件是非标准化的行业
希望对你有所启发。
不管怎样,“人人都是程序员”的时代即将来临,你准备好了吗?