隨著人工智慧的蓬勃發展,機器的智能化程度越來越高,在很多領域,基於大量樣本數據的自我學習,計算機在某一功能領域能夠實現自我完善,通過持續的大數據量學習,執行功能的能力會得到持續提升,究其本質,實質上是一些重複性工作的持續優化,機器學習本身就是學習這些重複性工作的數據(即樣本數據),然後優化工作的過程。
在軟體開發領域,如何通過引入人工智慧提升開發效率呢?首先思考機器學習的方式,由於編程工作本身,沒有可行的方案提供一致性的編程「數據樣本」,且不同的程式設計師實現的算法和過程有天壤之別,因此通過機器學習的方式讓計算機自動編程將變得不可實現。
基於深度抽象的人工智慧,讓計算機理解設計模型並轉化為代碼,這個過程被稱為機器編程。機器編程是表徵軟體開發中從模型向高級語言代碼轉換的過程,全部交由計算機完成,此構想的另一背景是客戶化項目需要人工編碼的工作很多,尤其較為複雜的大型項目,對項目進度、項目管理形成挑戰,且要求開發出的項目能夠不依賴於開發平臺而獨立運行,同時項目代碼交付客戶後,客戶的編程人員能夠使用通用的高級程式語言例如Java,C#等進行後續獨立升級開發。基於此背景與構想,2014年安鳴軟體創始人趙晨創立了上海安鳴軟體科技有限公司,將此概念和構想付諸實驗與實踐,經過六年研發,推出了ACB機器編程平臺,並發表機器編程論文並被知網收錄。系統將領域模型、交互模型、視圖模型、接口模型、流程模型、權限模型均進行了完整實現,項目能夠通過可視化模型完整生成基於高級程式語言的程序代碼,該系統開發的平臺級系統已應用於廣告行業的DSP、DMP、SSP、CRM、SEM等系統。
該系統機器編程技術的核心要素是機器理解模型並轉變為代碼,而非由人類程式設計師理解模型,並進行實現的過程,因此軟體系統的模型化就是機器編程的輸入,可執行代碼是機器編程的輸出。軟體系統就是模擬真實世界,真實世界的模擬實質上就是不同對象的交互,從面向對象角度,可以從不同層級對實體對象進行建模,因此,系統從幾個分層的模型角度對軟體系統進行全面的建模,系統的核心工作就是讓計算機理解這些模型並產生原始碼進行編程工作。
ACB與Outsystems,iVX,Salesforce,Mendix,Appian,Joget等低代碼快速開發平臺和技術的目的類似,其目的都是加速軟體開發,減短軟體開發過程中的迭代周期,提高開發效率和質量,降低開發成本,能夠將模型直接轉化為可運行應用程式。不同之處在於:機器編程將模型轉化為高級語言代碼,其轉換從編程結果和代碼角度審視,應和人工編碼並無不同,通過編譯這些高級語言代碼,進而執行軟體系統。Outsystems,iVX,Salesforce等低代碼快速開發平臺所採用技術開發完成之後的系統僅能運行在平臺自己架構之上,不是以普通的高級語言代碼方式作為軟體開發結果交付客戶,雖然目的同樣能夠加速軟體開發,但不是以模仿人類編程為目的,機器編程則是模仿人類編程過程,其產出高級語言代碼作為結果是其主要特徵,產出結果上看和人工編程並無不同,但編程效率卻大大提高。
相信在不久的將來,機器編程這種以深度抽象為基礎的人工智慧技術,在智能軟體吞噬世界的信息化數字浪潮中,在技術層面發揮其高效率智能化的特徵加速人類信息化數位化進程。