駁“低代碼開(kāi)發(fā)取代程序員”論 為什么專(zhuān)業(yè)開(kāi)發(fā)者也需要低代碼?
低代碼又火了。
近幾年,騰訊、阿里、百度等互聯(lián)網(wǎng)大廠紛紛入局,國(guó)內(nèi)外低代碼平臺(tái)融資動(dòng)輒數(shù)千萬(wàn)甚至數(shù)億,以及伴隨著熱度而來(lái)的巨大爭(zhēng)議……無(wú)不說(shuō)明“低代碼”的火爆。
事實(shí)上,低代碼并非新概念,它可以追溯到上世紀(jì)80年代的“第四代編程語(yǔ)言”。2014年,F(xiàn)orrester正式提出低代碼的概念。低代碼是一種軟件開(kāi)發(fā)技術(shù),衍生于軟件開(kāi)發(fā)的高級(jí)語(yǔ)言, 讓使用者通過(guò)可視化的方式,以更少的編碼,更快速地構(gòu)建和交付應(yīng)用軟件,全方位降低軟件的開(kāi)發(fā)成本 。與傳統(tǒng)軟件開(kāi)發(fā)方式相比,低代碼開(kāi)發(fā)平臺(tái)整合了軟件開(kāi)發(fā)和部署所需的 IDE(集成開(kāi)發(fā)環(huán)境)、服務(wù)器和數(shù)據(jù)庫(kù)管理工具,覆蓋軟件開(kāi)發(fā)的全生命周期,我們可以將其理解為 Visual Studio + IIS + SQL Management Studio(.NET 技 術(shù))或 Eclipse + Tomcat + MySQL Workbench(Java 技術(shù))的組合。
編碼更少、交付更快、成本更低,還覆蓋軟件開(kāi)發(fā)全生命周期,怎么看低代碼都可以說(shuō)是不錯(cuò)的軟件開(kāi)發(fā)工具。那么,它又為什么引發(fā)爭(zhēng)議,甚至被其主要用戶群體之一——程序員所詬病呢?“低代碼開(kāi)發(fā)會(huì)取代程序員” 這一觀點(diǎn)大行其是,它說(shuō)得對(duì)嗎?
為什么低代碼引起專(zhuān)業(yè)開(kāi)發(fā)者的反感?
技術(shù)浪潮引發(fā)巨大變革,也帶來(lái)了無(wú)數(shù)“取代論”,比如機(jī)器翻譯是否取代人類(lèi)翻譯、機(jī)器人記者是否取代人類(lèi)記者,以及低代碼開(kāi)發(fā)是否取代程序員。
低代碼雖然火爆,但程序員對(duì)此抱有不同的心態(tài):
- 輕視:低代碼技術(shù)的諸多優(yōu)勢(shì)只是炒作,該技術(shù)更適合初學(xué)者,解決不了復(fù)雜的技術(shù)問(wèn)題;
- 恐懼:擔(dān)心被低代碼取代;
- 抵觸:低代碼開(kāi)發(fā)平臺(tái)能夠覆蓋所有需求嗎;大量封裝組件使得低代碼開(kāi)發(fā)平臺(tái)更像一個(gè)黑盒子,可能導(dǎo)致難以debug、難以修改和迭代升級(jí)等技術(shù)問(wèn)題;低代碼開(kāi)發(fā)平臺(tái)配置有大量組件,簡(jiǎn)單的拖拉拽動(dòng)作即可完成大量開(kāi)發(fā)工作,程序員不再需要厲害的技術(shù)能力。
那么,上述理由真的站得住腳嗎?我們一一來(lái)看。
低代碼的門(mén)檻真的低嗎?
低代碼開(kāi)發(fā)過(guò)程常被比作拼積木:像拼搭積木一樣,以可視化的方式,通過(guò)拖拉拽組件快速開(kāi)發(fā)出數(shù)據(jù)填報(bào)、流程審批等應(yīng)用程序,滿足企業(yè)里比較簡(jiǎn)單的辦公需求。
但這并不意味著低代碼開(kāi)發(fā)平臺(tái)只能做到這些。
Gartner在2020年9月發(fā)布的《企業(yè)級(jí)低代碼開(kāi)發(fā)平臺(tái)的關(guān)鍵能力報(bào)告》(Critical Capabilities for Enterprise Low-Code Application Platforms)中,列舉了低代碼的11項(xiàng)關(guān)鍵能力。
圖源: https://www.gartner.com/en/do...
這里我們著重來(lái)看其中三項(xiàng)關(guān)鍵能力。
- 數(shù)據(jù)建模和管理:該指標(biāo)就是通常所講的“ 模型驅(qū)動(dòng) ”。相比于表單驅(qū)動(dòng),模型驅(qū)動(dòng)能夠提供滿足數(shù)據(jù)庫(kù)設(shè)計(jì)范式的數(shù)據(jù)模型設(shè)計(jì)和管理能力。開(kāi)發(fā)的應(yīng)用復(fù)雜度越高,系統(tǒng)集成的要求越高,這個(gè)能力就越關(guān)鍵。
- 流程和業(yè)務(wù)邏輯: 流程應(yīng)用與業(yè)務(wù)邏輯開(kāi)發(fā)能力和效率 。這個(gè)能力有兩層,第一層是指使用該低代碼開(kāi)發(fā)平臺(tái)能否開(kāi)發(fā)出復(fù)雜的工作流和業(yè)務(wù)處理邏輯;第二層是開(kāi)發(fā)這些功能時(shí)的便利性和易用性程度有多高。
- 接口和集成: 編程接口與系統(tǒng)集成能力 。為了避免“數(shù)據(jù)孤島”現(xiàn)象,企業(yè)級(jí)應(yīng)用通常需要與其他系統(tǒng)進(jìn)行集成,協(xié)同增效。此時(shí),內(nèi)置的集成能力和編程接口就變得至關(guān)重要。除非確認(rèn)可預(yù)期的未來(lái)中,項(xiàng)目不涉及系統(tǒng)集成和擴(kuò)展開(kāi)發(fā),開(kāi)發(fā)者都應(yīng)該關(guān)注這個(gè)能力。
這些關(guān)鍵能力表明 低代碼平臺(tái)在建模與邏輯方面具備較強(qiáng)的能力,而接口和集成能力可使專(zhuān)業(yè)開(kāi)發(fā)人員完成低代碼無(wú)法實(shí)現(xiàn)的部分,通過(guò)低代碼與專(zhuān)業(yè)代碼開(kāi)發(fā)的協(xié)作實(shí)現(xiàn)復(fù)雜應(yīng)用的開(kāi)發(fā) 。在涉及高價(jià)值或復(fù)雜的核心業(yè)務(wù)時(shí),專(zhuān)業(yè)開(kāi)發(fā)人員需要理解業(yè)務(wù)需求,厘清業(yè)務(wù)邏輯。從這個(gè)層面上看,低代碼開(kāi)發(fā)的門(mén)檻并不低。事實(shí)也是如此:海比研究在《2021 年中國(guó)低代碼/無(wú)代碼市場(chǎng)研究報(bào)告》中提到,截至 2020 年底,技術(shù)人員在低代碼使用者中的比例超 75%,占主體地位。
低代碼什么都能做嗎?
程序員的工作圍繞開(kāi)發(fā)需求展開(kāi)。在選擇開(kāi)發(fā)工具時(shí),程序員通??紤]的首要問(wèn)題是:這款工具能否覆蓋所有需求?如果需求增加或變更,該工具是否支持相關(guān)操作?這些問(wèn)題同樣適用于低代碼平臺(tái)的選型。
在實(shí)際項(xiàng)目交付過(guò)程中,如果我們僅可以滿足99%的需求,另外1%的需求滿足不了,那么真實(shí)用戶大概率是不會(huì)買(mǎi)單的。因此,在評(píng)估低代碼產(chǎn)品的時(shí)候,我們一定要保證該平臺(tái)可以支撐所有系統(tǒng)模塊類(lèi)型的開(kāi)發(fā),同時(shí)也要具備足夠的擴(kuò)展性,確保使用純代碼開(kāi)發(fā)出的模塊能夠與低代碼模塊進(jìn)行無(wú)縫集成,而這離不開(kāi)編程接口。
以國(guó)內(nèi)主流低代碼開(kāi)發(fā)平臺(tái)活字格為例。該平臺(tái)提供開(kāi)箱即用的開(kāi)發(fā)組件,同時(shí)為系統(tǒng)的各個(gè)分層均提供編程擴(kuò)展能力,以滿足企業(yè)級(jí)應(yīng)用開(kāi)發(fā)對(duì)擴(kuò)展性的高要求。借助分層編程接口,開(kāi)發(fā)者可以用純代碼的方式實(shí)現(xiàn)新增功能,無(wú)需受限于低代碼開(kāi)發(fā)平臺(tái)的版本和現(xiàn)有功能。
圖示:活字格的編程擴(kuò)展能力
當(dāng)然,就具體應(yīng)用領(lǐng)域而言,低代碼開(kāi)發(fā)平臺(tái)也有其擅長(zhǎng)和不擅長(zhǎng)的地方。目前,低代碼開(kāi)發(fā)更多地被應(yīng)用于2B企業(yè)應(yīng)用開(kāi)發(fā),而對(duì)于用戶量特大的頭部互聯(lián)網(wǎng)應(yīng)用、對(duì)算法和復(fù)雜數(shù)據(jù)結(jié)構(gòu)要求較高的應(yīng)用,低代碼平臺(tái)則不太適合。
低代碼開(kāi)發(fā)不可控?
“低代碼開(kāi)發(fā)平臺(tái)是個(gè)黑盒子,內(nèi)部出問(wèn)題無(wú)法排查和解決。開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)有問(wèn)題怎么辦?迭代升級(jí)難以實(shí)現(xiàn)怎么辦?”很多程序員會(huì)有這種疑惑。
但我們需要注意的是, 低代碼開(kāi)發(fā)平臺(tái)本質(zhì)上仍是軟件開(kāi)發(fā)工具 ,用戶模型與軟件開(kāi)發(fā)周期支持是其關(guān)鍵能力之一。也就是說(shuō),成熟的低代碼開(kāi)發(fā)平臺(tái)具備軟件開(kāi)發(fā)全生命周期所需的各項(xiàng)功能,從而大大簡(jiǎn)化開(kāi)發(fā)者的技術(shù)棧,進(jìn)一步提高開(kāi)發(fā)效率。
具體而言,在面對(duì)頻繁的需求變更、棘手的問(wèn)題排查時(shí),低代碼開(kāi)發(fā)平臺(tái)引入了版本管理機(jī)制,從而更高效地進(jìn)行代碼審查、版本管理與協(xié)調(diào),以及軟件的迭代升級(jí)。至于debug,日志分析無(wú)疑是個(gè)好辦法。例如,活字格把執(zhí)行過(guò)程及細(xì)節(jié)以日志方式輸出,方便程序員高效debug。
對(duì)程序員而言,低代碼平臺(tái)是限制還是助力?
“低代碼”意味著更少的代碼。代碼都不怎么寫(xiě)了,程序員又該怎么成長(zhǎng),怎么獲得職業(yè)成就感呢?
其實(shí)不然。
首先,開(kāi)發(fā) ≠ 寫(xiě)代碼。低代碼平臺(tái)可以減少大量重復(fù)工作,提升開(kāi)發(fā)效率,把專(zhuān)業(yè)開(kāi)發(fā)人員從簡(jiǎn)單、重復(fù)的開(kāi)發(fā)需求中解放出來(lái),把精力投入到更有價(jià)值的事情上,比如精進(jìn)技術(shù)、理清業(yè)務(wù)邏輯。
其次,低代碼平臺(tái)的組件化和拖拽式配置降低了開(kāi)發(fā)門(mén)檻,新手程序員能夠借助此類(lèi)平臺(tái)快速入門(mén),加速升級(jí)打怪;有經(jīng)驗(yàn)的程序員也有機(jī)會(huì)參與更多項(xiàng)目,甚至帶團(tuán)隊(duì),積累更多經(jīng)驗(yàn)值,實(shí)現(xiàn)快速成長(zhǎng)。
結(jié)語(yǔ)
當(dāng)迷霧散盡,低代碼開(kāi)發(fā)平臺(tái)重新露出高效率開(kāi)發(fā)工具的本色時(shí),你會(huì)選擇它嗎?