本周初,Eclipse 基金会宣布发布Eclipse Theia 1.0,这是一个用于构建 Web 和本地 IDE 的开源框架。 Theia 提供了一个用于构建 IDE 的 JavaScript 框架,该 IDE 可以运行在 Web 上,也可以打包成 Electron 应用程序运行在桌面上。它被设计成与 VSCode 扩展相兼容,并且使用相同的语言服务器协议(Language Server Protocol,LSP),以便能够远程开发各种编程语言,包括 Java、Python、Rust 及更多其他语言。
尽管 Theia 表面上看起来与 VSCode 相似,但实际上它是一个 IDE 框架,而不是 IDE 本身。它提供了组件,比如,是 JavaFX 而不是 IDE 本身支持了 GUI 应用程序。但是,许多 IDE 是构建在 Theia 的预发行版本上的,其中包括主流的Gitpod.io以及Eclipse Che,前者为我们的应用程序提供了基于 Web 的 IDE,后者可以在 Kubernetes 集群中运行以用于自托管的解决方案 。
Theia 项目的项目负责人 Sven Efftinge,强调了 Theia 作为框架与微软 VSCode 之间的一些区别:
微软禁止非 Visual Studio 产品安装从其市场下载的任何二进制文件。(请参阅条款)
考虑到大多数扩展都是开源的,而不是由微软开发的,因此情况非常糟糕。
这种限制不仅影响 Theia 和它的所有下游采用者,而且还影响基于 VS Code 的开源代码的发布,比如 VS Codium。
虽然 VSCode 是免费提供的,但它具有一些非开源的组件,并向微软报告了遥测;这导致了 VSCodium 的构建,它删除了非开源组件。然而,用于编译和高亮代码的语言服务器协议是可以自由实现的,并且可以被其他 IDE 使用,同样的方法也可用于 Theia 及其衍生工具。
不可用的是微软市场。为了解决这个问题,Eclipse Theia 项目创建了Open VSX作为微软市场的开源实现,并将open-vsx.org托管为开源扩展的公共注册表。这也支持用于托管 VS Code/Theia 扩展的本地解决方案。
Theia 的开发已经进行了大约 18 个月,它是Gitpod.io的框架,Gitpod.io 提供了一个基于 Web 的 IDE,用于构建 GitHub、Gitlab 以及(即将)BitBucket 托管项目。 Gitpod.io 使我们 git 存储库能够在 Web 浏览器中打开、导航、编辑、提交和运行。它提供了一个基于 docker 的运行时来执行代码,以及一个允许在适当位置执行代码的 shell。 Theia 是建立在其他基于 Web 的 IDE(例如 CodeEnvy、Cloud9 及 Bespin)的经验之上的。
Eclipse Che 提供了一种可托管的基于 Web 的 IDE 体验,它可以在本地运行,并使用 Kubernetes 扩展其后端。 Eclipse Che 已经有四年多的历史了,它最初使用的是基于 GWT 的 IDE,但是随着7.0版本的发布,它切换到Eclipse Theia上运行了,从而可以提供了更大的灵活性,并且可以在运行时安装插件,而无需重新编译 GWT 代码。
其他商业和开源 IDE 也使用了 Theia,比如 Arm 的mBed Studio、Arduino 的Pro IDE、Google 的Cloud Shell编辑器及其他更多。它们使用相同的代码库,但既可以作为 Web 应用程序运行,也可以使用 Electron 运行时作为本地 IDE 运行。
Eclipse 基金会执行的董事 Mike Milinkovich 强调了一些为基于 Web 的 IDE 提供标准化框架的好处:
Theia 是由不同贡献者、提交者和支持公司(如 TypeFox、 Ericsson、Red Hat、ARM)共同开发的。在过去的三个月中,它有超过 50 名提交者和贡献者,这是一个快速发展、广受欢迎且开放的社区,在这里所有的贡献都能被接受。
Theia 不仅仅是 VS Code 的替代品。 Theia 与 VS Code 之间的主要区别在于:Theia 旨在被其他公司和社区所采用,以构建和部署基于 Web 的现代开发人员体验。 VS Code 很棒,但它只会是微软的产品。
Theia 旨在被这样一群人所修改、扩展和发布,他们想要创建与 VS Code 一样出色的开发人员工具(包括使用相同的 Monaco Editor),并且可以利用 VS Code 扩展生态系统。当然,它是基于EPL 2.0许可的,因此组织或个人使用 Theia 来构建和发布产品是很容易的。
如果您有兴趣了解 Theia 的外观或功能,可以在GitPod中启动一个包含Theia的工作区以进行查看。
原文链接:
Theia Framework 1.0 Enables Web IDEs
评论