NCDP會(huì)讓程序員失業(yè)?多慮了
18年的時(shí)候,我第一次聽(tīng)到NCDP這個(gè)概念,當(dāng)時(shí)只是稍做了一下了解,沒(méi)怎么在意。但是發(fā)現(xiàn)這兩年這個(gè)概念越來(lái)越火。
NCDP的全稱是:No-code development platform。無(wú)代碼開(kāi)發(fā)平臺(tái)。
乍一聽(tīng)這個(gè)名字挺厲害的,甚至不少人提出的問(wèn)題是:以后是不是程序員要失業(yè)了?
其實(shí)我覺(jué)得這個(gè)名字噱頭大于實(shí)際的意義。
的確,NCDP的出現(xiàn),間接地看,恰好也符合我們國(guó)家供給側(cè)改革的主基調(diào)。
因?yàn)楹芏嗷ヂ?lián)網(wǎng)企業(yè),在之前享受了人口紅利帶來(lái)的大量市場(chǎng)需求,對(duì)內(nèi)部的降本提效并沒(méi)有太多關(guān)注。而技術(shù)人員占據(jù)了互聯(lián)網(wǎng)企業(yè)人工成本的大頭。
其次,很多傳統(tǒng)企業(yè)希望做數(shù)字化轉(zhuǎn)型,但是組建一個(gè)完整的技術(shù)團(tuán)隊(duì)成本又太高。如果采購(gòu)標(biāo)準(zhǔn)化的SAAS產(chǎn)品,又無(wú)法完全貼合自身的業(yè)務(wù)情況,必然有或多或少的工作場(chǎng)景無(wú)法被覆蓋。
但是很多文章卻因此提到程序員是不是因?yàn)镹CDP而要失業(yè)了,我覺(jué)得就有點(diǎn)夸張了。
甚至有人還一本正經(jīng)的喊出口號(hào):中臺(tái)之后,就是無(wú)代碼編程。
這兩個(gè)概念其實(shí)沒(méi)什么聯(lián)系,唯一算得上聯(lián)系的估計(jì)就是都能降本提效吧。
不得不說(shuō),現(xiàn)在的NCDP產(chǎn)品的UI設(shè)計(jì)的都很不錯(cuò),界面很漂亮,特效也很炫酷。但很多人只看到了展現(xiàn)層面很棒,卻可能忽視了「流程」這個(gè)概念。
一個(gè)完整的系統(tǒng)是離不開(kāi)流程的,這才是人與人之間通過(guò)軟件高效協(xié)作的基礎(chǔ),單單只是信息的共享,并不夠。
雖然目前的確有些無(wú)代碼平臺(tái)也有提供通過(guò)可視化界面設(shè)置流程的功能,但是這些流程更偏向簡(jiǎn)單的表單信息的流轉(zhuǎn)而已。真實(shí)業(yè)務(wù)中會(huì)存在的不同表單之間的轉(zhuǎn)換,拆分、合并等等復(fù)雜操作并無(wú)法很好地滿足。
因?yàn)镹CDP本質(zhì)是一個(gè)「在給定范圍內(nèi)做事」的解決方案。如果要滿足各種交錯(cuò)復(fù)雜的情況,對(duì)于基礎(chǔ)組件的數(shù)量需求是指數(shù)級(jí)的提高。這個(gè)不可能僅僅由NCDP背后的開(kāi)發(fā)團(tuán)隊(duì)來(lái)完成。
所以,單從實(shí)際的功能性上來(lái)說(shuō),不可能代替程序員。
我們?cè)購(gòu)某绦騿T的價(jià)值這個(gè)角度來(lái)看看。
程序員的價(jià)值,僅僅是將業(yè)務(wù)邏輯翻譯成編程語(yǔ)言,然后交給計(jì)算機(jī)去執(zhí)行嗎?
肯定認(rèn)為不是。
程序員的核心工作不是coding而是「抽象」、「建模」,coding只是將這些信息通過(guò)編程語(yǔ)言傳遞給計(jì)算機(jī)去運(yùn)算的媒介而已。比如,
- WMS系統(tǒng)是對(duì)現(xiàn)實(shí)中物流的建模。
- 電子商務(wù)網(wǎng)站是對(duì)現(xiàn)實(shí)中交易的建模。
- ……
哪怕再簡(jiǎn)單的應(yīng)用程序,都需要完成抽象和建模這兩個(gè)動(dòng)作才能完成開(kāi)發(fā)工作。
如果你認(rèn)可這個(gè)觀點(diǎn),那么再來(lái)看“NCDP會(huì)不會(huì)代替程序員”這個(gè)問(wèn)題就變成“NCDP能代替程序員進(jìn)行抽象和建模嗎?”。
我想答案是顯而易見(jiàn)的。因?yàn)槿魏蜰CDP都不可能通過(guò)有限的模塊、組件來(lái)表達(dá)現(xiàn)實(shí)中的所有事物。更何況,我們的世界還在快速發(fā)展。
我們可以再大膽想象一下,假如真的存在可以滿足以上要求的NCDP,他會(huì)有多復(fù)雜?茫茫多的配置、組件。像不像你現(xiàn)在的軟件系統(tǒng)里的配置和引用的二方庫(kù)、三方庫(kù)?
到時(shí)候?qū)W習(xí)NCDP的使用,就會(huì)類似于學(xué)習(xí)一門更高級(jí)的編程語(yǔ)言,就像從匯編到c++那樣。只是門檻相對(duì)會(huì)低一些,就像匯編與C++的區(qū)別,但還是需要專業(yè)的人員來(lái)做。
所以,我寧愿認(rèn)為以后NCDP是一種類似于當(dāng)代辦公人員會(huì)用excel一樣的基礎(chǔ)技能,可以用它來(lái)解決一些簡(jiǎn)單的問(wèn)題,但它不至于代替程序員。
但是,作為程序員面對(duì)這樣一股潮流襲來(lái),也得作出一些改變。大致有三條路可以走。
第一條路,一定要更深入的掌握業(yè)務(wù)知識(shí),成為一個(gè)懂業(yè)務(wù)的程序員。因?yàn)橐訡RUD為主的系統(tǒng)是最容易被業(yè)務(wù)人員用NCDP代替掉的。而如果你能成為某個(gè)開(kāi)發(fā)團(tuán)隊(duì)中的業(yè)務(wù)專家,你自然可以勝任業(yè)務(wù)最復(fù)雜的工作。
第二條路,往技術(shù)底層走。與NCDP相似的LCDP(低代碼開(kāi)發(fā)平臺(tái))也在蓬勃發(fā)展,它的特點(diǎn)就在于針對(duì)未滿足的場(chǎng)景允許通過(guò)額外的編碼來(lái)自定義實(shí)現(xiàn)。但是屆時(shí)的編程環(huán)境已經(jīng)與現(xiàn)在不同,你通過(guò)編碼所能掌握的范圍有限,如何編寫出高性能、穩(wěn)定好的代碼變得更加的重要。
另外,NCDP如果要繼續(xù)發(fā)展可能會(huì)出現(xiàn)組件、項(xiàng)目模版生產(chǎn)者的崗位,為平臺(tái)提供更加豐富的組件和模版。此時(shí)你也得對(duì)NCDP背后所用到的技術(shù)了如指掌才行。
最后一條路,你也可以進(jìn)入到軟件是非標(biāo)準(zhǔn)化的行業(yè)。比如,游戲行業(yè)。在那里找回你熟悉的編程感覺(jué)。
簡(jiǎn)而言之,未來(lái)做程序員的門檻又要提高了。
其實(shí)你仔細(xì)回想一下,你會(huì)發(fā)現(xiàn)NCDP提倡的軟件開(kāi)發(fā)方式早就在一些特定領(lǐng)域內(nèi)出現(xiàn)了。比如,CMS系統(tǒng)。
甚至微軟在20年前就推出了拖拉控件式的編程方式WinForm、Asp.Net,雖然一直沒(méi)能成為主流。
如今的NCDP洶涌襲來(lái),自然是有它的優(yōu)勢(shì)的。但是我們也不能忽略它背后可能會(huì)帶來(lái)的新麻煩。
想象一下,以后每個(gè)人都可以都可以搭建應(yīng)用,那么會(huì)不會(huì)導(dǎo)致更多的數(shù)據(jù)冗余和信息孤島產(chǎn)生?而且冗余的數(shù)據(jù)如果沒(méi)有及時(shí)同步帶來(lái)的后果可想而知。
另外,如果不加以限制,通過(guò)NCDP搭建應(yīng)用程序的數(shù)量會(huì)爆炸式增長(zhǎng),長(zhǎng)期如何來(lái)維護(hù)?誰(shuí)來(lái)維護(hù)?等等很多問(wèn)題在等著我們。
好了,總結(jié)一下。
這篇呢Z哥和你聊對(duì)當(dāng)下時(shí)髦的NCDP的看法。首先,我認(rèn)為不管從功能性角度還是價(jià)值角度都不會(huì)代替程序員,當(dāng)然以CRUD為主的軟件肯定會(huì)受到影響。
以后NCDP最多會(huì)是像Excel那樣的通用技能,每個(gè)人都會(huì)一些簡(jiǎn)單的使用方式,比如用來(lái)拉拉報(bào)表什么的。
但是,作為程序員我們還是要未雨綢繆一下,我能想到的應(yīng)對(duì)這個(gè)潮流的道路有三條。
- 更深入的掌握業(yè)務(wù)知識(shí)
- 往技術(shù)底層走
- 進(jìn)入到軟件是非標(biāo)準(zhǔn)化的行業(yè)
希望對(duì)你有所啟發(fā)。
不管怎樣,“人人都是程序員”的時(shí)代即將來(lái)臨,你準(zhǔn)備好了嗎?