Eclipse Theia vs. VS Code

8,055 阅读3分钟

参考地址:

本质区别

  • VS Code:成熟免费的桌面应用程序,下载安装即可使用,插件市场丰富
  • Eclipse Theia:可定制化开发 IDE 的开源框架(部分功能基于 VS Code 开发),支持本地、云部署,可白牌化

对于大多数代码开发者的而言,VS Code 实际上已经覆盖了大部分开发场景

扩展性

插件市场

VS Code

有自己独立的插件市场,插件丰富,但只能安装到 VS Code 中

Theia

仅支持从 openVSX 插件市场中下载

实际上是支持 VS Code 插件,但由于 VS Code 插件市场的限制,无法完全使用 VS Code 插件,只能由插件开发者将插件托管到 openVSX 上才行,所以插件数量小于 VS Code

插件开发

VS Code

通过 VS Code 提供的 API 接口,扩展注册命令、菜单、视图、语言服务器等相关功能;在 VS Code 运行时安装、卸载

相对开发较简单,熟悉 VS Code API 即可,入门要求相对较低

但这同时也意味着插件开发会受到限制,只能通过 VS Code 提供的 API 进行扩展,所以无法更换 logo,移除默认菜单、命令,创建复杂视图等功能

image.png

Theia

Theia 其实是提供了两种插件机制,一种是类似于 VS Code 的插件开发机制, Plugin,它依赖于 Theia 提供的 API 进行插件开发,用户可在 IDE 运行时进行插件的安装、卸载

另外一种是 extension,这是直接构建在了我们工具当中,用户无法进行修改

他可以访问 Theia 内部的所有方法,也就意味着,我们可以对 Theia 所有的功能进行个性化开发

这种插件开发的缺点是,对开发人员要求相对而言比较高,需要了解 Theia 的内部机制,现有文档基本上也无法满足高定制化的开发需求

image.png

云部署

VS Code for the browser

目前还在开发阶段,试用地址:vscode.dev/

无需安装,使用浏览器即可进行代码开发,主要对接 github/Azure,例如输入 vscode.dev/github.com/… /… 这种特定的 URL ,即可在浏览器中打开 IDE,进行代码开发

如果还想适配 gitlab 等其他方式的话,则需要自己开发插件进行适配

与原先插件开发的区别

image.png

虽然支持目前大多数语言开发,但还有部分语言插件得不到支持

image.png

image.png

Theia

本身就支持云部署方案

且代码开源,完全可以再自主开发

维护

VS Code

MIT 协议,基本上属于微软公司,420 个活跃贡献者,前 20 基本属于微软公司,所以控制权基本还在微软

Theia

EPL 协议,由 Eclipse Theia 基金委员会主导,可用于商业用途,110 个活跃贡献者,前 20 位属于 6 家不同的公司

总结

  • 如果只是进行代码开发的话,VS Code 实际上已经满足的大多数程序员的开发需求;但如果不单纯是代码编辑,可能还涉及到其他复杂的图表编辑操作,内部方法修改的话,则需要选择 Theia 进行定制化开发
  • 在插件开发选择上,如果没有特殊功能的话,建议选择用 VS Code 进行开发,因为 Theia 基本上也支持 VS Code 插件,减少重复开发的工作量;
  • 代码开发时候,建议封装模块、UI 组件,方便未来迁移到其他工具上