可視化編程已經(jīng)能取代高級語言了嗎颜价?
之前在知乎看到了一則較早的問題現(xiàn)在的可視化編程發(fā)展到什么程度了,什么時候可以取代高級語言?這在可視化編程行業(yè)內(nèi)可是最高理想彬向。但其中有一個回答真實(shí)反應(yīng)現(xiàn)實(shí)——可視化編程無法取代高級語言。接下來分析幾款國內(nèi)外可視化編程商業(yè)工具(可以做出商業(yè)產(chǎn)品)攻冷,從而分析一下可視化編程的桎梏娃胆,以及可能的發(fā)展前景。
國內(nèi)外幾種商業(yè)可視化編程工具:
1.Mendix
全行業(yè)做低代碼開發(fā)幾乎都用積木的方式去做等曼,確實(shí)積木的拼接組合操作很容易里烦,也符合程序員的操作習(xí)慣,但全行業(yè)似乎陷入了創(chuàng)意沼澤禁谦。這時候mendix出現(xiàn)在我眼前胁黑,流程圖式編程是哪個神經(jīng)病想的,真有意思(下文的Outsystems也是相同的形式)州泊。這里引用一下別人對mendix的基本介紹:
“專攻企業(yè)應(yīng)用開發(fā)丧蘸,面向B端用戶,一般是面向有開發(fā)團(tuán)隊(duì)的中大型企業(yè)遥皂,提供模型驅(qū)動IDE和微流触趴,減少代碼量,使業(yè)務(wù)人員可以通過可視化組件參與到開發(fā)過程中渴肉,與程序員在Mendix platform上合作開發(fā)本企業(yè)的應(yīng)用冗懦。提供一些企業(yè)解決方案、模板仇祭,開發(fā)平臺上也支持自定義UI和組件披蕉。擁有Atlas UI Framework開發(fā)框架,根據(jù)應(yīng)用和業(yè)務(wù)類型乌奇,會推薦相關(guān)的模板和組件没讲,達(dá)到快速開發(fā)的目的。內(nèi)置DevOps功能礁苗,可以持續(xù)交付爬凑,也可以使用Mendix platform API集成其他DevOps工具∈曰铮”
可以做原生app嘁信,web系統(tǒng)于样。但編輯器功能本身并不完善,給定的功能模塊無法滿足企業(yè)用戶的全部需求潘靖。本身有全棧的能力穿剖,最近還引入了socket,但其設(shè)計的出發(fā)點(diǎn)還不是很適合國內(nèi)的生態(tài)卦溢。接入微信等需要額外配置糊余,很煩。編輯器界面本身足夠硬核单寂,流程圖繪制本身就是可視化的經(jīng)典與難點(diǎn)贬芥,箭頭的直觀性也很強(qiáng)。其工具只能企業(yè)或?qū)W生郵箱注冊宣决,有興趣的同學(xué)可以注冊試試蘸劈。
2. Outsystems
和mendix一樣也是針對企業(yè)的可視化工具,注冊需要企業(yè)郵箱疲扎。較早版本只包含基本的前端UI組件昵时,目前已經(jīng)豐富了很多捷雕。支持?jǐn)?shù)據(jù)驅(qū)動的list組件椒丧,每種組件都有封裝的事件(這點(diǎn)大同小異,視每個工具的設(shè)計思路救巷,有需要可以發(fā)郵件提)壶熏。css樣式的編輯及其復(fù)雜,基本就是原生css浦译,沒有經(jīng)過任何的封裝棒假,說白了還是給前端程序員做的。
數(shù)據(jù)庫關(guān)聯(lián)可視化精盅,這算是一大特色帽哑。基于關(guān)系型數(shù)據(jù)庫的可視化工具都應(yīng)該這么neng叹俏。妻枕。通過發(fā)布后的項(xiàng)目可以發(fā)現(xiàn),他們早期官網(wǎng)主頁都不是用他們自己的產(chǎn)品做的≌吵郏現(xiàn)在官網(wǎng)是用自己產(chǎn)品做的屡谐,但是點(diǎn)主頁這里的導(dǎo)航點(diǎn)之后點(diǎn)點(diǎn)會鬼畜地上下抖動,可以說每個在線編程的主頁都是自己的門臉蝌数,希望能盡快優(yōu)化吧愕掏。
其實(shí)國外這種商業(yè)可視化編程的工具還不少bpmonline、Zoho Creator顶伞、微軟的Microsoft PowerApps?饵撑。功能上各有千秋剑梳,但受限于線路問題和工具語言,在國內(nèi)想推行起來還是有難度肄梨,那么國內(nèi)前沿的可視化編程水平怎么樣呢阻荒,我就直接四個二加兩個王了哈!
3.iVX
ih5團(tuán)隊(duì)打造的v4版本众羡,在國內(nèi)網(wǎng)頁編輯器中處于鄙視鏈的最頂層侨赡。對于一個程序員而言可以利用js進(jìn)行開發(fā)才能滿足其工作的成就感,但ivx可以做到對沒有編程基礎(chǔ)開發(fā)人員的有效對接粱侣。ivx的組件數(shù)量比起國外的產(chǎn)品不是最多的羊壹,但確是最契合中國開發(fā)需求的,封裝全面的微信功能齐婴,支持方便認(rèn)證登錄(封裝好的取openid/unionid的方法)油猫,支持微信支付/紅包,各種移動端選擇器柠偶,直播組件(限企業(yè)用戶)情妖。支持微信小程序、web開發(fā)诱担、原生app(4.1beta)毡证,后端接口/數(shù)據(jù)庫的操作也相對簡單。對于國內(nèi)做外包的從業(yè)者而言確實(shí)能節(jié)省人員和學(xué)習(xí)成本蔫仙,但可視化編程即便如此依然有其無解的局限料睛。
scratch在可視化編程領(lǐng)域很具有代表性,但相對初級摇邦,僅針對兒童教育恤煞。另外像部分apaas的crm編輯器由于功能太過單一也沒有拿出來說。
局限
1.功能/性能的局限
看了之前介紹的產(chǎn)品施籍,即便是當(dāng)中功能最完備的居扒,相比起一門語言來說是不是依舊顯得單薄無力。即便可以代替?zhèn)鹘y(tǒng)程序員開發(fā)中檔產(chǎn)品丑慎,但要說可視化能取代高級語言無疑是在宣稱制造零件不需要自然資源喜喂,不論用什么新材料新工藝制造零件,其本源都要依賴自然資源立哑。利用高級語言開發(fā)好比將礦石做成零件再拼裝夜惭,可視化編程好比拿到現(xiàn)有的零件組裝。零件是否好用只能依賴別人铛绰,雖然像ivx诈茧、mendix有自定義組件的功能,但那依舊是對已有組件的封裝捂掰,無法真正意義上與w3c完美對接敢会。一門高級語言有多少的操作空間曾沈?想想3-4年前js都能寫人工智能了呢∨富瑁可視化工具要想寫深度學(xué)習(xí)該怎么做塞俱?估計只能引用外部接口。
性能問題就更不用說了吏垮,由于可視化編程的目的基于開發(fā)商業(yè)產(chǎn)品障涯,其限定死了程序的執(zhí)行只能是單線程的,最終將用戶的js用evil嵌入最終的包膳汪。因此沒有一款編輯器敢開放web worker功能唯蝶。
2.社會因素/混亂的生態(tài)/沒有標(biāo)準(zhǔn)
在大廠呆過的同學(xué)一開始一定很好奇為什么要經(jīng)常重復(fù)造輪子,網(wǎng)上明明有很多封裝好的庫遗嗽,怎么不能拿來直接用呢粘我?安全問題、法律問題痹换、技術(shù)儲備征字,這些都是社會屬性性對人類發(fā)展的影響。react中發(fā)現(xiàn)存在隱藏協(xié)議的時候百度連夜重構(gòu)代碼娇豫,之后改用修改過的框架開發(fā)了匙姜。
與開源的框架不同,可視化編輯器是開發(fā)團(tuán)隊(duì)賴以為生的產(chǎn)品锤躁,除了麻省的scratch搁料、pblock面向教育的公益類可視化開源項(xiàng)目外或详,其他不管to B還是to C的產(chǎn)品基本都要收費(fèi)(Outsystems系羞、mendix針對在校生免費(fèi),ivx在一定流量額度下免費(fèi)霸琴,其余國內(nèi)大部分產(chǎn)品只要使用都收費(fèi))椒振。這導(dǎo)致的第一個問題是生態(tài)的缺乏,一個人想要學(xué)習(xí)使用還要有這樣那樣的條件限制梧乘,那在校生或剛?cè)胄械娜藢幵溉ミx擇行業(yè)認(rèn)可的技術(shù)澎迎。第二個問題是由于市場沒有被某個或某些廠家壟斷(想想dji出數(shù)字圖傳套件前fpv圈子的生態(tài)),導(dǎo)致了一家一個標(biāo)準(zhǔn)选调。一個程序員熟練使用5個主流語言3款框架就差不多了夹供,因?yàn)橹髁髡Z言就那么多,但是市場上的可視化編程公司幾百家仁堪,而且做得好的都是自研哮洽,沒有統(tǒng)一的標(biāo)準(zhǔn),每家的特色和亮點(diǎn)都不同弦聂,到底選誰是很大的問題鸟辅,都選怕你時間不夠氛什。這種混亂導(dǎo)致了小白的迷茫和程序員的不屑,不如學(xué)好基礎(chǔ)自己開發(fā)匪凉。
3.相關(guān)研究不足
low code develop是國外傳入的概念枪眉,被中國互聯(lián)網(wǎng)人翻譯為低代碼開發(fā),在國外炒了有一陣了再层。相關(guān)的技術(shù)文章有多少呢贸铜?先從eric查一下國外的研究狀態(tài),完全搜不到相應(yīng)的研究聂受,怎一個慘子了得:
再來看看cnki萨脑,3個結(jié)果,一篇真相關(guān)還是科普文饺饭,學(xué)教育技術(shù)的同學(xué)你們的研究方向有了渤早!
學(xué)界的研究向來喜歡偏向資本市場或爭議問題,區(qū)塊鏈瘫俊、深度學(xué)習(xí)鹊杖、轉(zhuǎn)基因等課題都要經(jīng)過一段時間的資本宣傳或輿論發(fā)酵才能讓這些教授學(xué)者關(guān)注這些議題。比起可視化編程的市場綜述研究和發(fā)展?jié)摿ρ芯靠秆浚瑢W(xué)界倒是對可視化編程骂蓖、scratch等教育學(xué)議題更加關(guān)注,畢竟現(xiàn)在兒童編程有資本注入川尖。當(dāng)有了一定學(xué)術(shù)支撐后登下,研究和使用的人就會逐漸增多,相應(yīng)的標(biāo)準(zhǔn)或評級也能展開叮喳,間接可以讓混亂的學(xué)習(xí)生態(tài)聚焦主流被芳。
總結(jié)
可視化編程取代高級語言在短期內(nèi)不可能實(shí)現(xiàn)。首先市場的發(fā)展陷入守城之勢馍悟,真的得出現(xiàn)類似dji參與fpv開發(fā)畔濒、騰訊出小程序等事件,某個大廠介入出一套東西然后主推锣咒,改變大家的編程習(xí)慣然后可視化編程立刻進(jìn)入大家視野切逐漸形成一套生態(tài)侵状。否則可視化編程依然只能是小眾的開發(fā)方式。
從技術(shù)角度說一款圖形IDE無論如何做不到一門語言的完整性毅整,作為一種開發(fā)方案趣兄,可視化編程極力做到錦上添花,簡化開發(fā)流程悼嫉,節(jié)約開發(fā)成本艇潭,完善最終編譯結(jié)果,代替一般web/小程序項(xiàng)目的開發(fā)模式是完全沒問題的。