撰稿丨千山
不久前,號稱“自主研發(fā)”的集成開發(fā)環(huán)境工具CEC-IDE被多方質(zhì)疑造假,最終以官方出面致歉作結(jié)。這一事件雖然已經(jīng)告一段落,但最近關(guān)于國產(chǎn)IDE的討論也有所上升。
日前,又一款宣稱“純自研”的國產(chǎn)IDE亮相了。桌面操作系統(tǒng)根社區(qū)deepin正式官宣deepin-IDE,這款由深度公司研發(fā)的輕量級集成開發(fā)環(huán)境表現(xiàn)到底如何?我們接下來一探究竟。
1、正式亮相:有點個性,有點丑
deepin-IDE研發(fā)團隊專門在deepin社區(qū)發(fā)文介紹了deepin-IDE。
圖片
據(jù)官方介紹,deepin-IDE除了包含IDE常用功能,如智能編輯器、高度可擴展的命令系統(tǒng)、工程管理、構(gòu)建管理系統(tǒng)、插件系統(tǒng)等之外,還支持多種兼容協(xié)議、多種開發(fā)語言、代碼版本管理集成、低開銷的實時性能分析工具等。IDE常見功能總結(jié)如下表。
圖片
從上表可以看到,deepin-IDE支持C++、C、Java、Python、JavaScript五大類常用編輯語言,支持常用構(gòu)建工具CMake、Maven、Ninja、Gradle等。
此外,在滿足基礎開發(fā)需求的同時,deepin-IDE也不乏一些個性化功能,比如:
反向調(diào)試:該功能通過進程執(zhí)行歷史回放、事件分類管理、時間軸管理等手段,進一步提升應用的調(diào)試效率和開發(fā)能力。
代碼遷移:代碼遷移分析子系統(tǒng)是deepin-IDE的一大亮點,可以輔助開發(fā)者將x86平臺的Linux應用遷移到龍芯、飛騰等國產(chǎn)處理器架構(gòu),及統(tǒng)信UOS等國產(chǎn)操作系統(tǒng)上,使用該功能可以自動分析出需修改的代碼內(nèi)容,并給出代碼遷移指導,降低遷移難度,提升遷移效率。
圖片
當然,deepin-IDE還存在一些已知問題待解決,例如“文件描述符占用過多導致崩潰”“底部交互區(qū)暫不支持多頁面”“符號樹解析精度不高”等,還有肉眼可見的界面設計問題,因為沒有設計人員參與,所以整個界面由研發(fā)人員“原生”設計,非?!疤欤悖┤唬ㄋ兀┤ィㄓ校┑瘢c)飾(丑)”。
就像deepin-IDE研發(fā)團隊提到的,“IDE 本身是一個非常宏大的話題”,相較其他成熟的IDE,尚處于起步階段的deepin-IDE仍有許多需要完善的地方。但麻雀雖小,五臟俱全,整體來看,deepin-IDE已經(jīng)具備了IDE的基本功能,也在創(chuàng)新功能上有所建設,不過和其他基礎軟件一樣,仍需要時間的打磨和實踐的歷練。
2、開源之下,為何還要做自研IDE
關(guān)于是否要自研IDE,其實早期就有爭論。有人說,國產(chǎn)化很重要,但是也不必苛求所有東西都國產(chǎn)化。畢竟在開發(fā)工具層面,有那么多開源的成熟的IDE可以選擇。不必為了追求自研而自研,以致于有些項目淪為賺取經(jīng)費、騙取掌聲的工具。
但也有人認為,在大國博弈加劇和地緣沖突激烈的推動下,開源軟件也難以保存其“開放的凈土”。Github 對部分地區(qū)的開發(fā)者進行限制早有先例。況且退一步講,有的科技巨頭通過開源實現(xiàn)的其實是一種更高形式的壟斷。
雖然開源規(guī)避了重復造輪子的麻煩,但使用開源代碼,實際上就是默認了開源方的技術(shù)標準。而一旦這種標準被廣泛接受,生態(tài)成型,如果你不遵循這一標準,那么眾多兼容問題就會隨之而來。谷歌借由“開源”的安卓反而“壟斷”了市場就是典中典。所以從這一點來說,自主研發(fā)IDE有其必要性。
站在deepin的角度,deepin-IDE研發(fā)團隊也給出了他們選擇自研的理由。
“從操作系統(tǒng)角度來說,要構(gòu)建繁榮的生態(tài)環(huán)境,需要豐富和完善的基軟件體系。開發(fā)庫、封包格式、開發(fā)工具以及開發(fā)者支持,是逐步完善發(fā)展的過程?!?/p>
在這一漸進過程中,deepin在開發(fā)庫和封包格式上已經(jīng)有了自己的積累和突破,但是在開發(fā)工具這一環(huán),卻沒有自研的IDE工具。而在生態(tài)建設中,自研IDE是關(guān)鍵一環(huán),也是開發(fā)者生態(tài)的集大成者。
如果有了自研IDE,有哪些益處呢?
首先,自研 IDE可以提供DTK、各種二開接口的開發(fā)支持,開發(fā)者可以基于開發(fā)庫開發(fā)出對應業(yè)務功能的應用;其次,為了匹配自研軟件包格式“玲瓏”,自研 IDE 可以默認提供“玲瓏”打包格式,一次打包即可覆蓋全 Linux 生態(tài)環(huán)境;最后,為了便于開發(fā)者交流,增強社區(qū)活性,自研 IDE 可以集成開發(fā)者平臺,使開發(fā)者匯聚在一起交流開發(fā)經(jīng)驗。
不過,研發(fā)團隊也承認,雖然deepin-IDE “傳承了 deepin‘專注自研,貢獻開源’的技術(shù)基因,自研代碼14萬余行”,但同樣“是站在了‘開源’這個巨人的肩膀上,為了避免重復造輪子,采用了一些開源終端組件、功能組件”。他們也對所汲取的開源成果進行了公示。
圖片
但若是被問及“deepin-IDE 和 VSCode 有關(guān)聯(lián)嗎?”,deepin-IDE研發(fā)團隊還是有底氣回答的:“沒有關(guān)聯(lián)!deepin-IDE 就是純純的自研!”
圖片
3、優(yōu)質(zhì)國產(chǎn)IDE為何長期“難產(chǎn)”
根據(jù)Stack Overflow發(fā)布的2023開發(fā)者調(diào)查報告,VS Code 仍然是所有開發(fā)人員的首選 IDE,今年它在所有開發(fā)人員中的使用率從75%增加到81%,緊隨其后的是 Visual Studio 和 IntelliJ IDEA。
當前,我國軟件開發(fā)工具整體上依然嚴重依賴國際開源及商用工具,然而國外的集成開發(fā)環(huán)境并沒有針對國產(chǎn)操作系統(tǒng)的優(yōu)化,客觀上加大了在國產(chǎn)操作系統(tǒng)上進行應用開發(fā)的難度。因此IDE國產(chǎn)化進程的遲滯一度也曾引起關(guān)注。每每有一款“自研”IDE的問世,就能引來一波熱度,也從側(cè)面印證了開發(fā)一款自研IDE的不易。
那么為什么很難出現(xiàn)一款被廣為認同的優(yōu)質(zhì)國產(chǎn)IDE呢?
首先,先天基礎薄弱。我國計算機技術(shù)和互聯(lián)網(wǎng)行業(yè)起步較晚,在基礎軟件領(lǐng)域,國外科技巨頭已經(jīng)占據(jù)壟斷地位。在失去先發(fā)優(yōu)勢的土壤上,國內(nèi)企業(yè)要求存發(fā)展,更多是傾向于“重應用,輕基礎研發(fā)”。因為基礎軟件研發(fā)需要長期投入,后續(xù)收益無保障的情況下顯然不符合商業(yè)目的。IDE工具更是如此。
再者,技術(shù)實現(xiàn)難度高。IDE 的核心價值在于讓開發(fā)人員快速著手為新應用編寫代碼,提升開發(fā)體驗和效率。因此IDE 需將各種功能組件集中于同一工作臺中,它并非一個單純的軟件,而是一個復雜的系統(tǒng)。更重要的是,集成開發(fā)環(huán)境并非各功能組件的堆砌,還要考慮集成整合后的組織與調(diào)度。VS Code 發(fā)展至今也歷時八年,由此可見,開發(fā) IDE 確實難度巨大。
還有,商業(yè)化困境。對于像IDE這樣的大工程,純純“為愛發(fā)電”顯然不合實際。而IDE的商業(yè)化之路挑戰(zhàn)重重,前有免費的開源軟件,后有微軟、Jetbrains等老牌龍頭廠商,這對于長周期、高投入的新生IDE項目來說很難有成長土壤。要自主研發(fā)IDE,除了自主可控這一點好處外,無法從市場競爭中獲利也是其沒有發(fā)展源動力的關(guān)鍵問題。
4、結(jié)語:路雖遠,行則將至
不過近幾年情況已經(jīng)有所好轉(zhuǎn)。
一方面,國外集成開發(fā)環(huán)境存在不支持國產(chǎn)軟硬件適配、調(diào)試性能差等諸多問題,隨著信創(chuàng)市場的深入發(fā)展,應用生態(tài)需求的上升,市場對于自主可控的IDE工具的需求也會隨著增大。
另一方面,從公共動態(tài)來看,國內(nèi)互聯(lián)網(wǎng)公司在產(chǎn)業(yè)鏈的位置的確正在上移。大廠們從以前的做應用,逐漸開始做框架,做數(shù)據(jù)庫底層開發(fā)等等,都釋放出了一個信號:轉(zhuǎn)型勢在必行。
路雖遠,行則將至。事雖難,做則必成。在充斥著不確定性的大環(huán)境下,積極尋求可控的替代解決方案,構(gòu)建國產(chǎn)IDE產(chǎn)品能力,是一件必須做也需要堅持做的事情。
參考鏈接:
https://www.deepin.org/zh/2023-9-4/