3000字,聊一聊學習低代碼和學習編程到底有什么區別?

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