低代碼不是行業(yè)毒瘤,你才是(低代碼 行業(yè)毒瘤)
文/明道云創(chuàng)始人任向暉
著名的IT咨詢公司ThoughtWorks在中國(guó)有一名徐姓CTO。他曾經(jīng)在自己的視頻號(hào)上公開(kāi)攻擊低代碼市場(chǎng),列出的理由卻十分可笑。我看了全文后,相信這位CTO根本沒(méi)有動(dòng)手實(shí)踐過(guò),至少?zèng)]有全面研究過(guò),完全在望文生義,自我想象。
本來(lái)我也懶得回應(yīng)這種低劣的行業(yè)評(píng)論,可是世道險(xiǎn)惡,我心中的IT媒體圣地InfoQ居然在節(jié)前發(fā)表頭條文章《為什么我說(shuō)低代碼是“行業(yè)毒瘤”?》。
在科技行業(yè),各種技術(shù)熱點(diǎn)層出不窮,褒貶爭(zhēng)議也永遠(yuǎn)在起伏抑揚(yáng)??墒?,我從業(yè)二十多年,還沒(méi)看到過(guò)一個(gè)科技媒體用“毒瘤”這種詞匯來(lái)指責(zé)一個(gè)技術(shù)門類。我真不知道這位CTO從哪里來(lái)的憤慨?InfoQ出于什么動(dòng)機(jī)要將這種文章作為頭條發(fā)表?
情緒先放一下。我們先講道理。
低代碼預(yù)設(shè)的人群是初級(jí)和入門的人?
徐CTO認(rèn)為L(zhǎng)CAP產(chǎn)品是為入門程序員準(zhǔn)備的,程序員成長(zhǎng)了,就用不上了。甚至拿低代碼平臺(tái)和Scratch兒童編程來(lái)類比。這是對(duì)低代碼產(chǎn)品目標(biāo)的根本性誤解。
這一代的LCAP毅然決然地要面向程序員以外的人,尤其是有一定IT素養(yǎng)的業(yè)務(wù)人員。他們?cè)谄髽I(yè)組織中往往是業(yè)務(wù)流程設(shè)計(jì)和管理的骨干人員,但是為了實(shí)現(xiàn)數(shù)字化工具,他們不得不費(fèi)老大勁和開(kāi)發(fā)人員溝通需求。業(yè)務(wù)的Know- How并不能直接表達(dá)為軟件需求,所以為了溝通清楚一個(gè)IT系統(tǒng)的需求和標(biāo)準(zhǔn),不得不嘴上說(shuō)著,手上畫著,業(yè)務(wù)人員恨不得和開(kāi)發(fā)人員靈魂合體。
這個(gè)過(guò)程就是這么難。IT行業(yè)的人對(duì)行業(yè)需求一知半解,不知輕重。行業(yè)專家對(duì)軟件實(shí)現(xiàn)機(jī)制也是門外漢。能夠讓行業(yè)經(jīng)驗(yàn)和軟件技術(shù)成功融合的產(chǎn)品和項(xiàng)目實(shí)屬罕見(jiàn)。
盡管這么難,我依然看到很多傳統(tǒng)行業(yè)的人不知畏懼地投入,做出一個(gè)又一個(gè)專業(yè)度有限的軟件系統(tǒng)。這樣的系統(tǒng)往往缺陷率高,抽象水平低,擴(kuò)展性差。即便這樣,能夠做出一個(gè)可用的系統(tǒng)已經(jīng)屬于幸運(yùn)者。大部分定制開(kāi)發(fā)的系統(tǒng)都存在嚴(yán)重的可用性問(wèn)題,最終被束之高閣。我聽(tīng)到過(guò)很多次這樣的表述:"我們幾年前花XX萬(wàn)做了一個(gè)系統(tǒng),后來(lái)也用不下去…."。這種資源浪費(fèi)徐CTO想必是沒(méi)有感同身受的。
站在服務(wù)者的角度,有多少軟件開(kāi)發(fā)公司的工程師們被派去遙遠(yuǎn)的城市,在城鄉(xiāng)結(jié)合部從事外包駐場(chǎng)開(kāi)發(fā)。這些軟件工程師拿的薪水今天和農(nóng)民工幾乎一樣,是真正意義上的碼農(nóng)。他們?cè)诳蛻舻膱?chǎng)地,可不能像徐CTO那樣揮斥方遒,相反,他們要么在無(wú)盡地等待客戶領(lǐng)導(dǎo)的需求,要么就是頂著進(jìn)度的壓力挑燈夜戰(zhàn)。
你說(shuō)這樣的工作方式和產(chǎn)業(yè)現(xiàn)狀值得維護(hù)?你說(shuō)程序員在這樣的環(huán)境中能夠成長(zhǎng)?
我們不可能等待程序員成長(zhǎng),就算成長(zhǎng),數(shù)量也遠(yuǎn)遠(yuǎn)不夠。產(chǎn)業(yè)數(shù)字化唯一的解決方案就是讓信息系統(tǒng)的建設(shè)離開(kāi)對(duì)程序員的依賴,離開(kāi)對(duì)專業(yè)DevOps過(guò)程的依賴,讓更多的角色可以有效地參與進(jìn)來(lái)。這些角色包括行業(yè)內(nèi)的業(yè)務(wù)專家,運(yùn)營(yíng)和管理專家,軟件行業(yè)內(nèi)的產(chǎn)品經(jīng)理,項(xiàng)目經(jīng)理和實(shí)施專家。有了這些擴(kuò)充的參與者,企業(yè)數(shù)字化建設(shè)就會(huì)大幅加速。甚至,連質(zhì)量都遠(yuǎn)遠(yuǎn)高于傳統(tǒng)開(kāi)發(fā)模式。
第二,徐CTO認(rèn)為低代碼平臺(tái)暗含巨大的變革成本。他說(shuō)的對(duì),不過(guò)他說(shuō)的變革成本和我們面臨的不是一件事。他說(shuō)低代碼平臺(tái)改變了原有開(kāi)發(fā)過(guò)程中的工作方式,不僅沒(méi)有提高效率,反而增加了很多試錯(cuò)成本。而我認(rèn)為,真正的軟件開(kāi)發(fā)團(tuán)隊(duì)的工作方式不需要任何的變化。你們應(yīng)該繼續(xù)使用日新月異的技術(shù)棧從事原生軟件開(kāi)發(fā)。真正的LCAP不是為了去取代高級(jí)語(yǔ)言的。
企業(yè)應(yīng)用領(lǐng)域的LCAP到底取代的是什么呢?一句話 —— 那些模式高度一致的企業(yè)中后臺(tái)應(yīng)用。形象一點(diǎn)說(shuō),就是長(zhǎng)這個(gè)樣子的應(yīng)用:
是不是很眼熟?無(wú)論CRM,ERP,還是ERP,MES,這些軟件門類都是屬于企業(yè)中后臺(tái)應(yīng)用,它們都是圍繞關(guān)系數(shù)據(jù)庫(kù)而建立數(shù)據(jù)管理和工作流程。實(shí)際上,企業(yè)應(yīng)用中90%以上的應(yīng)用都是這個(gè)模型,業(yè)內(nèi)稱為CRUD(數(shù)據(jù)增刪查改)應(yīng)用。正是因?yàn)槟J缴系囊恢滦?,讓我們得以有機(jī)會(huì)抽象出這類應(yīng)用構(gòu)建所需要的基本要素,并且將這些要素的顆粒度充分提高,靈活組合,得以滿足千變?nèi)f化的具體場(chǎng)景。在我們的明道云中,這些基本要素包括工作表、視圖、統(tǒng)計(jì)、用戶權(quán)限、工作流和頁(yè)面。每一個(gè)要素都通過(guò)可視化應(yīng)用配置的方式來(lái)面向非程序員,只有在個(gè)別的環(huán)節(jié)允許程序員寫一些代碼來(lái)進(jìn)一步提高靈活性。
我調(diào)研過(guò),在定制開(kāi)發(fā)的企業(yè)應(yīng)用中,目前有九成以上都使用了Ants前端框架,這是阿里巴巴提供的一個(gè)開(kāi)源前端組件。這個(gè)組件所提供的所有范式基本上就圍繞CRUD場(chǎng)景而展開(kāi)的。所以,即使使用Java、C#或者PHP等高級(jí)語(yǔ)言開(kāi)發(fā)的原生應(yīng)用,也遵照的是同一個(gè)范式。既然模型如此穩(wěn)定,為什么每個(gè)應(yīng)用都要從第一行代碼開(kāi)始寫起呢?這就是LCAP產(chǎn)品為之努力的方向,在這個(gè)特定的應(yīng)用類型下,用積木搭建的方式來(lái)取代DevOps過(guò)程,因?yàn)楹笳呔褪请x不開(kāi)程序員。
有人又質(zhì)疑,企業(yè)應(yīng)用沒(méi)有增刪查改那么簡(jiǎn)單。高級(jí)的ERP怎么怎么樣復(fù)雜,算法如何如何先進(jìn),低代碼都搞不定,像你們明道云標(biāo)榜的零代碼肯定沒(méi)戲。有這個(gè)疑問(wèn)的人,我建議你先動(dòng)手實(shí)踐。再不濟(jì),看看案例和視頻也可以。你要相信,一代一代產(chǎn)品的努力,我們總是無(wú)限接近最佳的結(jié)果。企業(yè)應(yīng)用中的復(fù)雜問(wèn)題并不是只有代碼開(kāi)發(fā)一種方案,LCAP或者稱為APaaS的這一代產(chǎn)品不可能停留在20年前,我們只是用了不同的解決方案。航天發(fā)動(dòng)機(jī)夠復(fù)雜吧?人家是怎么解決的?是將巨大的復(fù)雜問(wèn)題拆解成若干個(gè)子系統(tǒng),每個(gè)子系統(tǒng)再拆分為子子系統(tǒng),最終落實(shí)一個(gè)個(gè)的簡(jiǎn)單問(wèn)題。APaaS也不例外。有興趣的,可以擴(kuò)展閱讀《APaaS搞不定復(fù)雜應(yīng)用,是這樣嗎?》
懷疑是沒(méi)有用的,動(dòng)手干才是真諦。
所以,我所看到的變革成本,正是徐CTO你這種人的存在。倚仗著專業(yè)出身,大廠履歷,干著指點(diǎn)江山的便宜活。IT評(píng)論家可以存在,但ThoughtWorks這樣的組織,應(yīng)該站在產(chǎn)業(yè)的最前沿,給大伙的創(chuàng)新帶個(gè)頭,而不是老氣橫秋地指摘?jiǎng)?chuàng)新行動(dòng)。創(chuàng)新的言論可能天真,守舊的語(yǔ)氣實(shí)在令人厭惡。他還在一個(gè)小視頻里質(zhì)問(wèn)低代碼產(chǎn)品是否"圖靈完備"?掉書袋掉到褲襠里了。
低代碼不會(huì)是永遠(yuǎn)的風(fēng)口,那又怎么樣?
徐CTO認(rèn)為今天低代碼的熱度是不會(huì)持續(xù)的,風(fēng)口總歸會(huì)過(guò)去。但這等于是廢話。沒(méi)有不會(huì)過(guò)去的風(fēng)口。你知道1970年企業(yè)IT界最大的風(fēng)口是什么嗎?關(guān)系數(shù)據(jù)庫(kù)!今天你聽(tīng)到有人說(shuō)關(guān)系數(shù)據(jù)庫(kù)是風(fēng)口嗎?當(dāng)然不會(huì),但是你看看關(guān)系數(shù)據(jù)庫(kù)今天的普及程度和使用率?
連我自己都希望這個(gè)風(fēng)口快點(diǎn)過(guò)去。天天被行業(yè)談?wù)摚y免遇到你這種幺蛾子。只有風(fēng)口過(guò)去,APaaS才能真正主流化,傳統(tǒng)用戶開(kāi)始采納,產(chǎn)品變得更加成熟,紛爭(zhēng)變得沒(méi)有意義。這是IT行業(yè)幾十年來(lái)不變的節(jié)奏。如果你真的理解IT行業(yè)的真諦,就不會(huì)說(shuō)出"低代碼是行業(yè)毒瘤"這種話來(lái)。至于InfoQ的編輯,也請(qǐng)你們回歸到技術(shù)媒體的本分,多提供知識(shí)和方法論,少一些妄斷。如果你把徐CTO的觀點(diǎn)選編為頭條,那么也請(qǐng)置頂我的這篇。
祝讀者勞動(dòng)節(jié)快樂(lè)!