Llegamos a ustedes gracias a:



Reportajes y análisis

Reseña de IDEs de nube: AWS Cloud9 vs. Eclipse Che vs. Eclipse Theia

[09/03/2019] Integrar un nuevo desarrollador a un proyecto de programación con muchas dependencias a veces puede ser una pesadilla. He visto un caso extremo en el que la compañía finalmente se rindió y le compró al desarrollador una nueva computadora después de un mes de problemas al intentar configurar su vieja computadora. Más comúnmente, configurar un nuevo ambiente de desarrollo para un nuevo desarrollador puede llevar entre tres días y dos semanas.

Ese problema es uno de los motivos para que los desarrolladores tengan espacios de trabajo en la web. Otro motivo es que las máquinas para el desarrollo local necesitan importantes recursos de CPU y RAM, lo que aumenta el costo del hardware; esos recursos permiten al desarrollador construir el proyecto de manera expedita. Las computadoras para acceder a espacios de trabajo basados en la web pueden funcionar con hardware de gama más baja que las computadoras para el desarrollo local.

Como beneficio adicional, los espacios de trabajo para desarrolladores basados en la web pueden centralizar y estandarizar una configuración. ¿Cuántas veces ha escuchado "Funciona en mi máquina en respuesta a un informe de error? Los ambientes estandarizados pueden eliminar ese problema.

En este artículo analizamos tres IDEs de nube que proporcionan espacios de trabajo basados en la web para desarrolladores. Dos de ellos, Eclipse Theia y Eclipse Che son proyectos de código abierto bastante recientes que se encuentran actualmente bajo los auspicios de la Eclipse Foundation. El tercero (AWS Cloud9) es un producto anterior que ahora es propiedad de Amazon Web Services y está integrado con éste.

Eclipse Theia

Eclipse Theia es un proyecto de código abierto para proporcionar la experiencia de desarrollo de Visual Studio Code en un navegador; también puede ejecutarse en desktop en el Electron shell. Theia confía en el Language Server Protocol de Visual Studio Code para proporcionar la finalización del código específico del lenguaje y las otras funciones que esperamos de un editor de código moderno.

Debido a que puede aprovechar los servidores de lenguajes escritos para Visual Studio Code, Theia tiene acceso a más de 60 servidores de lenguajes disponibles, como JavaScript, Java, Python y TypeScript. Theia también admite el protocolo del adaptador de depuración.

El mismo Theia está escrito en TypeScript y utiliza PhosphorJS como la base de su shell y sus diseños dock con capacidad de ser arrastrados. Integra un terminal que vuelve a conectarse en la recarga del navegador para mantener el historial de línea de comandos. Si lo desea, puede crear sus propias extensiones para Theia.

Existen tres formas principales de probar Theia. Uno es ejecutarlo en Docker:

dockerrun -it -p 3000: 3000 -v "$(pwd):/home/project: cached theiaide /theia: next

El segundo es ejecutarlo en Gitpod (vea la barra lateral y la captura de pantalla que se muestra abajo). La tercera es ejecutar la versión 7 o posterior de Eclipse Che (consulte la siguiente sección), que usa Theia como su interfaz de usuario en lugar de la interfaz de usuario de Java que se usa en versiones anteriores de Che.

El proyecto Eclipse Theia incluye contribuciones de TypeFox, Ericsson, Red Hat, IBM, Google y ARM. La hoja de ruta del proyecto incluye un sistema de complemento para admitir las extensiones de VS Code (más allá de los servidores de lenguaje), la integración con marcos de prueba y otras mejoras.

En la captura de pantalla mostrada arriba, estamos ejecutando Theia en un navegador del proyecto GitHub theia-ide/theia, a través de Gitpod. Note la similitud de Theia con el código de Visual Studio tanto en funciones como en apariencia. También tenga en cuenta que Gitpod construyó automáticamente el proyecto en la ventana del terminal.
IDE, AWS Cloud9, Eclipse Che, Eclipse Theia

TypeFox Gitpod

Gitpod es un ambiente comercial alojado (ver la captura de pantalla arriba) diseñado para abrir los repositorios de GitHub en espacios de trabajo. El IDE de Gitpod es de código abierto y se basa en Eclipse Theia. Actualmente en fase de prueba beta gratuita, Gitpod siempre permanecerá gratuito para proyectos de código abierto, pero eventualmente requerirá una subscripción para abrir repositorios privados y para utilizarse por más de cien horas mensuales.

La nube Gitpod.io se ejecuta actualmente en varios clústeres de Kubernetes alojados en tres distintas regiones del mundo dentro de la infraestructura de Google Cloud. El producto Gitpod también está disponible para alojamiento privado.

Eclipse Che

Eclipse Che es un servidor de espacio de trabajo de código abierto para desarrolladores, e IDE de nube, diseñado para equipos y organizaciones. La versión 7 de Che, actualmente en versión beta, utiliza Eclipse Theia como la base de su IDE. Las versiones más antiguas de Che utilizan un IDE basado en GWT. Las áreas de trabajo de Che se ejecutan en contenedores en Docker, OpenShift o Kubernetes.

Puede ejecutar Che en la nube pública, en una nube privada o instalarlo en cualquier sistema operativo. Che ha sido probado en Ubuntu, Linux, MacOS y Windows. También puede ejecutar Che en un espacio de trabajo de autoservicio alojado aquí, para lo cual deberá tener o crear un registro gratuito de OpenShift o Red Hat.

Adicionalmente, Eclipse Che comprende el núcleo de Red Hat CodeReady Workspaces, el nuevo ambiente de desarrollo para OpenShift. Además de ser compatible con Red Hat, los espacios de trabajo de CodeReady tienen stacks construidos previamente, con tecnologías de Red Hat soportadas, e incluyen el SSO de Red Hat para manejar la autenticación y la seguridad entre los equipos de desarrolladores.

El proyecto Eclipse Che incluye contribuciones de más de 20 compañías, como CodeEnvy (el desarrollador original de Che), Docker, IBM, Red Hat y TypeFox. La hoja de ruta de Che incluye finalizar la integración de Theia y los sistemas de plug-in para Theia y Che.

En esta captura de pantalla, estamos ejecutando Eclipse Che 6 en un navegador alojado en che.openshift.io, con un stack Node.js. El proyecto es una aplicación web "Hello, World! basada en Node.js y Express.
IDE, AWS Cloud9, Eclipse Che, Eclipse Theia

AWS Cloud9

El IDE de Cloud9, que fuera un IDE de Go en el 2017, ahora pertenece a Amazon Web Services. Además de tener un editor de código en múltiples lenguajes, basado en navegador, depuradores para varios lenguajes y un terminal que está preautorizado para los servicios de AWS, Cloud9 ahora permite la codificación colaborativa.

Puede ejecutar ambientes de desarrollo Cloud9 en instancias administradas de Amazon EC2 o en cualquier servidor Linux que admita SSH. Cloud9 incluye herramientas para más de 40 lenguajes de programación, aunque solo cinco tienen depuradores, siete tienen linting y 12 tienen código completado.

Si ejecuta Cloud9 en EC2, de manera predeterminada, la instancia de EC2 se detendrá automáticamente después de 30 minutos de cerrar Cloud9, y su código persistirá en el almacenamiento de Amazon EBS. Si ejecuta Cloud9 en su propio servidor Linux, el código persistirá en el almacenamiento local. Si reinicia Cloud9 después de que su instancia subyacente se haya detenido, Cloud9 reiniciará automáticamente la instancia y restaurará su sesión de edición donde la dejó.

Puede rellenar fácilmente una instancia de Cloud9 desde un repositorio o desde archivos locales. En la captura de pantalla de abajo, usé Git desde la línea de comandos de Cloud9 para revisar el repositorio de GitHub para Keras. Si está editando un proyecto basado en un repositorio, para el que tiene permiso de confirmación, puede actualizar el repositorio según sea necesario y extraer los cambios desde la línea de comandos. Cloud9 no tiene soporte gráfico para el control de versiones.

Tenga en cuenta la vista de esquema a la derecha de la captura de pantalla a continuación, que funciona bien para la navegación general dentro de un archivo. El menú Go que se muestra en la parte superior izquierda funciona bien para una navegación más general. No hay funcionalidad de refactorización en Cloud9, aunque hay un cambio de formato de código simple.

AWS Cloud9 está integrado con Amazon Lightsail, AWS CodeStar, funciones de AWS Lambda y AWS CodePipeline. La integración Lambda parece ser especialmente buena.

Clonado desde GitHub, AWS Cloud9 IDE muestra el código Python de Keras. Observe la vista de esquema a la derecha y las opciones en el menú Go. Los atajos de teclado que se muestran son para MacOS.
IDE, AWS Cloud9, Eclipse Che, Eclipse Theia

¿Cuál IDE de nube?

Eclipse Theia, Eclipse Che y AWS Cloud9 le permiten editar y depurar códigos en múltiples lenguajes de programación desde un navegador. Existen diferencias en el diseño y la funcionalidad, pero no las suficientes como para que sean relevantes -a menos que desee lograr algo bastante avanzado, como la refactorización.

Cloud9 es una opción especialmente buena si se encuentra trabajando en proyectos de AWS, y Che es una opción especialmente buena -al igual que CodeReady- si está trabajando en el código para los sistemas de Red Hat. Theia proporciona el mejor ambiente de edición de los tres, pero una vez que el Che 7 salga de la versión beta, también tendrá un IDE de Theia.