Cloud9 IDE (c9.io), ein Erfahrungsbericht

Heute möchte ich ein wenig von meinen Erfahrungen mit der Cloud9 IDE erzählen. Seit einigen Wochen beschäftige ich mich nun mit der vielversprechenden IDE, und ich bin im großen und ganzen recht zufrieden. Doch es ist auch nicht alles Gold was glänzt und hier und da gibt es auch noch erhebliche Lücken. Doch lest selbst…

Direkt im Browser coden

Das klingt zunächst komisch. Insbesondere wenn bereits – wie ich – etliche negative Erfahrungen mit den Wysiwyg-Editoren aus diversen CMS gesammelt hat. Möchte man wirklich das heiß geliebte Web-/PhpStorm aufgeben und dafür zum Browser wechseln?

Der von Cloud9 IDE eingesetzte Code-Editor nennt sich „ACE„, ist open source und kommt bereits mit einer Vielzahl an Plugins (zum Beispiel für Syntax-Highlighting) daher. Ich bin wirklich angenehm überrascht, wie angenehm es sich mit diesem Editor arbeiten lässt. Auch wenn ich diesen bereits von Github/Gist kenne, ist er hier mit deutlich mehr Optionen konfiguriert.

Klar, Webstorm bietet noch erheblich mehr Features, aber (fast) alles für mich wesentliche ist in ACE enthalten. Es fühlt sich an wie eine echte IDE und während dem Programmieren selbst merkt man gar nicht mehr, dass man im Browser ist.

Da alle Änderungen (auf Wunsch) sofort übertragen und aktualisiert werden, ist auch ein etwaiges Schließen des Browserfensters kein Problem, einfach wieder öffnen und dort weiterarbeiten, wo man aufgehört hat.

Terminal im Browser

Das in meinen Augen vielleicht beste Feature: Man hat eine vollwertiges Terminal auf die genutzte VM (Cloud9 oder self hosted). Hier kann man wie gewohnt Skripte ausführen, Pakete installieren, Git-Commits abfeuern, etc.

Auch das Terminal läuft sehr stabil und bedient sich wie gewohnt. Einzig und allein das Scrollen fand ich etwas hakelig.

Gemeinsam an einer Datei/einem Projektstand arbeiten

Hierbei mögen sicherlich einige den Sinn in Frage stellen. Gleichzeitig an verschiedenen Features am gleichen Projektstand zu arbeiten macht mit Sicherheit auch nicht viel Sinn, da man sich hierbei extrem in die Quere kommt. Aber für Remote-PairProgramming eignet es sich meiner Meinung nach durchaus.

In früheren Projekten habe ich bereits Erfahrungen mit PairProgramming via Skype gesammelt und habe mich immer geärgert, dass tatsächlich nur einer gleichzeitig am Code arbeiten konnte. Zum einen ist so ein Wechsel zwischen aktivem und passivem Part viel schneller möglich, und zum anderen kann auch der passive Part kleine Dinge wie Tippfehler oder Einrückungen korrigieren, ohne ständig über Skype in nicht enden wollende „da fehlt ne Klammer, da fehlt ein Leerzeichen, …“-Monologe verfallen zu müssen.

Wie funktioniert das bei Cloud9? Alle Personen mit Schreibrechten auf dem Projekten können gleichzeitig beliebige Dateien editieren und nebenbei miteinander Chatten (wobei hier für das PairProgramming ein zusätzlicher Sprachchat wie z.B. Skype unabdingbar ist). Arbeitet man an einer Datei, die von einem anderen geändert wurde kann man die Änderungen automatisch und zeitnah in die eigene Datei synchronisieren lassen. Insbesondere in Kombination mit dem „automatisch Speichern“-Feature ist das dann fast Synchron.
Wirklich hilfreich wäre hier noch Cursor und Markierungen der anderen live zu sehen, ähnlich wie bei GoogleDocs.

Hosted vs eigene VM

Cloud9 bietet (auch in der kostenlosen Variante!) gehostete VMs für die Projekt-Workspaces an. In dieser VM bekommt man zwar keine Root-Rechte, kann aber ansonsten so ziemlich tun und lassen was man möchte. Zusätzliche Programme installieren (über einen eigenen Paketmanager), Shell-Skripte ausführen, …

Die VMs sind aktuell auf 512 MB Speicher begrenzt und liegen natürlich in einem shared environment. Für die meisten Projekte sollte dies jedoch erst einmal ausreichen. Ich konnte in den letzten Wochen nur sehr wenige Downtimes feststellen (die dann natürlich aber um so ärgerlicher waren, weil ich nicht weitercoden konnte), die VMs reagierten nur manchmal etwas langsam.

Alternativ kann man Cloud9 auch via FTP auf einen eigenen Server übertragen lassen. Dieses Feature habe ich bislang noch nicht getestet, da ich unbedingt eine Console brauche :), die hier vermutlich fehlen würde.

Die in meinen Augen attraktivste Workspace-Variante verbindet sich via SSH auf einen eigenen Server. So kann man Downtimes und lästige „Slowtimes“ gänzlich umgehen und hat eine vollwertige VM mit beliebigen Rechten.

Leider benötigt diese SSH-Variante bislang die Pro-Version von Cloud9, die ich jetzt mal für einen Monat getestet habe. Und durch die eigene VM entsteht natürlich auch noch zusätzlicher Konfigurations- und Geldaufwand.

Ein weiterer Nachteil: die SSH-Variante mit der eigenen VM ist automatisch „private“. Die Cloud9-VMs konnten auch in einem „public“ mode betrieben werden, wo auch anonyme Besucher sich auf den Workspace connecten und die Files betrachten (nicht aber editieren) konnten.

Dennoch bin ich mit dieser Lösung bislang äußerst zufrieden und hoffe einfach, dass zum Beispiel ein Read-Only-Public-Mode noch folgen werden.

Komplett Self-Hosted Cloud9

Eine weitere Möglichkeit besteht darin Cloud9 gänzlich selbst zu hosten. Die Software ist Open-Source (bis auf das Workspace-/User-Management) und kann relativ einfach (vorausgesetzt man nutzt nur Node 0.8.x) installiert werden.

Leider scheinen sich – zumindest in der Version die ich mir gezogen habe – noch etliche Bugs in der OpenSource-Variante zu befinden. Ein paar konnte ich recht schnell fixen, aber die IDE wirkte deutlich instabiler als die auf c9.io gehostete. Nach ein paar Tagen Nerverei habe ich schließlich aufgegeben und nutze nun wieder die gehostete Version von der IDE in Kombination mit einer eigenen VM. Vermutlich ist es den Aufwand nicht wert und man zahlt lieber ein paar Euro für die Pro-Variante.

Wer hier andere Erfahrungen hat: Immer her damit :). Das Projekt Cloud9Hub erschien mir auch in dem Zusammenhang sehr interessant, aber leider ist es noch sehr instabil. Es rüstet die fehlenden Features des Workspace-/User-/Session-Managements nach und macht die selbst gehostete Cloud9 IDE somit erheblich nützlicher.

Paypal und Recurring payment

Es war gar nicht so einfach die Pro Variante von Cloud9 zu bestellen. Im Auswahlmenü gab es hier nur eine Bezahlmöglichkeit via PayPal, und zwar für „Recurring Payment“. Das heißt, dass z.B. monatlich die Gebühren automatisch eingezogen werden können. In Deutschland ist dies jedoch so nicht erlaubt, weshalb ich mit dem deutschen PayPal-Account nicht bezahlen konnte.

Ein Support-Ticket an Cloud9 schaffte jedoch Abhilfe. Ich bekam einen Link zu den Einmal-Zahlungsoptionen und muss nun hier eben von Hand meinen Pro-Status monatlich erneuern, falls ich diesen behalten möchte.

Fazit

Ich bin äußerst froh, über Cloud9 IDE gestolpert zu sein. Es gibt in der Tat noch viele Dinge, die man verbessern kann, aber für ein einfaches Arbeiten reicht es bereits aus. Da ich selbst sehr häufig von verschiedenen PCs mit verschiedenen Betriebssystemen an ein und dem gleichen Projekt arbeite, ist für mich die Lösung mit der Browser-IDE optimal. Der Workspace ist genau so wie ich ihn verlassen habe, egal von welchem Rechner aus. Insbesondere ermöglicht dies auch den Einsatz zum Beispiel auf Tablets (Android/Win8RT/Ipad), anderen Geräten oder auch von Unterwegs.

Zum Thema PairProgramming steht ein entscheidender Test noch aus. Bislang habe ich nur mal kurz geschaut was so geht :), aber das folgt dann, sobald mein nächstes Cloud9-Projekt mal auf einem entsprechenden Stand ist und sich Co-Contributor finden.

Ein Gedanke zu „Cloud9 IDE (c9.io), ein Erfahrungsbericht

Schreibe einen Kommentar

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