低代碼是領(lǐng)域特定語(yǔ)言還是通用語(yǔ)言葫盼?和Thoughtworks《聊聊低代碼》

前天,知名外包公司Thoughtworks針對(duì)低代碼發(fā)表了一篇《聊聊低代碼》村斟,從VB等“托拉拽”技術(shù)的覆滅開始講起贫导,將低代碼定義為一種領(lǐng)域特定語(yǔ)言,代表程序員關(guān)上了低代碼的大門蟆盹。

從文章中我讀到了知乎上非常流行的味道孩灯,即互聯(lián)網(wǎng)==軟件,一個(gè)技術(shù)用來(lái)開發(fā)大數(shù)據(jù)量逾滥、高用戶體驗(yàn)的互聯(lián)網(wǎng)服務(wù)時(shí)不好用峰档,那么他就干啥啥不行了。作為一名入行十幾年匣距,一直在使用Visual Studio+.NET+WinForm/WPF,“托拉拽”搞企業(yè)軟件開發(fā)的老程序員哎壳,我也有幾句話說(shuō)毅待。

托拉拽已死?

Thoughtworks:就例如大家最熟悉的VB(Visual Basic)归榕,現(xiàn)在回頭來(lái)看不就是一個(gè)典型的試圖通過(guò)組件的托拉拽加少量代碼的方式實(shí)現(xiàn)應(yīng)用的快速構(gòu)建的“低代碼平臺(tái)”么尸红?而又怎么會(huì)漸出了歷史舞臺(tái)?難道只是簡(jiǎn)單的CS架構(gòu)問(wèn)題么刹泄?話說(shuō)想想BS架構(gòu)下類似的工具也有不少外里,最后也都難逃同樣的命運(yùn)……

這句話的潛臺(tái)詞是“VB/WinForm/WPF/Silverlight等可視化界面設(shè)計(jì)方案都失敗了,所以這條路行不通”特石。我認(rèn)為盅蝗,這句話得加一個(gè)限定,即“互聯(lián)網(wǎng)領(lǐng)域”姆蘸。

這些技術(shù)在toC端確實(shí)已經(jīng)不再流行墩莫,但是toB領(lǐng)域依然是主流。用友U8 CS門戶就是用WinForm做的逞敷,U8 BS門戶基于Silverlight開發(fā)的狂秦,今天依然是用戶最多的ERP軟件;.NET和.NET Compact+WinForm做的各類數(shù)采和執(zhí)行控制軟件依然是工廠生產(chǎn)線的主力推捐。為什么裂问?因?yàn)榭梢暬夹g(shù)的本質(zhì)是代碼自動(dòng)生成技術(shù),也就是將用戶托拉拽的行為翻譯成代碼(不只是C#、Java這種可執(zhí)行代碼堪簿,更常見的是XML和Json等描述性語(yǔ)言)痊乾。相比于手工優(yōu)化后的代碼,可視化技術(shù)自動(dòng)生成的代碼在性能上確實(shí)有一定的差距戴甩。在性能要求高的互聯(lián)網(wǎng)領(lǐng)域符喝,這種方案確實(shí)遭遇了很大的挑戰(zhàn);但是甜孤,在硬件性能趨于過(guò)剩的企業(yè)服務(wù)器領(lǐng)域协饲,這種性能損失完全可以接受。

所以缴川,在企業(yè)服務(wù)領(lǐng)域茉稠,可視化界面設(shè)計(jì)方案并沒(méi)有失敗,只是技術(shù)平臺(tái)的升級(jí)把夸,讓那些為Windows桌面程序而线、Silverlight插件設(shè)計(jì)的可視化開發(fā)方案顯得落后罷了。進(jìn)入Web+多終端時(shí)代恋日,企業(yè)服務(wù)領(lǐng)域需要的是新一代可視化技術(shù)膀篮,從產(chǎn)出Windows桌面程序,切換到產(chǎn)出純H5的Web應(yīng)用岂膳,而不是徹底退回到和互聯(lián)網(wǎng)一樣的純手工編碼誓竿。

低代碼和可視化并不能提升效率?

Thoughtworks:這種平臺(tái)往往Demo看起來(lái)非常的酷炫和有沖擊力谈截,但是一旦真正應(yīng)用到實(shí)際工作過(guò)程中就會(huì)出現(xiàn)各種問(wèn)題:開發(fā)效率不升反降筷屡,平臺(tái)學(xué)習(xí)成本高,程序員學(xué)習(xí)動(dòng)力不強(qiáng)簸喂,功能受限毙死,感覺(jué)束手束腳,調(diào)試難測(cè)試更難喻鳄,數(shù)據(jù)不開放扼倘,平臺(tái)與工具綁定,性能問(wèn)題等等……

即便有腳手架(類似ASP.NET MVC)寫代碼的開發(fā)和維護(hù)投入也比托拉拽要高很多除呵,因?yàn)殚_發(fā)環(huán)節(jié)中唉锌,除了敲下代碼,還需要涉及內(nèi)部Review竿奏、自測(cè)袄简、自查、調(diào)試以及接手他人代碼的學(xué)習(xí)過(guò)程泛啸,可視化在這些領(lǐng)域都能體現(xiàn)出更強(qiáng)的效率優(yōu)勢(shì)绿语。具體到可視化帶來(lái)的影響,我的經(jīng)驗(yàn)是.NET WinForm的界面構(gòu)建速度比VC++大約高2-3倍;客戶反饋用低代碼做后端WebAPI比Spring Boot快2-3倍吕粹,前端快1-2倍的樣子种柑。當(dāng)然我接觸的項(xiàng)目都是企業(yè)軟件,業(yè)務(wù)邏輯和數(shù)據(jù)處理復(fù)雜度高匹耕,性能和界面精細(xì)度要求低聚请。

低代碼基于特定領(lǐng)域語(yǔ)言?

Thoughtworks:所以一個(gè)低代碼平臺(tái)的關(guān)鍵成敗稳其,作為解釋器(Interpreter)的花里胡哨的工具其實(shí)并不是關(guān)鍵驶赏;低代碼平臺(tái)關(guān)注解決的問(wèn)題領(lǐng)域(軟件開發(fā),軟件設(shè)計(jì)既鞠,應(yīng)用開發(fā)煤傍、數(shù)據(jù)庫(kù)操作、系統(tǒng)集成嘱蛋、中臺(tái)能力組合編排…)蚯姆,以及是否能通過(guò)“抽象”和“約束”為這個(gè)領(lǐng)域設(shè)計(jì)出一套好的DSL(或是元模型),才是關(guān)鍵洒敏,也直接關(guān)乎平臺(tái)的成敗龄恋。

在討論DSL的可視化帶來(lái)的各種限制之前,按照知乎慣例凶伙,我們得先問(wèn)“低代碼是不是基于DSL”郭毕。

我認(rèn)為,低代碼镊靴,尤其是模型驅(qū)動(dòng)的低代碼平臺(tái)铣卡,本質(zhì)是高級(jí)語(yǔ)言的可視化方案链韭,而不是發(fā)明了另一種面向特定領(lǐng)域的語(yǔ)言偏竟。比如outsystems的process、mendix的microflow敞峭、活字格的命令踊谋,本質(zhì)上都是在前端或后端執(zhí)行的function,在前端表現(xiàn)為mvvm中的command旋讹,后端表現(xiàn)為webapi殖蚕。在這里面,可視化的操作元素對(duì)應(yīng)的是C#沉迹、JS的語(yǔ)句睦疫,并不是發(fā)明了一個(gè)新的語(yǔ)言,在抽象程度上沒(méi)有本質(zhì)差異鞭呕,不過(guò)考慮到研發(fā)成本投入和市場(chǎng)定位蛤育,目前在功能實(shí)現(xiàn)上優(yōu)先覆蓋企業(yè)軟件中涉及到的應(yīng)用場(chǎng)景,如語(yǔ)言層面的輸出輸出參數(shù)、流程控制(順序瓦糕、選擇底洗、循環(huán))、異常處理咕娄、調(diào)用亥揖、返回等,以及應(yīng)用底層的數(shù)據(jù)訪問(wèn)(CRUD)圣勒、事務(wù)控制费变、日志,和更高層次的文件操作灾而、WebAPI/RFC/Modbus調(diào)用等胡控。

這就意味著,至少在企業(yè)服務(wù)這個(gè)大的領(lǐng)域中旁趟,低代碼的約束性和應(yīng)用場(chǎng)景和高級(jí)語(yǔ)言開發(fā)一致昼激。具體而言,后端不存在寫代碼可以實(shí)現(xiàn)锡搜,而低代碼的可視化無(wú)法實(shí)現(xiàn)的業(yè)務(wù)功能橙困。在前端,低代碼開發(fā)平臺(tái)的前端設(shè)計(jì)能力和編碼開發(fā)確實(shí)存在一定差距耕餐,即便是行業(yè)top的outsystems凡傅,也有一些交互的限制。不過(guò)肠缔,企業(yè)軟件重后端輕前端的特點(diǎn)夏跷,讓這些問(wèn)題在后端開發(fā)的高效率面前,都變得可以妥協(xié)明未。

開發(fā)工具的生產(chǎn)力沒(méi)有差異槽华?

Thoughtworks:低代碼平臺(tái)的工具部分,往往最大的價(jià)值并不是提高程序員的效率趟妥,反而是為了實(shí)現(xiàn)對(duì)于業(yè)務(wù)人員的自助(Self-Service)服務(wù)平臺(tái)猫态。

從低代碼概念的提出者Forrester到對(duì)低代碼進(jìn)行細(xì)分的Gartner,行業(yè)主流研究機(jī)構(gòu)都將專業(yè)開發(fā)者視作低代碼技術(shù)的主要用戶群體披摄。Forrester在低代碼的相關(guān)報(bào)告中亲雪,將“面向?qū)I(yè)開發(fā)者的低代碼平臺(tái)”作為重要分類;Gartner在低代碼的定義中明確指出僅提供給業(yè)務(wù)人員使用疚膊,而無(wú)法提供給專業(yè)開發(fā)者使用的不能稱之為低代碼開發(fā)平臺(tái)义辕。

軟件==互聯(lián)網(wǎng)?

最后我想說(shuō)寓盗,低代碼技術(shù)的本質(zhì)依然是軟件開發(fā)技術(shù)灌砖,軟件開發(fā)者無(wú)法忽視這個(gè)技術(shù)的存在夺巩。在追求極限性能、極致用戶體驗(yàn)的互聯(lián)網(wǎng)開發(fā)者看來(lái)周崭,WinForm柳譬、Cordova、Blazor以及這回的低代碼都無(wú)法滿足開發(fā)者對(duì)最優(yōu)化的追求续镇。但是美澳,我們也得看到,在面向企業(yè)服務(wù)的領(lǐng)域中摸航,這些技術(shù)憑借著“節(jié)省開發(fā)成本”的一招鮮制跟,壓過(guò)了各自的不足和限制,正在大量的團(tuán)隊(duì)中服役酱虎。

軟件開發(fā)沒(méi)有銀彈雨膨,互聯(lián)網(wǎng)的砒霜也許就是企業(yè)軟件的蜜糖。

所以读串,如果你從事的是企業(yè)軟件開發(fā)聊记,請(qǐng)一定認(rèn)清咱們所在的這個(gè)行業(yè)與“互聯(lián)網(wǎng)”的差異。當(dāng)看到什么“35歲失業(yè)”恢暖、“低代碼已死”等話題的時(shí)候排监,多琢磨琢磨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杰捂,一起剝皮案震驚了整個(gè)濱河市舆床,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嫁佳,老刑警劉巖挨队,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒿往,居然都是意外死亡盛垦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門熄浓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)情臭,“玉大人省撑,你說(shuō)我怎么就攤上這事赌蔑。” “怎么了竟秫?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵娃惯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我肥败,道長(zhǎng)趾浅,這世上最難降的妖魔是什么愕提? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮皿哨,結(jié)果婚禮上浅侨,老公的妹妹穿的比我還像新娘。我一直安慰自己证膨,他們只是感情好如输,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著央勒,像睡著了一般不见。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崔步,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天稳吮,我揣著相機(jī)與錄音,去河邊找鬼井濒。 笑死灶似,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瑞你。 我是一名探鬼主播喻奥,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼捏悬!你這毒婦竟也來(lái)了撞蚕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤过牙,失蹤者是張志新(化名)和其女友劉穎甥厦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寇钉,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刀疙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扫倡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谦秧。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖撵溃,靈堂內(nèi)的尸體忽然破棺而出疚鲤,到底是詐尸還是另有隱情,我是刑警寧澤缘挑,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布集歇,位于F島的核電站,受9級(jí)特大地震影響语淘,放射性物質(zhì)發(fā)生泄漏诲宇。R本人自食惡果不足惜际歼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姑蓝。 院中可真熱鬧鹅心,春花似錦、人聲如沸纺荧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虐秋。三九已至榕茧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間客给,已是汗流浹背用押。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留靶剑,地道東北人蜻拨。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像桩引,于是被迫代替她去往敵國(guó)和親缎讼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容