一文讀懂萬應低代碼和其他編程語言的區(qū)別
作者介紹
胡艷平,萬應低代碼聯(lián)合創(chuàng)始人、CTO,中國信通院低代碼/無代碼推進中心技術(shù)專家,全國信標委《低代碼開發(fā)平臺能力要求》起草人之一。
曾有科技公司CTO問我:低代碼是不是一種不用敲代碼的編程語言?在不確定低代碼能力邊界的情況下,我們花時間去學這門“語言”,相比學python或者C語言等,又有什么區(qū)別呢?
如果連CTO都會對此產(chǎn)生疑慮,那么初學者或者非IT人群想必更是如此。本文我將用問答的形式,向大家做一些匯報說明,希望可以借此解開大家對于低代碼的部分困惑。
首先我們先剖析一下,低代碼平臺和一門編程語言的區(qū)別:
低代碼平臺和編程語言究竟有多像?
熟悉編程語言史的朋友都知道,新的編程語言往往都是開發(fā)者針對特定的問題,通過借鑒和加強自己熟悉的語言所開發(fā)而來。因此,雖然每種高級編程語言的語法、命令格式各不相同,但不管什么編程語言,都會有一些共同的思路和元素。
這個共同的思路和元素就是編程語言的基本要素。包括有數(shù)據(jù)類型、常量、變量、運算符、表達式、標識符、關(guān)鍵字、數(shù)組、基本控制結(jié)構(gòu)、函數(shù)、輸入和輸出、解釋器和編譯器。下圖對這些基本要素作了詳細描述:
編程語言基本要素及低代碼實現(xiàn)方式
(以萬應低代碼為例)
通過上表對比可以看到,一個成熟的低代碼平臺會近乎100%地完整具備一門語言所需的各種要素,為何如此呢?
成熟的編程語言一定是圖靈完備的(即經(jīng)過實踐驗證、能夠解決絕大部分問題),以此為指引,可以讓低代碼平臺避免很多能力上的先天不足。
還是以萬應低代碼為例,其實萬應的設計思想遵循和參考了很多JavaScript的規(guī)范。
JavaScript編程語言在全球擁有龐大的用戶群體,它簡單、靈活、易上手,很多UI、產(chǎn)品經(jīng)理都懂一點JavaScript,這也是為什么很多用戶在使用萬應時會有似曾相識之感。
在讀懂這張表后,相信大家基本就不會再對成熟低代碼的能力邊界存在太多疑慮:絕大部分代碼能做到的,低代碼也一樣可以做到,而且速度更快,上手更簡單。
接下來:
低代碼是一門編程開發(fā)語言嗎?
要回答這個問題,就得從低代碼開發(fā)應用的過程和低代碼所開發(fā)應用的結(jié)果狀態(tài)兩個方面進行論證。
下圖是萬應低代碼平臺開發(fā)應用的過程:
在整個過程中,有很多環(huán)節(jié)并不是通過一門編程語言就能夠解決的,比如業(yè)務實體的定義、PaaS能力集成、項目發(fā)布部署等。
低代碼平臺能力遠超過任意一門單一語言,它涵蓋了需求設計、技術(shù)設計、前端開發(fā)、后端開發(fā)、打包部署、測試等多個環(huán)節(jié)。從這個層面講,它是一個開發(fā)平臺,而非一門開發(fā)語言。
再看萬應低代碼平臺輸出應用的基本結(jié)構(gòu):
從上圖可以看出,萬應包括了業(yè)務實體定義、業(yè)務邏輯定義、高級PaaS能力集成、多種形態(tài)應用生產(chǎn)和部署。因此,我們可以確定地說:萬應平臺底座不是一門編程語言,而更像是一個整合了云計算、大數(shù)據(jù)和編程語言思想的企業(yè)級數(shù)字化底座。
學會低代碼=學會一門編程語言嗎?
我們可將低代碼能力與相應傳統(tǒng)編程語言的學習要點進行對比(以萬應低代碼為例):
通過對比可以看到,掌握低代碼,并不僅是學會了一門語言,而是“學會了很多門語言”。因為從最終成效看,使用萬應低代碼即可以實現(xiàn)“一個人就能擼出一個應用”的效果,也即一個萬應低代碼的開發(fā)者,就是一個傳統(tǒng)意義上的全棧工程師——一個從網(wǎng)絡、操作系統(tǒng)、中間件、數(shù)據(jù)庫、后臺開發(fā)、前端開發(fā)層面都具備一定基礎的全棧工程師。
那么:
學會低代碼比學會一門編程語言難嗎?
學會和精通是兩個不同的概念。
學會一門語言不難,精通一門語言很難。正如本文開頭所述,其實大部分語言的基本要素都是一致的,不論是老牌的后端語言Java/C#,還是新銳的后端語言Golang;不論是市場占有率高的JavaScript,還是以性能著稱的Rust,他們的基本要素都是類似的。學會了一門語言,再學另外一門是很容易的。
那么精通一門語言主要體現(xiàn)在哪些地方呢?我認為主要是一下幾個方面:
· 算法的思想。面對同樣一個問題,“精通語言”的人會用簡練有效的算法高性能地去解決,而“會用語言”的人或許最終也能解決問題,但效率卻無法企及。
· 架構(gòu)的思想。以企業(yè)數(shù)字化為例,在解決數(shù)字化問題時,關(guān)鍵就在于整個項目的架構(gòu)能力,尤其是Java、C#這類后臺語言:怎么定義領域模型,怎么定義微服務,怎么用好面向?qū)ο笏枷?,怎么用好各種設計理念,這些架構(gòu)上的思想都是項目成敗的關(guān)鍵。
· 框架熟悉程度。成熟的語言會有大量、各種各樣的第三方框架,去豐富語言的能力,比如C#的Entity Framework、FreeSQL等,對這些框架的熟悉程度,決定了使用這門語言的效率,也決定著對這門語言的掌握程度。
學會一門語言所需的知識點比學會萬應低代碼要少,畢竟萬應涵蓋了數(shù)門語言能力、數(shù)個研發(fā)領域。但是精通萬應比精通一門語言要容易得多:
很多算法萬應在底層內(nèi)置了,開發(fā)者無需深度理解,可以直接使用;
萬應將如何做好一個企業(yè)數(shù)字化應用的架構(gòu)思想和方法論,內(nèi)置入平臺,開發(fā)者同樣無需深度理解,可以直接使用。當然如果開發(fā)者深度理解了,可以產(chǎn)生知音般的共鳴;
同樣,萬應還將很多框架通過自研或集成方式,內(nèi)置到了平臺,開發(fā)者只需要拖拽、配置即可。
精通萬應要多久?時間成本高不高?
一名應屆畢業(yè)生,從零基礎到精通萬應(請注意,是精通而不僅是學會),時間周期在3個月左右,曾有合作伙伴聽到此有點望而卻步,認為時間太長,成本太高。其實這里存在一些誤區(qū):
1)低代碼開發(fā)相對傳統(tǒng)開發(fā)大大降低了操作門檻,但并非完全沒有門檻,不僅僅是操作,軟件開發(fā)的一些基本思想、流程規(guī)范等都需要掌握,整體時間3個月是相對零基礎人群而言,如有編程基礎,這個周期會短至1周左右;
2)萬應低代碼平臺有完善的培訓機制,員工入門只需要3-5天,入門后就可參與項目,著手界面的搭建和簡單邏輯的編排;
3)萬應低代碼平臺開發(fā)速度快,成果反饋時間短,在多所高校中被用作教學平臺。對開發(fā)者而言,萬應是一個非常適合通過項目中去鍛煉的平臺,越復雜的項目越能鍛煉人。而對于企業(yè)而言,在項目中,開發(fā)者就已經(jīng)有產(chǎn)出了,并不完全是成本支出。
最后一問:
低代碼平臺這么多,如果將來換一個平臺,那現(xiàn)在是不是白學了?
先說結(jié)論:就萬應低代碼而言,不是。
首先,我們前面分析了,萬應幾乎包括了一門編程語言的全部基本要素,萬應在邏輯編排、動作流里邊的設計思想就是編程語言的思想,開發(fā)者學會了萬應再去學習Javascript或Java這類語言,會更容易,會得到更多共鳴。
其次,萬應是一個全棧的開發(fā)平臺,學會萬應就基本理解了軟件開發(fā)的全過程。而僅僅是理解這個過程,很多工程師都要花上好幾年時間,甚至有些工程師在工作幾年之后,依然只理解自己眼前的點,難以獲得全局視角。
再次,萬應涵蓋了后臺、數(shù)據(jù)庫、前端等多個環(huán)節(jié),學會了萬應就會“不自覺”地懂一些后臺開發(fā)邏輯、數(shù)據(jù)庫設計和腳本邏輯,以及前端的語言框架、HTML、CSS布局等。這些都是國際通用標準,是可以遷移的知識點。
最后,萬應是一個所見即所得的開發(fā)環(huán)境,界面設計器跟全球有名的Figama類似,掌握萬應的工程師,去設計產(chǎn)品UE毫無壓力,并且邏輯能力比一般的交互設計師要強很多。
萬應低代碼平臺,本質(zhì)上其實是把軟件工程的設計思想,用一種可視化的方式表達出來,讓開發(fā)者在運用這種思想時能更容易、更輕松些。設計思想是靈魂深處的,是跟隨人一生的,思想有了,不管用什么形態(tài)的工具都不會白學。