近日,有外媒指出,在過去35年,軟件行業(yè)發(fā)生了一些重大轉(zhuǎn)變。其中之一便是,越來越多的軟件應(yīng)用程序,已構(gòu)建了基于無代碼原則的平臺,軟件業(yè)的未來將是屬于無代碼平臺的。
那么,代碼在軟件編寫中扮演著怎樣的角色?什么是無代碼平臺?軟件編寫是否真的可以做到無代碼?無代碼軟件的優(yōu)勢有哪些?它是否代表了軟件業(yè)未來的發(fā)展趨勢?帶著上述問題,科技日報記者采訪了業(yè)內(nèi)相關(guān)專家。
代碼是軟件的“物理”載體
當前,人類社會正處于飛速發(fā)展的信息時代?,F(xiàn)代信息系統(tǒng)的出現(xiàn)、發(fā)展與廣泛應(yīng)用則是信息時代的顯著特征。
北京理工大學(xué)計算機網(wǎng)絡(luò)及對抗技術(shù)研究所所長閆懷志在接受科技日報記者采訪時介紹,所謂現(xiàn)代信息系統(tǒng),是指由計算機與網(wǎng)絡(luò)通信硬件、軟件、信息資源、用戶和規(guī)章制度所組成的、以處理信息流為目的的人機一體化系統(tǒng)。軟件是現(xiàn)代信息系統(tǒng)的重要組成部分,在其中發(fā)揮著關(guān)鍵的作用。
軟件是指與計算機系統(tǒng)操作有關(guān)的計算機程序、規(guī)程、規(guī)則,以及相關(guān)的文件、文檔及數(shù)據(jù)。軟件在運行時,會向計算機或其他設(shè)備提供運算指令或程序集合,用以處理信息,并以文檔形式來描述程序功能需求以及如何操作和使用程序。
一般認為,程序就是軟件代碼,它是由常被戲稱為“程序猿”的編程人員,利用開發(fā)工具所支持的語言,編寫出來的源文件。軟件代碼通常是一組有序的數(shù)字或字母,它們是代表客觀實體及其屬性的符號。
一個軟件的生成,首先要從軟件的設(shè)計需求出發(fā),然后進行軟件功能設(shè)計,制定軟件系統(tǒng)整體架構(gòu)、劃分功能模塊、確定各模塊的實現(xiàn)算法,再通過編寫具體的代碼,最終形成相應(yīng)的軟件。
“也就是說,代碼是軟件業(yè)務(wù)功能及邏輯結(jié)構(gòu)的‘物理’載體,是軟件運行進而實現(xiàn)其預(yù)定功能的基礎(chǔ)實體。”閆懷志介紹道,一般而言,人們常見的代碼就是用編程語言寫好的、可用記事本打開的多行英文文本,即源代碼。這種源代碼,是由編程人員采用匯編語言和高級語言寫出來的“原始”代碼。
除腳本語言源代碼外,大部分源代碼無法在計算機上被直接運行,通常能在計算機上直接運行的都是可執(zhí)行程序。從源代碼轉(zhuǎn)化為可執(zhí)行程序,這一轉(zhuǎn)變需要經(jīng)過預(yù)編譯、編譯、匯編、鏈接等多個步驟。
閆懷志解釋道,之所以要經(jīng)過這一轉(zhuǎn)變,是因為源代碼本身并不能被計算機的中央處理器(CPU)所識別,需要通過編譯程序?qū)⑵溥M行“翻譯”,生成以匯編語言表示的、可被中央處理器識別的二進制代碼,即目標代碼。而目標代碼又需要通過鏈接后方可執(zhí)行,這種經(jīng)過鏈接后的二進制代碼被稱為可執(zhí)行代碼,可在計算機上被直接運行。
無需編碼即可實現(xiàn)開發(fā)
作為軟件的“物理”載體,代碼在軟件編寫和運行中扮演了重要的角色。那無代碼軟件又是怎么回事?
“嚴格來說,并不存在無代碼軟件,任何軟件都是必須有代碼的。”閆懷志介紹道,人們常說的無代碼軟件,實際上指的是無代碼開發(fā)。所謂無代碼開發(fā),是指軟件開發(fā)者無需通過手工編碼即可實現(xiàn)目標需求的一種軟件開發(fā)方式,也就是用軟件來生產(chǎn)軟件。這種軟件開發(fā)技術(shù)的創(chuàng)新實踐,最大限度地簡化了知識轉(zhuǎn)移和軟件工程控制的過程,為軟件開發(fā)和運維提供了極大的便利,使“人人都是程序員”不再是天方夜譚。當然,專業(yè)程序員利用該技術(shù),也可以使軟件開發(fā)效率得到顯著提升。
對此,天津大學(xué)軟件學(xué)院軟件工程系教授馮志勇也表達了相同的觀點。在馮志勇看來,所謂無代碼,更多的只是一種概念。盡管利用這項技術(shù),用戶在軟件編寫界面不再需要輸入代碼,可以采用圖像拖曳等更為人性化的人機交互方式實現(xiàn)編程,但這就需要后臺儲備大量已編好的代碼模塊。
“事實上,無代碼開發(fā),對后臺的支撐能力提出了很高的要求,后臺需要配有非常強大的技術(shù)團隊,來完成底層功能模塊的開發(fā)工作。只有這樣,才能使用戶完成‘傻瓜操作’,才能讓操作界面變得簡潔。”馮志勇指出。
那么,無代碼開發(fā)如何實現(xiàn)?
閆懷志介紹道,無代碼開發(fā)主要是借助無代碼開發(fā)平臺,該平臺是一種無需編程的配置型軟件快速開發(fā)工具,利用新型人機交互方式,直接配置業(yè)務(wù)參數(shù)就可構(gòu)建應(yīng)用系統(tǒng)。這就使非專業(yè)編程人員也能輕松完成軟件開發(fā)工作,而不必掌握高級編程語言。
無代碼開發(fā)平臺可提供統(tǒng)一技術(shù)架構(gòu)和極簡開發(fā)方法,用戶能自行選擇合適的系統(tǒng)甚至完全定制一套個性化的系統(tǒng),避開專業(yè)代碼開發(fā)的那些“繁文縟節(jié)”。目前常用的微信、釘釘?shù)仁謾CAPP,這些應(yīng)用系統(tǒng)的開發(fā)就很可能用上了無代碼平臺。
安全性存在風(fēng)險隱患
事實上,業(yè)界對簡化代碼開發(fā)的訴求早已有之。閆懷志舉例道,以企業(yè)應(yīng)用程序開發(fā)為例,過去數(shù)十年就誕生如工作流(Workflow)、智能業(yè)務(wù)流程管理系統(tǒng)(iBPMS)、低代碼(Low—Code)等應(yīng)用開發(fā)模式。2018年5月,國際知名咨詢公司高德納咨詢公司更是提出了高生產(chǎn)力應(yīng)用程序平臺(high productivity application PaaS,簡稱為hpaPaaS)的理念,由此掀起了新一輪無代碼開發(fā)熱潮,很多人因此預(yù)測“無代碼軟件未來已來”。
無代碼開發(fā)的技術(shù)優(yōu)勢有很多,總體來說,就是操作簡單、高效。這種模式允許使用者不直接編寫代碼,大大降低了軟件開發(fā)門檻,因此它的適用群體更加廣泛。非專業(yè)編程人員根據(jù)業(yè)務(wù)需求,即可構(gòu)建出適用的業(yè)務(wù)系統(tǒng);而專業(yè)編程人員則可以從繁重枯燥的編碼工作中解脫出來,使代碼開發(fā)質(zhì)量和效率同時得到顯著提升。
“當前,無代碼軟件的開發(fā)效率可達到傳統(tǒng)開發(fā)模式的10倍到30倍。但是,無代碼開發(fā)絕不意味著,專業(yè)編程人員將失去飯碗。”閆懷志認為,這是因為依靠無代碼平臺編制的軟件,目前依舊存在一些不足。比如,要完成高效的無代碼開發(fā)工作,操作者仍需掌握必要的軟件開發(fā)知識和編程技能,而且這種軟件的自定義能力會受到一定的限制,在可擴展性上也存在一些短板。同時,在安全性方面,無代碼軟件的安全性在很大程度上要依賴于平臺自身架構(gòu)的安全性及其提供的應(yīng)用安全機制,因此在安全性方面,該種軟件也是存在著一定的風(fēng)險。
不過,可以預(yù)見的是,無代碼軟件將是未來軟件生產(chǎn)的重要發(fā)展趨勢。在閆懷志看來,雖然這一發(fā)展過程會存在許多變數(shù),但總體上業(yè)界普遍持審慎的樂觀態(tài)度。“如果能夠有效地解決安全隱患和自主可控問題,無代碼軟件的發(fā)展未來可期。”他說。