Let’s do Cloud Programming!
Teil 1: Einleitung

Man stelle sich einmal vor, das beliebte und praktische Google Docs gäbe es für Software-Entwickler. Statt Texte zu dichten, wird gemeinsam in einem Dokument programmiert. Ein Entwickler codet und ein weiterer schaut per Remote zu, liest mit, korrigiert und kommentiert. Wie cool ist das denn? Und das alles im Webbrowser. Die Plattform würde zudem eine Versionsverwaltung, eine Konsole, einen Project-Browser und ein komplettes Project-Management bereitstellen, inklusive Debugging, Kompilieren, Deployment und alles was das Entwicker-Herz begehrt. So kann auf eine lokale IDEverzichtet und von überall übers Internet auf die komplette Entwicklungsumgebung zugegriffen werden – jederzeit. Ist das Zukunftsmusik oder gibt es bereits intelligente Lösungen?

Gegenwärtig gibt es tatsächlich Online IDEs, die diesen Ansatz verfolgen. Allerdings fehlen oft noch wichtige Features, die eine IDE auszeichnet. Aus meiner Sicht benötigt eine IDE folgende Funktionalität für den professionellen Einsatz:

  • Syntax-Highlighting,
  • Code-Completion,
  • Error-Reporting,
  • Refactoring,
  • Integrierte Versionsverwaltung,
  • Debugging,
  • Projektexplorer,
  • Terminal und
  • eine Suche.

Zudem muss die IDE performant und stabil funktionieren. Wenn ich Code-Completion nutzen will, sollten die Vorschläge mit minimaler Latenzzeit erscheinen und nicht so lange dauern, dass ich noch die Zeit habe, meine Tastatur zu reinigen (obwohl sie es nötig hätte). Ich habe im Netz recherchiert und bin auf einige Online IDEs gestoßen, die ich hier mitsamt ihren Features in einer Blogserie über Cloud Programming beleuchte. Im Speziellen werden die Online IDEs Cloud9, Koding und ScalaIDE vorgestellt. Zu guter Letzt fasse ich die Blogserie zusammen und gebe ein abschließendes Fazit. Let’s do Cloud Programming!

Let’s do Cloud Programming!
Teil 2: Cloud9

Cloud9 Editor

Als erste Online IDE in der Blogreihe “Let’s do Cloud Programming!” stelle ich Cloud9 vor. Cloud9 hat eine bemerkenswerte schnelle Entwicklung hinter sich und bietet mittlerweile ziemlich viele Features. Cloud9 unterstützt die gängigsten Webformate: HTML, JavaScript, Ruby, CSS, XML bis hin zu Selenium-Tests. Cloud9 bietet eine kostenlose sowie eine kostenpflichtige Version. Während die kostenlose Version einen privaten Workspace und unlimitierte öffentliche Workspaces bietet, erhält man bei der kostenpflichtigen Version für 12$ im Monat sechs private Workspaces und kompletten Shell-Zugriff, mit einer in die Webplattform integrierten Onlinekonsole. Zusätzlich kann der komplette Workspace mit einem eigenen Server verknüpft werden.

Was bietet Cloud9 sonst noch? Loggt sich der Entwickler bei Cloud9 ein, landet er auf seinem eigenen Dashboard und es erscheint die Projektübersicht, um einen neuen Workspace anzulegen oder einen bestehenden auszuwählen. Legt man ein neues Projekt an, so erscheint links der Projektbaum und rechts der Editor. Als Editor wird Ace (Ajax.org Cloud9 Editor) verwendet. Ace ist ein Standalone-Editor, der komplett in JavaScript geschrieben ist und unter anderem auch Syntax-Highlighting in allen bekannten Sprachen und mehrere Themes unterstützt. Bei Cloud9 steht Kollaboration im Vordergrund. Entwickler können in Echtzeit zusammen am selben Code entwicklen und mit Hilfe eines Chats diskutieren. Somit ist Pair Programming und Reviewing problemlos möglich. Sogar für Schulen wäre ein Einsatz denkbar. Cloud9 unterstützt GitHub und Bitbucket. Das Repository kann somit immer aktuell gehalten werden, ohne die IDE zu verlassen.

Cloud9 bietet eine komplette Laufzeitumgebung an. Ruby und Python Applikationen können ausgeführt, mit gcc kann kompiliert werden und mit einer Konsole stehen alle gängigen Linuxbefehle zu Verfügung. Der Workspace kann mit einem eigenen Server verbunden und per SSH aus der Konsole darauf zugegriffen werden. Ebenfalls können FTP Server mit Cloud9 verknüpft werden. Mit dem Programm “C9 Local” für Mac oder Linux wird der Code lokal synchron gehalten und somit ist auch die Offline-Entwicklung möglich. Cloud9 unterstützt Code-Completion für JavaScript und node.js. Beim Markieren eines Vorschlags wird zusätzlich eine kleine hilfreiche Dokumentation eingeblendet.

Viele nette Features ergänzen die Online IDE. Die Oberfläche ist sehr modern gehalten und auf den ersten Blick kann ich mir auch vorstellen, damit zu entwickeln. Allerdings fehlen noch einige IDE-typische Funktionen wie das Projekt übergreifende Entwickeln, z.B. die automatische Auswahl von Methoden anderer Klassen oder das direkte Analysieren von Fehlern und dessen Markierung im Editor mit der entsprechenden Fehlermeldung.

Cloud9 Code-Completion

Um die Praxistauglichkeit zu prüfen, habe ich einen privaten Workspace erstellt und testweise ein Entwicklungsrepository von YMC mit über 2’000 Dateien aus Git geklont. Nachdem das Klonen nach 30 Minuten noch nicht beendet war, habe ich den Versuch abgebrochen und es mit einem kleineren Repository versucht. Die Code-Completion und das Error-Reporting funktioniert mit JavaScript erstaunlich gut und performant, allerdings funktioniert diese eben auch nur mit JavaScript und nicht projektübergreifend. Das allgemeine Handling stellt mich noch nicht zufrieden, da manchmal die IDE etwas hinterher hinkt oder nicht erwartungsgemäß reagiert. Erstaunlich ist, dass für jeden Workspace ein Apache angeboten wird und damit direkt das Webprojekt getestet werden kann. Allerdings ist es unmöglich eine “eZ Publish”-Instanz einzurichten, außer man verknüpft Cloud9 mit einem eigenen Server.

Cloud9 kann ich Entwicklern empfehlen die unabhängiger und flexibler arbeiten wollen. Die komplette IDE ist webbasiert und bietet viele Features die eine IDE haben sollte. Allerdings wirkte das Arbeiten mit der IDE manchmal etwas träge und einige Funktionen vermisse ich noch. Ein grosses Projekt zu laden hat leider nicht funktioniert. Ich bin gespannt wie Cloud9 sich zukünftig noch weiterentwickelt. Im nächsten Artikel stelle ich die Online IDE Koding vor, die einen anderen Ansatz als Cloud9 verfolgt.

(This blog post is also available in English)

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *