Die browserbasierte Tooling-Plattform macht große Fortschritte

Orion 3.0

Martin Lippert

Zum Eclipse-Juno-Release vor einem Jahr war das Eclipse-Orion-Projekt noch nicht einmal in Version 1.0 erschienen und ein junges Mitglied der Eclipse-Familie. Seitdem hat das Projekt enorme Fortschritte gemacht. Zum Kepler-Release erscheint bereits Eclipse Orion 3.0 und zeigt, wie Softwareentwicklung im Browser zukünftig funktionieren kann. Schauen wir uns die Neuerungen der letzten Versionen einmal genauer an.

Eclipse Kepler im Fokus
Das kommende Eclipse Magazin widmet sich in seinem Schwerpunktthema detailliert dem Eclipse Kepler Release Train. Neben einem ausführlichen Rückblick auf das Eclipse-Kepler-Jahr finden Sie Beiträge zu den Neuerungen in der 4.3-Plattform, den Java Development Tools, in RAP 2.1 und der Orion IDE. Zudem stellen wir die neuen Projekte Stardust und EMF Diff/Merge vor und präsentieren spannende Erfahrungsberichte über die Umstellung von Eclipse 3.x auf 4.
Eclipse Magazin 5.13 ab 26.7. am Kiosk!

Das Eclipse-Orion-Projekt [1] ist in vielerlei Hinsicht anders als viele andere Eclipse-Projekte. Es basiert technisch nicht auf der etablierten Eclipse-Plattform, die bis dato als Basis für die vielen Eclipse-IDEs, Rich-Client-Anwendungen und anderen Werkzeuge diente. Orion geht neue Wege und zeigt, wie die Zukunft der IDEs aussehen könnte: webbasiert, den Browser als Laufzeitumgebung nutzend und größtenteils in JavaScript implementiert.

Was vielen Eclipse-Nutzern heute vielleicht noch merkwürdig vorkommt oder von anderen als Spielzeug abgetan wird, hat sich innerhalb des letzten Jahres zu einem der interessantesten Eclipse-Projekte entwickelt. Doch schauen wir uns die Neuerungen im Detail an.

Aufgeräumtes UI

Um das Wichtigste gleich einmal vorweg zu nehmen: Die Oberfläche von Eclipse Orion ist kein auf Hochglanz poliertes Web-UI, wie man es von vielen anderen modernen Webanwendungen kennt. Das liegt zum einen sicherlich daran, dass sich das Orion-Projekt noch in einer relativ frühen Phase befindet. Zum anderen ist es auch nicht das Ziel des Orion-Projekts, eine fertige und polierte IDE zu werden. Es handelt sich in erster Linie um eine Plattform, auf deren Basis umfangreiche Entwicklungswerkzeuge implementiert werden sollen.

Dennoch hat sich am UI im Orion-Projekt einiges getan. Das grundsätzliche UI sieht deutlich aufgeräumter und einfacher strukturiert aus. Der Editor hat eine optionale Dateinavigationsansicht spendiert bekommen, die man an der linken Seite des Editors einblenden kann. Das erleichtert den Wechsel zwischen Dateien erheblich und gibt einem gleichzeitig einen guten Überblick über das Projekt, ohne den Editor verlassen zu müssen.

Abb. 1: Endlich auch in Orion: der ausklappbare Navigator direkt neben dem Codeeditor

Im Header der Editor-Page findet man jetzt neben der aufgeräumten Quick-Link-Navigation zu den Hauptseiten von Orion eine zusätzliche Breadcrumb-Navigation – ein aus vielen anderen Werkzeugen bekanntes und liebgewonnenes Feature.

Abb. 2: Die allseits beliebten Breadcrumbs, jetzt auch in Orion

Der Editor

Das Herzstück von Orion ist der Codeeditor. Galt es vor einigen Jahren noch als unmöglich, wirklich gute Text- und Codeeditoren im Browser zu implementieren, existiert heute eine ganze Reihe von eindrucksvollen Gegenbeispielen. Der Codeeditor von Orion gehört mit Sicherheit dazu. Er bietet inzwischen alle wichtigen Funktionen, die ein guter Codeeditor haben sollte (inklusive Syntax-Highlighting, Code-Completion, Error- und Warning-Marker, diverse Keyboard-Shortcuts, sowie ausführliche Code-Templates).

Neu ist das von Eclipse bekannte Linked Editing. Wird beispielsweise per Code-Template ein Schleifenkonstrukt erzeugt, kann man die variablen Anteile direkt editieren (beispielsweise die Bezeichnung der Laufvariable), ohne sie an den verschiedenen Stellen im Codeanschnitt manuell verändern zu müssen.

Abb. 3: Wie man das „Linked Editing“ auch von Eclipse gewohnt ist: mehrere Positionen im Code gleichzeitig editieren

Zusätzlich wurde das aus vielen Cloud-Umgebungen bekannte und beliebte „Auto Save“ implementiert. Es kann über das neue Editor-Einstellungsmenü aktiviert werden.

Abb. 4: Editieren in der Cloud: Änderungen werden automatisch gespeichert

Git-Integration

Die Integration für Git ist inzwischen recht umfangreich und vor allem einfach zu benutzen. Einen typischen Git-Workflow (clone, edit, stage, commit, pull, push) kann man damit problemlos durchführen. Besonders die direkte Side-by-Side-Visualisierung der Unterschiede, wie man sie auch von anderen Versionsverwaltungswerkzeugen kennt, ist in Orion gut in die Git-Unterstützung integriert.

Abb. 5: Die Git-Integration zeigt die Dateiänderungen auf Wunsch direkt an

Globalization

Neben der Accessibility spielt auch die Globalization eine wichtige Rolle, gerade für Cloud-basierte Anwendungen, die von einer Vielzahl von Anwendern über die ganze Welt verstreut benutzt werden. Unterschiedliche Character-Sets spielen dabei eine entscheidende Rolle. Orion ist nun unter anderem getestet und kompatibel mit koreanischen, chinesischen und japanischen Zeichensätzen.

Abb. 6: Unterschiedliche Schriftsätze in Orion [3]

Node.js

Zusätzlich zu der altbewährten und Java-/OSGi-basierten Serverimplementierung gibt es inzwischen auch eine Node.js-/JavaScript-basierte Implementierung des Orion-Servers. Mittels Node Package Manager (npm) kann man Orion einfach und schnell auf einer Maschine installieren und auf Basis von Node.js laufen lassen. Eine JVM ist in diesem Kontext nicht mehr nötig. Das mag vielleicht für die Java-Gemeinde nach einem leeren Argument klingen (schließlich hat doch jeder sowieso ein JDK oder ein JRE installiert). Schaut man sich in der JavaScript-Gemeinde um, sieht das jedoch schon ganz anders aus. Eine reine Node.js-basierte Umgebung, die leichtgewichtig ist und deren UI im Browser läuft, findet dort viel eher Gehör als eine Entwicklungsumgebung, die auf Basis von OSGi und Java läuft.

Gerade vor diesem Hintergrund ist die Node.js-basierte Orion-Variante eine interessante Alternative – vor allem auch dann, wenn man selbst Node.js-basierte JavaScript-Anwendungen implementieren möchte. Der Trick dabei: Orion (auf Basis von Node.js) versteht die npm- und Node- Kommandos in der Shell. JavaScript-basierte Node.js-Anwendungen lassen sich damit komplett in Orion implementieren, testen und sogar debuggen. Mehr Details dazu finden sich unter [2].

Unter der Haube

Für Cloud-basierte Anwendungen spielt die Skalierbarkeit der serverseitigen Komponenten in der Regel eine große Rolle. Während in den ersten Tagen von Orion dieses Thema fast gar nicht betrachtet wurde (schließlich ging es darum, zunächst einmal einen Proof of Concept für die grundsätzlichen Ideen hinter Orion zu implementieren), wendet sich das Orion-Team nun verstärkt dem Thema Skalierbarkeit zu. Im Rahmen des 3.0-Releases wurden zunächst die grundsätzlichen Probleme und Ansätze analysiert und erste Teile der Implementierung verändert.

Vielleicht ist die Skalierbarkeit von Orion selbst kein besonders spannendes Thema für den Entwickler, der Orion einfach nur als IDE oder Editor verwenden möchte. Wenn man sich jedoch vergegenwärtigt, dass Orion als Tooling-Plattform gedacht und gebaut ist, auf deren Basis Unternehmen umfangreiche Entwicklungswerkzeuge implementieren und betreiben können sollen, spielt die Skalierbarkeit eine viel entscheidendere Rolle. Was wäre schon eine Cloud-basierte Entwicklungsumgebung, wenn sie nur für wenige gleichzeitige Benutzer vernünftig funktionieren würde?

Fazit

Eclipse Orion entwickelt sich zunehmend zu einer ernstzunehmenden Plattform zur Werkzeugentwicklung. Auf der EclipseCon North America waren dieses Jahr einige Anwendungsbeispiele zu sehen, die zeigen, welch ein großes Potenzial in Eclipse Orion steckt. HP zeigte beispielsweise mit dem „HP Code Anywhere“-Projekt eine experimentelle Entwicklungsumgebung basierend auf Orion.

Allerdings wird in absehbarer Zeit wahrscheinlich kein vollständiges Java-Tooling à la Eclipse JDT mit Orion implementiert werden. Man darf also nicht erwarten, dass Eclipse Orion die komplette Eclipse-Java-IDE in naher Zukunft einfach ablösen wird und wir alle nur noch im Browser arbeiten. Aber die Richtung scheint klar zu sein.

Geschrieben von
Martin Lippert
Martin Lippert
Martin Lippert ist Lead der Spring-Tool-Suite-Entwicklung und arbeitet bei Pivotal (im SpringSource-Team) mit einem internationalen Team an Entwicklungswerkzeugen rund um Spring- und Cloud-Techniken. Als Mitgründer der it-agile GmbH gilt er zudem als Spezialist für agile Softwareentwicklung.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.