首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自研代码超 14 万行、沉淀 11 年,deepin-IDE:正在改写“为什么没有好的国产 IDE”答案!

作者 | 屠敏

受访者 | 王波,统信软件终端操作系统产线研发总监

出品 | CSDN(ID:CSDNnews)

“国产”,一个在近几年不断被提及的词语。

从 TiDB、GoldenDB、GaussDB、OceanBase 数据库,到 Deepin、UOS、HarmonyOS 等操作系统的崛起,“国产力量”随着时间、政策、企业的多方努力迸发而出。不过,纵观在欧美基础软件生态已经形成长期垄断的格局下,“国产化”这条路走得从来都不容易。

以程序员编写、调试和管理计算机的必备程序——IDE 为例,根据 CSDN 发布的《2023 中国开发者调查报告》显示,Visual Studio Code 作为轻量级跨平台工具,有 38% 的开发者在日常工作中进行使用,多年来排名稳居第一,生态也足够成熟与丰富。

在 IT 国产化风潮涌起之时,有人不解发问,除了 VS Code,行业中不乏还有 Visual Studio、Eclipse 等产品,作为软件开发生态的入口,IDE 是否真的有必要自研?想要让国产操作系统生态统一,自研 IDE 是否是必经之路?现如今国产 IDE 行至何处?又该如何跟上主流工具的步伐,从“可用”蜕变为“好用”?

近日,统信软件运营的桌面操作系统根社区 deepin 以自研代码 14 万余行、全球首款自主研发、面向信创生态的集成开发环境 deepin-IDE(深度集成开发环境)提交答卷。面对以上的种种疑问,来自统信软件终端操作系统产线研发总监王波也现身为我们一一解惑。

一问:已百花齐放的 IDE 领域,自研是必选还是可选项?

对于这个问题,王波斩钉截铁地回答道:IDE 是操作系统必备的配套软件,自研是“生态高质量发展”的必由之路。

只有自研才能让国产基础软件生态形成闭环,这也是 deepin 社区沉淀多年研发 deepin-IDE 的主要原因。

回顾研发 deepin-IDE 的心路历程,最早可以追溯到 2012 年。在那个 QtCreator、Eclipse、VSCode、Visual Studio和 XCode 等工具百花齐放的时代,deepin 选择「另辟蹊径」,王波表示,这是对市场环境的观察和技术背景深思熟虑的结果。

首先,从市场环境来看,不同国产平台之间的差异显著,开发工具的选择变得复杂。在开发应用过程中,王波和他的团队不仅面临性能、开发效率和平台适配的难题,难以在这些方面找到一个平衡点;还需要为了满足不同平台的需求,不得不基于一份代码开发多个适配版本,这不仅浪费了时间和资源,还增加了维护的复杂性。

再者,从同类产品角度来看,在考察多款 IDE 的基础上,他们发现这些 IDE 在实际应用中存在诸多不同的问题,譬如 QtCreator 未提供足够多的多语言支持,这在多语言开发环境下会造成不便;而 Eclipse 的启动性能较差,可能会拖慢开发者的工作效率;VSCode 虽然受欢迎,但它在资源占用方面存在问题,可能会导致开发存在性能瓶颈;另外,这些 IDE 也缺乏反向调试和多架构代码迁移等非常实用的能力,这在一些复杂项目中是必不可少的。

最后,从内部来看,基于 deepin 操作系统, deepin 研发团队逐渐完善了生态,相继开发了 DTK(deepin tool kit)、玲珑软件包管理方案、应用商店等功能时,很多国外 IDE 无法有效支持这些集成性的服务,自然无法让基础软件体系实现闭环。

在这个背景下,王波和他的团队开始意识到,无论是内部,还是外部,亟须一款「属于我们自己的 IDE」来满足对原生应用的需求。

因此,在兴趣驱使下,越来越多的工程师自愿加入自研 IDE 的队伍,寻找解决上述挑战并提高他们的开发效率和产品质量的最佳实践。

二问:沉淀 11 载,deepin-IDE 行至何处?

从 2012 年萌生这一想法,到 2023 年 9 月 4 日初次对外发布,deepin-IDE 历经 11 年的迭代与打磨。

作为操作系统起家的统信,在研发 deepin-IDE 维度也自带天然的优势。譬如,其在深度社区创立之初就基于 Emacs 开发了 deepin-emacs。此时虽然对于一般的开发者入门来说,门槛还是稍微有点高,但是其功能集成度也已经非常好了。

当时间来到 2015-2016 年,他们开始尝试大量使用 Qt 开发,采用 QtCreator 进行相关工具的改造,将模版集成到其中,也修复了不少 Bug。

2018 年,deepin 研发团队参与了一个技术专项,涉及到一些集成开发环境的技术,比如反向调试、性能剖析等。

到了 2022 年,deepin 在发布根社区之际,也透露了会在 2024 年做 IDE 和一些生态建设工具的开发。

“如今进度比预期好”,王波高兴地说道,“它满足了用户对 IDE 常用功能的基本需求,如智能编辑器、高度可扩展的命令系统、工程管理、代码版本管理集成、构建管理系统、插件系统等之外,还支持代码迁移、语义补全、语法高亮、重构支持、反向调试、低开销的实时性能分析工具等特色功能。”

以下为 deepin-IDE 已有功能速览:

目前,deepin-IDE 平台支持 C++、C、Java、Python、Javascript 五大主流编辑语言,支持常用构建工具 CMake、Maven、Ninja、Gradle 等;内置语言服务器协议(LSP)、调试适配器协议(DAP);支持主流版本控制系统 Git 和 SVN 等。

与此同时,它还具有反向调试功能,可通过进程执行历史回放、事件分类管理、时间轴管理等手段,进一步提升应用的调试效率和开发能力。

也支持代码迁移,可以辅助开发者将 x86 平台的 Linux 应用迁移到龙芯、飞腾等国产处理器架构,及统信 UOS等国产操作系统上,使用该功能可以自动分析出需修改的代码内容,并给出代码迁移指导,降低迁移难度,提升迁移效率。

在王波看来,相较 QtCreator 跨平台特性,deepin-IDE 提供多语言支持;相较 Eclipse 多语言支持,deepin-IDE 性能更好,尤其国产平台上使用体验更好,这一点对于在国内市场上开发和使用应用程序的开发者来说尤为重要。

综合来看,deepin-IDE 不仅解决了跨平台开发的问题,还提供了多语言支持和出色的性能体验。此外,它还具备一些如上述提及到的反向调试和代码迁移差异化功能,进一步增强了其吸引力。在未来,deepin-IDE 还将进一步集成更多服务,如 DTK、玲珑、应用商店发布等,以满足开发者在应用程序开发和发布方面的更广泛需求。

三问:操作系统 vs IDE,二者的开发难度对比?

论及研发过程中所面临的挑战,我们将其与操作系统进行了直观的对比。

王波表示,操作系统和 IDE 的研发存在一些通性问题,但也有一些非常不一样的地方。

首先,毋庸置疑的是,它们都面临一系列复杂的挑战:

无论是操作系统,还是 IDE,它们的开发难度都比较高,需要处理复杂的技术问题。

在客户层面,存在迫切的需求,因为用户对于高质量的基础软件和强大的 IDE 工具有着强烈的期望。

在国产平台上,多架构的支持也是一个重要的问题,因为不同的硬件架构需要不同的优化和适配。

同时,这些领域都有成熟的竞品,对于新产品的竞争起点要求较高,需要在性能和功能上取得突破。

此外,对于国产平台而言,差异化功能的设计没有可参考的标杆,因此需要不断摸索和尝试新的方法。这也意味着在技术和创新方面需要不断努力,以满足用户的不断增长的需求。

当然,操作系统和 IDE 的开发存在一些明显的不同之处。王波剖析道:

操作系统作为基础软件更为庞大和复杂,它需要处理更多的功能和系统级任务,相对而言,IDE 更专注于开发工具本身的功能。

其次,IDE 的生态系统在很大程度上依赖于操作系统的生态系统发展,后者提供了 IDE 运行的环境和基础设施。

最后,操作系统已经发布了多个成熟的产品版本,拥有丰富的历史和经验积累。相比之下,IDE 仍然处于相对较早的发展阶段,需要不断改进和发展以满足不断演进的开发需求,这也是 deepin-IDE 接下来重点发力的一个重要方向。

四问:从可用到好用,作为自研 IDE 的代表,deepin-IDE 的突破点?

在王波看来,随着越来越多的工程师和科学家在技术研究、创新和开发方面具备了强大的实力,以及在开源文化的推动下,我国的信息化产业整体进入了一个高速发展的阶段,大量技术突破涌现是大势所趋,各类国产生态厂商百花齐放,各领域相互的补全,也促使了国产各类软硬件技术的崛起,使得许多开发者都想自己做一些有趣的事情,构成了技术生态的良性循环。

这为 deepin-IDE 的发展也奠定了坚实的基础。

时下,面对外界对于国产化产品的质疑,deepin 社区曾在一篇文章中正面回应道,「deepin-IDE 和 VSCode 没有关联!deepin-IDE 根植于开源社区,它依赖于 scintilla 等开源组件,本身也使用了 GPLv3 协议开源。」

面向未来,王波表示,deepin-IDE 正在采取一系列措施,譬如替换或优化现有编辑器、聘请更优秀的设计师对界面进行更优的设计、对稳定性进行提升、扩展类似 VSCode 插件市场的支持,促使 deepin-IDE 从“能看”到“好看”,从“可用”变为“好用”。

最后,当问及 deepin-IDE 是否会结合目前火爆的大模型,如同在 VS Code 中使用 GitHub Copilot 时,王波透露,有计划和国内的 AI 模型厂商合作,引入 AI 编程助手插件,实现类似代码生成与补全、代码注释等功能。具体什么时候实现,敬请期待。

目前 deepin-IDE  已通过 GitHub 开源,感兴趣的小伙伴也可上手体验一番:https://github.com/linuxdeepin/deepin-unioncode

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O9cUcq717eqNQ0g-0YoMSzqg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券