中国基础软件生态又有突破性进展!
基础软件是构建数字经济的底座,随着我国数字经济步入深化应用、规范发展、普惠共享的新阶段,国产基础软件也步入了发展快车道,构建起基于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确实难度巨大,路虽远,行则将至。事虽难,做则必成。我们也欢迎全球开源爱好者参与进来,帮助它继续成长!