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