Cloud IDE-Shootout: AWS Cloud9 gegen Eclipse Che gegen Eclipse Theia

Es kann manchmal ein Albtraum sein, einen neuen Entwickler für ein Programmierprojekt mit vielen Abhängigkeiten zu gewinnen. Ich habe einen Extremfall gesehen, in dem das Unternehmen nach einem Monat voller Probleme beim Versuch, seinen alten zu konfigurieren, endlich aufgab und dem Entwickler einen neuen Computer kaufte. In der Regel kann das Einrichten einer neuen Entwicklungsumgebung für einen neuen Entwickler zwischen drei Tagen und zwei Wochen dauern.

Dieses Problem ist eine der Motivationen für webbasierte Entwicklerarbeitsbereiche. Eine weitere Motivation besteht darin, dass Maschinen für die lokale Entwicklung erhebliche CPU- und RAM-Ressourcen benötigen, was die Hardwarekosten erhöht. Mit diesen Ressourcen kann der Entwickler das Projekt schnell erstellen. Computer für den Zugriff auf webbasierte Arbeitsbereiche können mit Hardware der unteren Preisklasse davonkommen als Computer für die lokale Entwicklung.

Als zusätzlichen Vorteil können webbasierte Entwicklerarbeitsbereiche eine Konfiguration zentralisieren und standardisieren. Wie oft haben Sie als Antwort auf einen Fehlerbericht "Es funktioniert auf meinem Computer" gehört? Standardisierte Umgebungen können dieses Problem beseitigen.

In diesem Artikel werde ich drei Cloud-IDEs erläutern, die webbasierte Entwicklerarbeitsbereiche bereitstellen. Zwei davon - Eclipse Theia und Eclipse Che - sind relativ neue Open-Source-Projekte, die derzeit unter der Schirmherrschaft der Eclipse Foundation stehen. Das dritte Produkt - AWS Cloud9 - ist ein älteres Produkt, das jetzt Amazon Web Services gehört und in diese integriert ist.

Eclipse Theia

Eclipse Theia ist ein Open-Source-Projekt, das die Entwicklung von Visual Studio Code in einem Browser ermöglicht. Es kann auch auf dem Desktop in der Electron-Shell ausgeführt werden. Theia verlässt sich auf das Language Server Protocol von Visual Studio Code, um die sprachspezifische Code-Vervollständigung und die anderen Funktionen bereitzustellen, die wir von einem modernen Code-Editor erwarten.

Da Theia die für Visual Studio Code geschriebenen Sprachserver nutzen kann, hat es Zugriff auf mehr als 60 verfügbare Sprachserver, darunter JavaScript, Java, Python und TypeScript. Theia unterstützt auch das Debug-Adapter-Protokoll.

Theia selbst ist in TypeScript geschrieben und verwendet PhosphorJS als Grundlage für seine Shell und seine ziehbaren Dock-Layouts. Es integriert ein Terminal, das beim erneuten Laden des Browsers erneut eine Verbindung herstellt, um den Befehlszeilenverlauf aufrechtzuerhalten. Wenn Sie möchten, können Sie Ihre eigenen Erweiterungen für Theia erstellen.

Es gibt drei Möglichkeiten, Theia auszuprobieren. Eine ist, es in Docker auszuführen:

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

Die zweite Möglichkeit besteht darin, es in Gitpod auszuführen (siehe Seitenleiste und Screenshot unten). Die dritte Möglichkeit besteht darin, Eclipse Che Version 7 oder höher auszuführen (siehe nächster Abschnitt), bei der Theia anstelle der in älteren Versionen von Che verwendeten Java-Benutzeroberfläche als Benutzeroberfläche verwendet wird.

Das Eclipse Theia-Projekt enthält Beiträge von TypeFox, Ericsson, Red Hat, IBM, Google und ARM. Die Projekt-Roadmap enthält ein Plug-In-System zur Unterstützung von VS-Code-Erweiterungen (über Sprachserver hinaus), die Integration in Test-Frameworks und andere Verbesserungen.

TypeFox Gitpod

Gitpod ist eine kommerziell gehostete Umgebung (siehe Abbildung oben), mit der GitHub-Repositorys in Arbeitsbereichen geöffnet werden können. Die Gitpod-IDE ist Open Source und basiert auf Eclipse Theia. Derzeit befindet sich Gitpod in einer kostenlosen Beta-Testphase und ist für Open Source-Projekte immer kostenlos, erfordert jedoch möglicherweise ein Abonnement, um private Repositorys zu öffnen und mehr als 100 Stunden pro Monat zu verwenden.

Die Gitpod.io-Cloud wird derzeit in mehreren Kubernetes-Clustern ausgeführt, die in der Google Cloud-Infrastruktur in drei verschiedenen Regionen auf der ganzen Welt gehostet werden. Das Gitpod-Produkt ist auch für privates Hosting verfügbar.

Eclipse Che

Eclipse Che ist ein Open-Source-Entwickler-Workspace-Server und eine Cloud-IDE für Teams und Organisationen. Che Version 7, derzeit in der Beta-Version, verwendet Eclipse Theia als Grundlage für seine IDE. Ältere Versionen von Che verwenden eine GWT-basierte IDE. Die Arbeitsbereiche werden in Containern unter Docker, OpenShift oder Kubernetes ausgeführt.

Sie können Che in der öffentlichen Cloud, einer privaten Cloud, ausführen oder auf einem beliebigen Betriebssystem installieren. Che wurde unter Ubuntu, Linux, MacOS und Windows getestet. Sie können Che auch in einem Self-Service-Arbeitsbereich ausführen, der unter //che.openshift.io/ gehostet wird und für den Sie eine kostenlose OpenShift- oder Red Hat-Anmeldung benötigen oder erstellen müssen.

Darüber hinaus bildet Eclipse Che den Kern von Red Hat CodeReady Workspaces, der neuen Entwicklungsumgebung für OpenShift. CodeReady Workspaces werden nicht nur von Red Hat unterstützt, sondern verfügen auch über vorgefertigte Stacks mit unterstützten Red Hat-Technologien und enthalten Red Hat SSO, um die Authentifizierung und Sicherheit zwischen den Entwicklerteams zu gewährleisten.

Das Eclipse Che-Projekt umfasst Beiträge von mehr als 20 Unternehmen, darunter CodeEnvy (der ursprüngliche Entwickler von Che), Docker, IBM, Red Hat und TypeFox. Die Che-Roadmap beinhaltet die Fertigstellung der Theia-Integration und der Plug-In-Systeme für Theia und Che.

AWS Cloud9

Die Cloud9-IDE, die ich 2017 als Go-IDE erwähnt habe, gehört jetzt zu Amazon Web Services. Cloud9 verfügt nicht nur über einen browserbasierten, mehrsprachigen Code-Editor, Debugger für mehrere Sprachen und ein Terminal, das für AWS-Services vorautorisiert ist, sondern ermöglicht jetzt auch die kollaborative Codierung.

Sie können Cloud9-Entwicklungsumgebungen auf verwalteten Amazon EC2-Instanzen oder auf Linux-Servern ausführen, die SSH unterstützen. Cloud9 enthält Tools für mehr als 40 Programmiersprachen, obwohl nur fünf über Debugger, sieben über Flusen und 12 über Code-Vervollständigung verfügen.

Wenn Sie Cloud9 unter EC2 ausführen, wird die EC2-Instanz nach dem Schließen von Cloud9 standardmäßig nach 30 Minuten automatisch gestoppt, und Ihr Code bleibt im Amazon EBS-Speicher erhalten. Wenn Sie Cloud9 auf Ihrem eigenen Linux-Server ausführen, bleibt der Code im lokalen Speicher erhalten. Wenn Sie Cloud9 neu starten, nachdem die zugrunde liegende Instanz gestoppt wurde, startet Cloud9 die Instanz automatisch neu und stellt Ihre Bearbeitungssitzung dort wieder her, wo Sie aufgehört haben.

Sie können eine Cloud9-Instanz problemlos aus einem Repository oder aus lokalen Dateien füllen. Im folgenden Screenshot habe ich Git über die Cloud9-Befehlszeile verwendet, um das GitHub-Repository für Keras zu überprüfen. Wenn Sie ein Projekt basierend auf einem Repository bearbeiten, für das Sie eine Festschreibungsberechtigung haben, können Sie das Repo aktualisieren und Änderungen nach Bedarf über die Befehlszeile abrufen. Cloud9 bietet keine grafische Unterstützung für die Versionskontrolle.

Beachten Sie die Gliederungsansicht rechts neben dem Screenshot unten, die für die grobe Navigation innerhalb einer Datei gut geeignet ist. Das oben links gezeigte Go-Menü eignet sich gut für eine allgemeinere Navigation. In Cloud9 gibt es keine Refactoring-Funktionen, obwohl es eine einfache Neuformatierung des Codes gibt.

AWS Cloud9 ist in Amazon Lightsail, AWS CodeStar, AWS Lambda-Funktionen und AWS CodePipeline integriert. Die Lambda-Integration scheint besonders gut zu sein.

Welche Cloud-IDE?

Mit Eclipse Theia, Eclipse Che und AWS Cloud9 können Sie Code in mehreren Programmiersprachen über einen Browser bearbeiten und debuggen. Es gibt Unterschiede im Layout und in der Funktionalität, aber nicht genug, um eine Rolle zu spielen, es sei denn, Sie möchten etwas ziemlich Fortgeschrittenes wie Refactoring erreichen.

Cloud9 ist eine besonders gute Wahl, wenn Sie an AWS-Projekten arbeiten, und Che ist eine besonders gute Wahl (als CodeReady), wenn Sie an Code für Red Hat-Systeme arbeiten. Theia bietet die schönste Bearbeitungsumgebung der drei, aber sobald Che 7 aus der Beta kommt, wird es auch eine Theia IDE haben.