JavaScript多语言IDE框架Theia 1.0 发布,支持Web IDE

本周初,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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/7qg2Q6H6C1bdUwNWhq3i
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券