Eclipse Theia:Eclipse的继承者?

Posted CSDN资讯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse Theia:Eclipse的继承者?相关的知识,希望对你有一定的参考价值。

整理 | 章雨铭 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

Eclipse是一个基于Java的、开放源码的、可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境(Integrated Development Environment,IDE)。转眼, Eclipse已经有20多个年头了。然而,互联网的发展日新月异,下一代桌面产品和应用程序现在正在使用Web技术构建。在许多情况下,需要支持具有相同功能的桌面和 Web 部署。许多Eclipse平台采用者找到了新的平台——Theia,来更好地迁移其现有的工具、IDE和应用程序。那么,Eclipse Theia会成为Eclipse的下一代吗?

Eclipse Theia是什么?

Eclipse Theia 是Eclipse基金会打造的云端及桌面IDE框架,是一个灵活的平台,用于开发用于任何目的的工具。通过其扩展和插件API,它与JSON Schema、EMF、JSON Forms、EMF.cloud、Sprotty和GSLP等技术很好地集成在一起。

Eclipse Theia vs Eclipse Desktop

Eclipse Theia会成为Eclipse Desktop的下一代吗?这两者有什么相似之处又各有哪些优势吗?关于这个问题EclipseSource的领导人之一Jonas Helming在近期的一篇博客中做出了解答。

话不多说,先来看一下对比的最终结果,进而我们在下文中一一比对。

工作台

Eclipse Desktop提供了的工作台由高级窗口布局组成,包括视图、编辑器、菜单、工具栏和透视。此外,它可以管理首选项、全局选择和其他许多功能。

Eclipse Theia支持几乎所有这些功能,唯一一点是不支持透视功能。但是,由于Theia当前已经存储并恢复了窗口布局,如果需要的话,添加此布局也很简单。Eclipse Theia可能还缺少一些其他东西,但是在实际操作中并不会有很大的影响。

和Eclipse Desktop相比,Theia中有的功能更好,例如,Theia工作台是完全可设计且可更改主题的。

总的来说,Eclipse Desktop具有更多功能,而Theia具有更好的样式选项和更简单的工作台API,在这一方面,两者似乎不相上下。

模块性

Eclipse出色的模块化是其取得成功的重要因素。3.0版本中引入OSGi改进了Eclipse的模块化,而Eclipse Theia也延续了Eclipse的这一优点,它甚至还支持两个模块:Theia扩展和VS Code扩展。这一回合,Eclipse Desktop和Eclipse Theia也打成了平手。

灵活性和适应性

由于其扩展API,Eclipse Desktop很灵活且具有适应性。然而Theia在这方面似乎更胜一筹,因为它在所有领域(包括核心)中都采用依赖注入,用户可以轻松地适应和替换几乎所有东西。Eclipse Theia会赢得更多喜欢自定义的用户的喜爱。

用户界面框架支持

尽管SWT已经有些年头了,但是它仍然是一项伟大的技术。利用JFace和EMF Forms等技术,用户仍然可以非常高效地开发桌面UI。然而,现在绝大多数的UI都是基于Web的,因此,在网络UI框架方面的技术发展已经超过了桌面。这使SWT在早期获得成功的原生外观黯然失色了。

而这一局Eclipse Theia显然成为了赢家,使用Theia,用户可以从浏览器UI框架的巨大生态系统中挑选,而且,还可以灵活的改变基于Web的UI的主题和风格。

语言支持

在语言支持方面,可以通过包含相应的模块非常轻松地使用编程语言是Eclipse Desktop和Eclipse Theia的一大优点。

Eclipse Desktop对流行的编程语言(如 Java、C/C++ 和 Python)具有世界一流的支持。

Eclipse Theia支持语言服务器协议 (LSP), 用户能够使用任何语言服务器,甚至是 Eclipse 生态系统之外的语言服务器。

LSP能够让语言支持独立于任何工具构建。比如,用户可以在Theia、VS Code甚至Eclipse Desktop中使用相同的语言服务器。此外,语言服务器可以用任何语言开发,通常是用它们支持的语言。例如,C/C++社区可以在 C 中实现语言支持,而不必担心 UI 技术。

总的来说,在这方面Eclipse Desktop和Theia难分高下。对于在Eclipse Desktop中具有本机支持的语言,特别是Java、C / C++或Python,Eclipse Desktop可能仍然会获胜。但是,在支持语言的数量上,LSP更胜一筹。然而,与Eclipse Desktop相比,Theia能更好地支持LSP。

图像

在这方面,Theia更加出色。借助GEF和GMF运行时,Eclipse 桌面成为图表编辑器的流行平台。

但是有了Eclipse GLSP(基于 Eclipse Sprotty),生态系统为基于现代Web 堆栈的图表编辑器提供了一个世界领先的框架。

GLSP(图形语言服务器平台)的工作方式与 LSP 类似,但适用于图表。因此,GLSP不仅限于Theia,而且可以在不同的工具平台和Web应用程序中使用。

另外,GLSP为Theia提供了一个专用的集成,可以很容易地将GLSP编辑器与Theia的许多原生功能连接起来。

以数据为中心的工具和建模

Eclipse Desktop可以满足建模工具的任何要求,但是和图表一样,这个领域并不是早期基于Web工具的重点。然而,随着EMF.cloud和JSON Forms的出现,一个以Theia为中心的基于Web的数据中心工具的生态系统也发展了起来。EMF.cloud提供了一些新的组件,但它也允许你重新使用EMF生态系统中的一些现有技术,包括EMF本身。

虽然Eclipse Desktop在这个领域仍然提供了更多的功能,但是这种情况可能不会维持太久,Theia可能在不久后超越Eclipse桌面。

可用扩展

Eclipse tool platform和所有的Eclipse IDE都可以用插件进行扩展。另外,Eclipse Marketplace提供了对大量工具功能的访问。

Eclipse Theia支持VS Code扩展,Eclipse基金会为这些扩展建立了一个名为Open VSX的Open Marketplace。

这两种Marketplace承载的扩展数量几乎完全相同,所以这一回合是明显的平局。

在网络/浏览器/云中运行

这个方面比拼的赢家无容置疑是Theia。

因为Eclipse Tool Platform是为桌面而不是浏览器构建的。当然,用户也可以使用远程应用程序平台 (RAP) 将 RCP 应用程序迁移到浏览器,但是还是存在一些限制,所以还不足以满足用户的需求。

而Eclipse Theia是基于Web堆栈设计的,用户可以用它来构建基于桌面的工具使用Electron)或在浏览器中运行它。

生态系统和维护

因为这两个项目都是Eclipse开源项目,所以没有必要的比较开放治理、供应商中立性、许可证或透明流程。所以这一方面只比较其生态系统的多样性和稳定性。

在过去的20年,Eclipse Desktop显然已经取得了辉煌的成绩,而且项目也变得更加多样化。

现在的Eclipse Theia比同龄的Eclipse Desktop更加多样化,所以在未来很有可能超过Eclipse Desktop,毕竟基于Web平台的大转变才刚刚开始。

另外值得注意的是,与Eclipse Desktop相比,Theia的代码库要小得多。主要原因是Theia重用了许多标准库和技术(如html、CSS或LSP),这减少了平台的维护负担。

如果考虑未来的发展,基于Web的工具成为大趋势,那么Eclipse Theia有可能在未来几年获得更多的用户和贡献者。但是现在看来,这一方面依然可以算是平局。

开箱即用

Eclipse Tool Platform本身并不是一个可下载的IDE产品,但可以用来构建工具。然而,Eclipse生态系统从一开始就提供了基于该平台的优秀工具和IDE,最重要的是Java开发工具,但也有许多其他工具,例如用于C/C++、Python或建模。

Theia专注于成为一个优秀的平台,用户可以通过使用采用者提供的基于Theia的工具(如Eclipse Che、Arm Mbed Studio或新的Arduino IDE)来使用Theia。去年Theia Blueprint发布提供了一个基于Theia的模板工具,它可以作为一个现成的IDE使用,但是还并不成熟。所以这次算Eclipse扳回一局。

总结

虽然在各方面的比较中,很多方面看似都难分高下,但实际上,Theia在很多方面都已经追赶上Eclipse Desktop Platform,结合未来发展的趋势,可以说Eclipse Theia是Eclipse Tool Platform的下一代。但这并不意味着,Eclipse IDE、Eclipse Tool Platform就会被弃用。

你认为Eclipse Theia是Eclipse的下一代吗?这两个中哪一个更深得你心?欢迎留言告诉我们。

参考资料:

https://eclipse-foundation.blog/2022/04/19/eclipse-theia-is-the-next-generation-of-eclipse/
https://eclipsesource.com/technology/eclipse-theia/

以上是关于Eclipse Theia:Eclipse的继承者?的主要内容,如果未能解决你的问题,请参考以下文章

千万不要打开XML!利用vscode构造RCE利用链分析

Eclipse这是要干掉Visual Studio Code !!!

android eclipse 怎么查看类的继承关系

如何在eclipse中看哪个类继承某个接口

java eclipse 作业代写代做eclipse实验

Java-Maven:Eclipse中Maven依赖聚合继承特性