Comparación detallada entre Eclipse Theia y Visual Studio Code

Visual code vs Eclipse Theia al detalle
Una comparación detallada entre Eclipse Theia y VS Code
En las siguientes secciones, comparamos ambas tecnologías a lo largo de temas y requisitos. Esto resaltará muchas similitudes entre Eclipse Theia y VS Code, pero también señalará las diferencias centrales.

05/03/2021 12:39:53 Update:27/03/2022 05:03:18

Concepto de usabilidad

Como su nombre lo indica, VS Code se centra en el código. La herramienta es muy delgada en términos de huella de funciones en la interfaz de usuario. Su concepto de usabilidad se centra en el uso del teclado, en lugar del mouse. Muchas funciones están disponibles a través de CLI o la paleta de comandos únicamente. De hecho, algunos afirman que VS Code es un híbrido entre un IDE y un editor de código simple. Esto refleja la preferencia de muchos desarrolladores hoy en día, especialmente por el desarrollo web.

Todas estas declaraciones se aplican también a Theia. De hecho, incluso utiliza el mismo editor de código (Mónaco), la misma gestión de ventanas y una paleta de comandos muy similar. Incluso la mayoría de los atajos predeterminados son los mismos. Para ser más precisos, las similitudes mencionadas anteriormente son ciertas para todas las funciones que ofrece la plataforma Theia, si decide utilizarlas en su producto. Si no desea eso, pero sigue otro concepto de usabilidad, eso también está bien soportado en Eclipse Theia (consulte la sección Extensibilidad y adaptabilidad ).

Además de eso, la mayoría de los usuarios probablemente ni siquiera se darán cuenta de inmediato si usan VS Code o un producto basado en Theia.

Eclipse Theia

Eclipse Theia reutiliza el mismo editor de código que VS Code

Pila de tecnología y arquitectura

VS Code y Eclipse Theia se basan en tecnologías web, que incluyen TypeScript, HTML 5, CSS y Node.js. Eclipse Theia en realidad reutiliza una gran parte de la tecnología proporcionada por VS Code, sobre todo, el editor de código de Mónaco en combinación con el protocolo del servidor de idiomas (LSP). LSP le permite desacoplar las características de la interfaz de usuario de un editor de código de la lógica subyacente de una manera estandarizada. Esto no solo hace que sea más fácil proporcionar soporte para nuevos idiomas (solo necesita proporcionar un servidor de idiomas en lugar de una implementación de editor dedicado), sino que también permite una implementación distribuida, donde un cliente basado en navegador se conecta a un servidor de idiomas que se ejecuta en el nube. Como VS Code y Eclipse Theia comparten este protocolo e incluso usan el mismo cliente, puede simplemente reutilizar los servidores de idiomas existentes en ambos.Lo mismo ocurre con el Protocolo de adaptador de depuración (DAP) relacionado. Finalmente, tanto VS Code como Theia, usan Electron para su implementación de escritorio (verEn línea versus fuera de línea, computadora de escritorio versus navegador ).

En pocas palabras, la pila de tecnología y la arquitectura de Theia y VS Code es muy, muy similar. No es casualidad. Cuando se creó Eclipse Theia, en realidad reutilizó los mejores fragmentos de VS Code, en lugar de reinventar la rueda. Sin embargo, hay dos diferencias de alto nivel. En primer lugar, Eclipse Theia cubrió el caso de uso de la nube desde su inicio (consulte Online vs. offline ). En segundo lugar, Eclipse Theia introduce un sistema de módulos muy flexible y extensible (llamado ?extensiones de Theia?), que describimos con más detalle en la siguiente sección.

Extensibilidad y adaptabilidad

VS Code proporciona un mecanismo de extensión a través de "extensiones de VS Code" instalables por el usuario. Hay una API definida que se utilizará para extender VS Code. Eclipse Theia proporciona un mecanismo de extensión similar, pero lo llama "complementos de Theia". Theia implementa la misma API, por lo que muchas extensiones de VS Code también se pueden usar en Theia. En pocas palabras, las extensiones de VS Code y los complementos de Theia son conceptualmente casi iguales.

Al proporcionar una API definida, es muy sencillo escribir extensiones de VS Code. Están bien encapsulados en procesos dedicados para no "dañar" la estabilidad del producto principal. Esto incluso le permite instalarlos durante el tiempo de ejecución. Este modelo de extensión ha sido un gran éxito, el mercado de VS Code ofrece miles de extensiones (ver Ecosistema ). Sin embargo, la encapsulación tiene un inconveniente, solo se puede extender o adaptar lo que se expone en la API.

Si bien se cubren muchos casos de uso, por ejemplo, agregar comandos, vistas o extender la edición de código, algunas otras adaptaciones son difíciles de realizar porque no están previstas. 

Por ejemplo, si desea reemplazar el editor de código estándar con un editor personalizado, no basado en Mónaco, esto no es compatible desde una extensión. Esto puede sonar sorprendente, ya que podría parecer que hay extensiones que lo hacen. Sin embargo, si observa detenidamente, por ejemplo, la extensión "visual-pdf", utiliza una solución alternativa. Como se muestra en el video a continuación, se abre el editor de código predeterminado, pero la extensión PDF lo cierra directamente y abre un visor de PDF en su lugar. Esos "visores" pueden mostrar cualquier contenido, pero no pueden engancharse al comportamiento del editor predeterminado, como un estado sucio o deshacer / rehacer.

VS Code funciona para agregar editores personalizados

Como otro ejemplo, una extensión de VS Code no puede procesar la ?selección múltiple? de elementos en el árbol de VS Code, solo tiene acceso al primer elemento seleccionado. En caso de que se pregunte cómo se implementa la acción de clic derecho "Comparar seleccionados". En realidad, está "codificado" en el núcleo de VS Code.

Esto significa que los complementos son significativamente "menos potentes" en términos de lo que pueden hacer.

Para superar este tipo de limitaciones en términos de adaptabilidad, Eclipse Theia introduce un segundo mecanismo de extensiones más poderoso, llamado extensiones Theia. Theia admitió este modelo de extensión incluso antes de que se agregara el soporte para complementos de VS Code. De hecho, Theia como plataforma consta completamente de las llamadas "extensiones de Theia", que se conectan mediante inyección de dependencia. Esto hace que Theia sea muy flexible, puedes quitar cualquier cosa que no te guste y adaptar o ampliar todo lo que toca la propia plataforma.

Entonces, si compara la extensibilidad y adaptabilidad de VS Code y Eclipse Theia, debemos ver a Theia como el claro ganador en esta disciplina. Si bien puede discutir qué modelo de extensión es mejor: extensiones de VS Code (también conocidas como complementos de Theia), porque son simples y encapsuladas o extensiones de Theia, porque son más poderosas, Eclipse Theia admite ambos y, por lo tanto, le brinda la flexibilidad total. Deberá evaluar si esta diferencia juega un papel en su proyecto. Si está de acuerdo con VS Code tal como está y solo desea agregar algo compatible con la API de extensión de VS Code, está listo para comenzar. Tal vez desee crear una herramienta personalizada y con etiqueta blanca, que sea más o algo diferente a un editor de código delgado, por ejemplo, una herramienta específica de dominio para ingenieros. Si necesita más flexibilidad,bien podría llegar a los límites de VS Code, y Theia podría ser una mejor opción.

Tenga en cuenta que en lugar de usar extensiones, también puede bifurcar el proyecto VS Code para adaptar algo directamente en el núcleo o incluso con una etiqueta. Sin embargo, en este escenario, deberá mantener su bifurcación. Además, ya no se le permite utilizar el mercado de VS Code (consulte la siguiente sección)

Extensiones y tecnologías disponibles

Para cuando se haya escrito este artículo, ¡el mercado de VS Code alberga 14.625 extensiones disponibles!. Antes de compararlo con Eclipse Theia, debemos honrar este increíble éxito y declarar a VS Code como el ganador en esta disciplina.

Sin embargo, ahora que Eclipse Theia es compatible con la API de extensión de VS Code, también puede usar extensiones de VS Code en Theia . Sin embargo, existen dos limitaciones: 

Primero , Theia aún no cubre la API completa tal como la define VS Code. Por lo tanto, debe probar cualquier extensión de VS Code, ya sea que funcione o no. Sin embargo, Theia se está poniendo al día, puede observar la cobertura de la API.

En segundo lugar, los términos de uso del mercado de VS Code en realidad solo permiten una instalación en VS Code (consulte aquí para obtener más detalles). Si bien técnicamente puede instalar extensiones de VS Code en Theia en un segundo, legalmente habría tenido que descargarlas de otra fuente, por ejemplo, la página de inicio del proyecto. 

El grupo de trabajo de Herramientas de desarrollo en la nube de Eclipse (ECDT) está trabajando actualmente en una solución para este problema, por ejemplo, proporcionando un mercado independiente del proveedor para las extensiones de VS Code.

Además de las extensiones disponibles, como ambas herramientas se basan en la misma pila de tecnología basada en web, ambas le permitirán integrarse con otras tecnologías basadas en web. Además, ambos le permiten integrar fácilmente cualquier herramienta basada en CLI. Será interesante observar qué ecosistema atrae más tecnologías relacionadas con herramientas en los próximos años. Recientemente, se han iniciado bastantes proyectos adicionales en el ecosistema Eclipse para herramientas basadas en web, por ejemplo, el Graphical Language Server Protocol (GLSP) para editores de diagramas o el poyecto EMF.cloud para herramientas de modelado. Sin embargo, estas tecnologías también se pueden utilizar en VS Code.

Un editor de diagramas en Eclipse Theia basado en GLSP

Un editor de diagramas en Eclipse Theia implementado con GLSP

En línea versus fuera de línea, computadora de escritorio versus navegador

En esta sección, comparamos las capacidades en línea / fuera de línea de Eclipse Theia y VS Code. Esto significa más precisamente: qué tan bien puede utilizar la tecnología para una aplicación basada en escritorio y qué tan bien se admite el escenario en la nube donde el servidor se implementa "en algún lugar" y accede a la herramienta a través de un navegador.

Este solía ser el diferenciador más simple entre VS Code y Eclipse Theia. Theia ha apoyado bien ambos casos de uso desde sus inicios. Eso significa que la arquitectura central de Theia le permite explícitamente implementar un producto como una aplicación de escritorio (usando electron) y en la nube para acceder a través de un navegador. Incluso puede obtener su solución de una sola fuente, lo que significa que casi todo el código será el mismo en ambos escenarios. Muchos proyectos comienzan con una de las dos opciones, pero planean eventualmente respaldar la otra.

VS Code solo solía estar disponible como una aplicación de escritorio. Sin embargo, el hecho de que VS Code se basara en tecnologías web, a pesar de que se implementó como una aplicación de escritorio, llevó a la simple conclusión de que probablemente algún día habrá una versión en línea de VS Code. El 4 de noviembre, Microsoft anunció la vista previa pública de Visual Studio Online, que también proporciona un IDE basado en la nube basado en VS Code.

Sin embargo, nada de esto está actualmente disponible en el proyecto de código abierto VS Code (ver la siguiente sección), es un producto beta basado en el proyecto VS Code. Si desea utilizar VS Code Online, debe utilizar el producto Visual Studio Online alojado en la infraestructura de Microsoft. Entonces, desde el punto de vista de un desarrollador de herramientas, la categoría en línea / fuera de línea actualmente es una clara victoria para Theia. Sin embargo, si Microsoft abandona el estado beta y decide abrir también la versión en línea de código abierto, esto podría cambiar.

Podría ser de Interés...

Comparación entre los Ides Eclipse y Netbeans
Comparación de los dos IDEs
Bitcoin bussiness
Diferencias entre IDEs Visual Studio y Netbeans
servidores web
comparación de IDEs
diferencias entre estos dos grandes IDES V.S. Code vs Eclipse Theia


www.compostela21.com
diariocompostela21@gmail.com
09/12/2024