中國基礎軟件生態又有突破性進展!
基礎軟件是構建數字經濟的底座,隨著我國數字經濟步入深化應用、規范發展、普惠共享的新階段,國產基礎軟件也步入了發展快車道,構建起基于Linux的開源根社區+操作系統產業鏈。
在數字化轉型和信息技術應用創新的雙輪驅動下,軟件行業保持著高速增長。據工業和信息化部8月28日發布數據顯示,1月至7月,我國軟件業務實現了同比13.6%的高增長。
信創覆蓋的關鍵行業以及信創生態內的科技公司均大力投入基于國產基礎軟硬件的技術及應用研發。然而,軟件開發工具依然嚴重依賴國際開源及商用工具。
根據Stackoverflow 2023年調研顯示,微軟旗下集成開發環境Visual Studio Code(開源)和Visual Studio(商用)在其調研的全球8萬余名專業開發者和學習者中保持著絕對領先優勢。
有開發者表示,微軟在軟件市場之所以強,一大原因就是,全世界的開發者都基于微軟的軟件工具研發軟件,開發結束后再把代碼貢獻到微軟收購的Github代碼托管平臺。這意味著軟件開發的工具、標準、創意都在微軟生態上。
我國集成開發環境軟件包括個人開發的LiteIDE,也包括科技大廠如華為推出的CodeArts,及阿里推出的OpenSumi等。
而在桌面操作系統領域,我國也終于迎來新的突破!
近日,統信軟件運營的桌面操作系統根社區deepin發布了全球首款自主研發、面向信創生態的集成開發環境deepin-IDE,完成了從桌面操作系統根社區deepin、商業發行版UOS、到軟件開發工具的國產基礎軟件生態閉環。
除了解決卡脖子,自研IDE意味著什么?
長期以來,由于缺乏國產集成開發環境(IDE),眾多應用軟件開發廠商不得不嚴重依賴國外的集成開發環境。全球范圍內軟件開發工具的核心廠商主要包括Microsoft、JetBrains、Atlassian、Eclipse等,共占有市場份額約45%。
然而,無論是國際開源還是商用IDE,均沒有針對國產操作系統進行專門優化,客觀上加大了國產操作系統上應用開發的難度。
首先,國產硬件平臺種類多、差異大、軟件適配工作量大的難題亟需解決。
國產CPU架構多樣,包括飛騰、鯤鵬、龍芯、申威、海光、兆芯等平臺。架構的多樣性導致各自軟件棧不統一,即使操作系統層面解決掉一部分架構差異問題,應用還是要適配調試,給軟件開發帶來了沉重負擔。
集成開發環境是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。
集成開發環境研制涉及大量的核心技術,包括多種語言的編譯器、解釋器、調試器,語義補全、代碼重構、項目工程管理、代碼版本管理、大型圖形框架構建,高效的進程間通訊機制、多平臺支持等,是進行各類軟件研發的必備基礎設施。
軟件開發各個環節的工具基本都被包括在內,同時包括在各個平臺都運行良好的基本軟件庫。這些工具和軟件庫在各個國產硬件平臺上做到統一,可以大大降低跨硬件平臺開發的難度。
其次,國產軟件開發工具鏈能讓軟件全生命周期擺脫對國外軟件的依賴。
隨著信息技術應用創新的深入,國產硬件和國產軟件已經在很多領域可以替代國外同類軟件。
但是在軟件開發領域,仍然無法擺脫對國外的集成開發環境的依賴。
國外集成開發環境存在不支持國產軟硬件適配、調試性能差等諸多問題,加大了國產操作系統上應用開發的難度,阻礙了國產軟件發展。
隨著信創市場的快速發展,應用生態需求的急劇增大,以及集成開發環境的重要地位,市場迫切需要一款自主可控的集成開發環境,以適應國產化軟硬件系統的特點。
這樣,才能從根本上實現一次開發多架構編譯部署,簡化應用開發過程,統一國內軟件開發方式和開發庫,提高國產軟件質量和互操作性,降低軟件開發成本,最終打破國外在集成開發環境領域的壟斷,解決“卡脖子”問題。
專注自研,打造國產平臺生產力工具
由deepin推出的deepin-IDE,傳承了“專注自研,貢獻開源”的技術基因,相關技術發明專利6篇。
deepin-IDE通過對國產硬件架構和國產操作系統特點深度優化和定制,簡化國產平臺應用開發成本,可實現在國產平臺上一次開發多架構編譯部署。
deepin-IDE除了包含IDE常用功能,如智能編輯器、高度可擴展的命令系統、工程管理、代碼版本管理集成、構建管理系統、插件系統等之外,還支持代碼遷移、語義補全、語法高亮、重構支持、反向調試、低開銷的實時性能分析工具等特色功能。
圖1 IDE進入編輯模式效果圖
目前,該平臺支持C++、C、java、python、java script五大類 最常用編輯語言;內置語言服務器協議(LSP)、調試適配器協議(DAP);支持主流版本控制系統git、svn;支持常用構建工具cmake、maven、ninja、gradle 等。
deepin-IDE采用了模塊化的方式對軟件系統進行模塊化劃分,實現各個軟件功能的逐層分解和解耦合,便于軟件系統的開發和集成。
模塊化設計一方面可以縮短產品研發與制造周期,增加產品系列,提高產品質量,快速應對市場變化;另一方面,也可以減少或消除對環境的不利影響,方便重用、升級、維修和獨立卸載。
具體來看,deepin-IDE特色功能主要包含:
低開銷的實時性能分析工具
性能分析功能不足,導致程序優化難度大大增加,無法明確優化指向。
針對目前國產環境中程序運行效率普遍偏低的問題,需要開發新的性能分析方法,用來對程序運行性能進行分析,達到為用戶查找性能瓶頸提供整體全面的統計分析數據的目的,提高其定位性能瓶頸的效率,最終提高集成開發環境的運行性能。
反向調試
反向調試系統通過進程執行歷史回放、事件分類管理、時間軸管理等手段,進一步提升應用的調試效率和開發能力。反向調試分系統分析程序資源消耗,分析處理器的性能指標,檢測運行程序的周期性性能參數,為優化程序的整體結構提供參考,打造更為優質的程序提供幫助。也是體現集成開發環境對于代碼質量的檢測體現,減少平臺的整體資源消耗,找出系統性能瓶頸。
圖2 反向調試模式效果圖
領域開發支撐
領域開發庫提供多種面向國產多架構、多操作系統平臺優化的底層庫和集成控件,使用這些底層開發庫和集成控件,用戶可以快速開發和部署面向國產多架構、多操作系統的應用軟件。
多架構編譯系統整合
支持多架構國產平臺上的集編碼、編譯、調試一體,以實現一次開發多架構編譯部署。
深入場景,構建開發者友好的自主生態
基于對軟件開發痛點的深入理解,deepin-IDE形成了完備的技術方案和實施路線,滿足基礎開發同時,更有諸多個性化亮點:
編輯器支持多種開發源,支持C、C++、Python、Java等多種常用開發語言的語法高亮、自動補全、跳轉到函數、重命名等常用功能。
運行時子系統為語言編程開發提供運行支撐。調用操作系統內置的高級語言解釋器和高級語言虛擬機,完成對代碼的調試、運行等工作。
集成對開源系統工具的使用能力,讓開發者在集成開發環境中可以方便地使用CPU 分析工具、內存分析工具、磁盤分析工具、網絡分析工具等,提高開發效率。
用戶行為分析可以用來統一代碼規范,檢測代碼風格。根據開發者提交的代碼文檔,統計其代碼格式、注釋規約、命名規則的行為檢測,為代碼檢查的統一規格提供參考約束。
用戶協同開發子系統是集代碼開發、插件開發、源碼管理、項目構建及在線發布于一體的行業產品研發及項目交付平臺系統。在此子系統中可以管理項目團隊,可以不受時間與地點的影響,進行實施人員與開發人員的協作,可以安全可靠的進行外包項目管理。
代碼遷移分析子系統是deepin-IDE的一大亮點,可以輔助開發者將x86平臺的Linux應用遷移到龍芯、申威、飛騰等國產處理器架構,及統信UOS等國產操作系統上,使用該功能可以自動分析出需修改的代碼內容,并給出代碼遷移指導,降低遷移難度,提升遷移效率。
圖3 代碼遷移工具界面
此外,其強大的可擴展性為開發者提供了個性化、可定制的空間。針對近年來興起的生成式AI代碼編輯,deepin-IDE提供了插件接口;國際化方面,目前支持中英文,同時可擴展多語言支持。
deepin-IDE團隊研發負責人表示,deepin-IDE旨在打造一款完全自主可控的集成開發環境,針對國產硬件架構和操作系統特點進行深度優化和定制,降低相應平臺上應用開發的成本,推進國產集成開發環境發展與標準化,進而促進國產軟件生態的發展。同時,deepin-IDE也根植于開源社區,它依賴于scintilla等開源組件,本身也使用了GPLv3協議開源。它的開發歷史并不長,因此還只能算是IDE的幼苗。但麻雀雖小,五臟俱全,它不僅有IDE的基本功能,也有上面提到的創新功能。和其它的基礎軟件一樣,IDE也需要多年的打造與完善,比如VSCode至今也發展了八年,所以開發IDE確實難度巨大,路雖遠,行則將至。事雖難,做則必成。我們也歡迎全球開源愛好者參與進來,幫助它繼續成長!