Disparo de IDE en la nube: AWS Cloud9 contra Eclipse Che contra Eclipse Theia

Llevar a 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 empresa finalmente se rindió y le compró al desarrollador una computadora nueva después de un mes de problemas al intentar configurar la anterior. Más comúnmente, configurar un nuevo entorno de desarrollo para un nuevo desarrollador puede llevar entre tres días y dos semanas.

Ese problema es una de las motivaciones de los espacios de trabajo para desarrolladores basados ​​en la web. Otra motivación 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 rápidamente. Las computadoras para acceder a espacios de trabajo basados ​​en la web pueden salirse con la suya con hardware de gama 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 entornos estandarizados pueden eliminar ese problema.

En este artículo, analizaré tres IDE en la nube que proporcionan espacios de trabajo para desarrolladores basados ​​en la web. Dos de ellos, Eclipse Theia y Eclipse Che, son proyectos de código abierto bastante recientes que actualmente están bajo los auspicios de la Fundación Eclipse. El tercero, AWS Cloud9, es un producto más antiguo que ahora es propiedad de Amazon Web Services y está integrado con ellos.

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 se puede ejecutar en el escritorio en el shell de Electron. Theia se basa en el protocolo de servidor de idiomas de Visual Studio Code para proporcionar finalización de código específico del idioma y las otras características que esperamos en un editor de código moderno.

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

Theia en sí está escrito en TypeScript y usa PhosphorJS como base para su shell y sus diseños de muelle arrastrables. Integra un terminal que se vuelve a conectar al recargar el navegador para mantener el historial de la línea de comandos. Puede crear sus propias extensiones para Theia si lo desea.

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

docker run -it -p 3000: 3000 -v "$ (pwd): / home / project: cached" theiaide / theia: siguiente

El segundo es ejecutarlo en Gitpod (consulte la barra lateral y la captura de pantalla a continuación). El tercero es ejecutar Eclipse Che versión 7 o posterior (consulte la siguiente sección), que usa Theia como su interfaz de usuario en lugar de la interfaz de usuario de Java utilizada 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 complementos para admitir extensiones de VS Code (más allá de los servidores de idiomas), integración con marcos de prueba y otras mejoras.

Tipo Fox Gitpod

Gitpod es un entorno alojado comercial (vea la captura de pantalla anterior) diseñado para abrir repositorios GitHub en espacios de trabajo. El IDE de Gitpod es de código abierto y está basado en Eclipse Theia. Actualmente, en una fase de prueba beta gratuita, Gitpod siempre será gratuito para proyectos de código abierto, pero eventualmente requerirá una suscripción para abrir repositorios privados y usarlo durante más de 100 horas al mes.

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

Eclipse Che

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

Puede ejecutar Che en la nube pública, 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 en //che.openshift.io/, para lo cual deberá tener o crear un inicio de sesión gratuito de OpenShift o Red Hat.

Además, Eclipse Che comprende el núcleo de Red Hat CodeReady Workspaces, el nuevo entorno de desarrollo para OpenShift. Además de contar con el respaldo de Red Hat, los espacios de trabajo de CodeReady tienen pilas preconstruidas con tecnologías de Red Hat compatibles e incluyen Red Hat SSO para manejar la autenticación y la seguridad entre los equipos de desarrolladores.

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

AWS Cloud9

El IDE de Cloud9, que mencioné como un IDE de Go en 2017, ahora pertenece a Amazon Web Services. Además de tener un editor de código multilingüe basado en navegador, depuradores para varios idiomas y un terminal que está preautorizado para los servicios de AWS, Cloud9 ahora permite la codificación colaborativa.

Puede ejecutar entornos de desarrollo de 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 finalización de código.

Si ejecuta Cloud9 en EC2, la instancia EC2 se detendrá automáticamente después de cerrar Cloud9, de manera predeterminada después de 30 minutos, 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 poblar fácilmente una instancia de Cloud9 desde un repositorio o desde archivos locales. En la captura de pantalla a continuación, utilicé Git desde la línea de comandos de Cloud9 para verificar 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 y extraer los cambios necesarios 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 muy bien para la navegación general dentro de un archivo. El menú Ir que se muestra en la parte superior izquierda funciona muy bien para una navegación más general. No hay funcionalidad de refactorización en Cloud9, aunque hay un formato simple de código.

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

¿Qué IDE en la nube?

Eclipse Theia, Eclipse Che y AWS Cloud9 le permiten editar y depurar código en varios lenguajes de programación desde un navegador. Hay diferencias en el diseño y la funcionalidad, pero no lo suficiente como para importar a menos que desee lograr algo bastante avanzado, como refactorizar.

Cloud9 es una opción especialmente buena si está trabajando en proyectos de AWS, y Che es una opción especialmente buena (como CodeReady) si está trabajando en código para sistemas Red Hat. Theia proporciona el entorno de edición más agradable de los tres, pero una vez que Che 7 salga de la versión beta, también tendrá un IDE de Theia.