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