Shoot-out Cloud IDE: AWS Cloud9 contre Eclipse Che contre Eclipse Theia

Faire participer un nouveau développeur à un projet de programmation avec de nombreuses dépendances peut parfois être un cauchemar. J'ai vu un cas extrême où la société a finalement abandonné et acheté un nouvel ordinateur au développeur après un mois de problèmes à essayer de configurer son ancien. Plus généralement, la configuration d'un nouvel environnement de développement pour un nouveau développeur peut prendre entre trois jours et deux semaines.

Ce problème est l'une des motivations des espaces de travail des développeurs basés sur le Web. Une autre motivation est que les machines pour le développement local ont besoin de ressources CPU et RAM importantes, ce qui augmente le coût du matériel; ces ressources permettent au développeur de créer le projet rapidement. Les ordinateurs pour accéder aux espaces de travail Web peuvent s'en tirer avec du matériel moins cher que les ordinateurs pour le développement local.

Comme avantage supplémentaire, les espaces de travail de développement basés sur le Web peuvent centraliser et standardiser une configuration. Combien de fois avez-vous entendu «Cela fonctionne sur ma machine» en réponse à un rapport de bogue? Les environnements standardisés peuvent éliminer ce problème.

Dans cet article, je vais discuter de trois IDE cloud qui fournissent des espaces de travail de développement Web. Deux d'entre eux - Eclipse Theia et Eclipse Che - sont des projets libres et open source assez récents actuellement sous les auspices de la Fondation Eclipse. Le troisième —AWS Cloud9 — est un produit plus ancien qui est maintenant détenu par Amazon Web Services et intégré à celui-ci.

Eclipse Theia

Eclipse Theia est un projet open-source pour fournir l'expérience de développement Visual Studio Code dans un navigateur; il peut également fonctionner sur le bureau dans le shell Electron. Theia s'appuie sur le protocole de serveur de langage de Visual Studio Code pour fournir la complétion de code spécifique au langage et les autres fonctionnalités que nous attendons dans un éditeur de code moderne.

Comme il peut tirer parti des serveurs de langage écrits pour Visual Studio Code, Theia a accès à plus de 60 serveurs de langage disponibles, notamment JavaScript, Java, Python et TypeScript. Theia prend également en charge le protocole d'adaptateur de débogage.

Theia lui-même est écrit en TypeScript et utilise PhosphorJS comme base pour son shell et ses dispositions de dock déplaçables. Il intègre un terminal qui se reconnecte lors du rechargement du navigateur pour maintenir l'historique de la ligne de commande. Vous pouvez créer vos propres extensions vers Theia si vous le souhaitez.

Il y a trois façons principales d'essayer Theia. La première consiste à l'exécuter dans Docker:

docker run -it -p 3000: 3000 -v «$ (pwd): / home / project: cached» theiaide / theia: suivant

La seconde consiste à l'exécuter dans Gitpod (voir la barre latérale et la capture d'écran ci-dessous). La troisième consiste à exécuter Eclipse Che version 7 ou ultérieure (voir la section suivante), qui utilise Theia comme interface utilisateur au lieu de l'interface utilisateur Java utilisée dans les anciennes versions de Che.

Le projet Eclipse Theia comprend des contributions de TypeFox, Ericsson, Red Hat, IBM, Google et ARM. La feuille de route du projet comprend un système de plug-in pour prendre en charge les extensions VS Code (au-delà des serveurs de langage), l'intégration avec les cadres de test et d'autres améliorations.

TypeFox Gitpod

Gitpod est un environnement hébergé commercial (voir capture d'écran ci-dessus) conçu pour ouvrir les référentiels GitHub dans les espaces de travail. L'IDE Gitpod est open-source et basé sur Eclipse Theia. Actuellement en phase de bêta-test gratuit, Gitpod sera toujours gratuit pour les projets open source, mais nécessitera éventuellement un abonnement pour ouvrir des référentiels privés et l'utiliser pendant plus de 100 heures par mois.

Le cloud Gitpod.io fonctionne actuellement dans plusieurs clusters Kubernetes hébergés sur l'infrastructure Google Cloud dans trois régions différentes du monde. Le produit Gitpod est également disponible pour l'hébergement privé.

Éclipse Che

Eclipse Che est un serveur d'espace de travail pour développeurs open source et un IDE cloud conçu pour les équipes et les organisations. Che version 7, actuellement en version bêta, utilise Eclipse Theia comme base de son IDE. Les anciennes versions de Che utilisent un IDE basé sur GWT. Les espaces de travail Che s'exécutent dans des conteneurs sur Docker, OpenShift ou Kubernetes.

Vous pouvez exécuter Che dans le cloud public, un cloud privé ou l'installer sur n'importe quel système d'exploitation. Che a été testé sur Ubuntu, Linux, MacOS et Windows. Vous pouvez également exécuter Che dans un espace de travail en libre-service hébergé sur //che.openshift.io/, pour lequel vous devrez avoir ou créer une connexion gratuite à OpenShift ou Red Hat.

De plus, Eclipse Che comprend le cœur de Red Hat CodeReady Workspaces, le nouvel environnement de développement pour OpenShift. En plus d'être pris en charge par Red Hat, les espaces de travail CodeReady ont des piles pré-construites avec les technologies Red Hat prises en charge et incluent Red Hat SSO pour gérer l'authentification et la sécurité entre les équipes de développeurs.

Le projet Eclipse Che comprend des contributions de plus de 20 entreprises, dont CodeEnvy (le développeur original de Che), Docker, IBM, Red Hat et TypeFox. La feuille de route du Che comprend la finalisation de l'intégration de Theia et des systèmes de plug-ins pour Theia et Che.

AWS Cloud9

L'IDE Cloud9, que j'ai mentionné comme Go IDE en 2017, appartient désormais à Amazon Web Services. En plus d'avoir un éditeur de code multilingue basé sur un navigateur, des débogueurs pour plusieurs langues et un terminal pré-autorisé pour les services AWS, Cloud9 permet désormais le codage collaboratif.

Vous pouvez exécuter des environnements de développement Cloud9 sur des instances Amazon EC2 gérées ou sur tout serveur Linux prenant en charge SSH. Cloud9 inclut des outils pour plus de 40 langages de programmation, bien que seuls cinq aient des débogueurs, sept des peluches et 12 des complétions de code.

Si vous exécutez Cloud9 sur EC2, l'instance EC2 s'arrêtera automatiquement après la fermeture de Cloud9, par défaut après 30 minutes, et votre code persistera dans le stockage Amazon EBS. Si vous exécutez Cloud9 sur votre propre serveur Linux, le code persistera dans le stockage local. Si vous redémarrez Cloud9 après l'arrêt de son instance sous-jacente, Cloud9 redémarrera automatiquement l'instance et restaurera votre session d'édition là où vous l'avez laissée.

Vous pouvez facilement remplir une instance Cloud9 à partir d'un référentiel ou de fichiers locaux. Dans la capture d'écran ci-dessous, j'ai utilisé Git à partir de la ligne de commande Cloud9 pour extraire le référentiel GitHub pour Keras. Si vous modifiez un projet basé sur un référentiel pour lequel vous disposez d'une autorisation de validation, vous pouvez mettre à jour le référentiel et extraire les modifications nécessaires à partir de la ligne de commande. Cloud9 n'a pas de support graphique pour le contrôle de version.

Notez la vue d'ensemble à droite de la capture d'écran ci-dessous, qui fonctionne bien pour une navigation grossière dans un fichier. Le menu Aller affiché en haut à gauche fonctionne bien pour une navigation plus générale. Il n'y a pas de fonctionnalité de refactoring dans Cloud9, bien qu'il existe un reformatage de code simple.

AWS Cloud9 est intégré à Amazon Lightsail, AWS CodeStar, les fonctions AWS Lambda et AWS CodePipeline. L'intégration Lambda semble particulièrement bonne.

Quel IDE cloud?

Eclipse Theia, Eclipse Che et AWS Cloud9 vous permettent tous de modifier et de déboguer du code dans plusieurs langages de programmation à partir d'un navigateur. Il existe des différences dans la mise en page et les fonctionnalités, mais pas assez pour avoir de l'importance à moins que vous ne souhaitiez accomplir quelque chose d'assez avancé, comme la refactorisation.

Cloud9 est un choix particulièrement bon si vous travaillez sur des projets AWS, et Che est un choix particulièrement bon (comme CodeReady) si vous travaillez sur du code pour les systèmes Red Hat. Theia fournit le meilleur environnement d'édition des trois, mais une fois que Che 7 sortira de la version bêta, il aura également un IDE Theia.