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