Artikel

 
Juni 2009 | Artikel

Quo vadis Eclipse?

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/2355)

Ein persönlicher Ausblick auf Eclipse: die IDE, das Anwendungsframework & die Community

Text: Holger Voormann
Mit meinem Datenhandschuh erfasse ich das Plug-in. Seine hohe Komplexität wiegt schwer in meiner Hand. Per Fingerzeig öffne ich es und tauche zwei Abstraktionsebenen tiefer über die Package- und Klassenebene hinunter zur Programmlogik. Meine Kollegin aus Shanghai erscheint live als Hologramm. Zusammen spielen wir eine mögliche Verbesserung durch. Eclipse 10.2 zeigt uns die daraus entstehenden Strukturänderungen dreidimensional an und führt die nötigen Tests im Hintergrund automatisch aus. Ein Signalton unterbricht unser Tun. Ist es ein Hinweis, dass eine Metrik den zulässigen Bereich verlassen hat? Nein, es ist der Wecker. Alles war nur ein Traum.
Teil 1   Teil 2   Teil 3   Teil 4   

Während der Fahrt zur Arbeit überlege ich, wie es mit Eclipse wohl weitergeht. Mit seinen mächtigen Refactoring-Funktionen und den vielen Quickfixes hat Eclipse meinen Alltag als Java-Entwickler revolutioniert. Damals, zu den Anfangszeiten von Java, glich Softwareentwicklung ohne Aufruf- und Klassenhierarchie oder den Navigations- und Suchmöglichkeiten, die Eclipse heute bietet, einem Blindflug.

Eclipse – die Java IDE
Eclipse ist für mich vor allem die Java-Entwicklungsumgebung, die ich fast täglich nutze. Auch wenn ich rundum zufrieden bin, gibt es viele Ideen, die das Programmieren mit Eclipse noch effizienter machen könnten. Die aus meiner Sicht vielversprechendsten Ideen stelle ich im Folgenden vor.

Der Editor im Editor
Mit dem Lesen von Quelltext verbringe ich mehr Zeit als mit dem Schreiben. Dass bereits beim Darüberfahren mit der Maus der entsprechende Javadoc-Kommentar des implementierten Interfaces, der überschriebenen Methode oder der Deklaration angezeigt wird, erspart mir das Öffnen der entsprechenden Datei oder das Springen dorthin. Direkt im Quelltext ist aber Javadoc durch die unproportionale Schrift und die vielen Auszeichnungs-Tags schlecht zu lesen. Statt die Javadoc View zu bemühen, würde ich mir "gerendertes" Javadoc direkt im Java-Editor wünschen (Abb. 1). Und warum sollte es nicht gleich möglich sein, den Kommentar in dieser Ansicht zu editieren? Ein kleiner WYSIWYG-Editor im Editor sozusagen.

Eine solche abstraktere Darstellung des Quelltexts könnte auch Javas Geschwätzigkeit bei Gettern und Settern eindämmen: Eine einzige Instanzvariable bedarf zweier zusätzlicher, zumeist einzeiliger Methoden. Der dazugehörige Javadoc-Kommentar ist keinmal, einmal oder mehrfach an den drei Stellen zu finden. Die abstrakte Darstellung würde dagegen alle drei Bereiche zu einem untrennbaren Absatz verschmelzen, der den Code der Getter- und Setter-Methoden direkt unterhalb des Kommentars und der Variablendeklaration anzeigt. Falls die Variable ausschließlich gesetzt bzw. zurückgegeben wird, könnte statt des Codes ein einzelnes Symbol das Vorhandensein visualisieren. Ebenso könnten in der Outline View drei Einträge durch einen Eintrag ersetzt werden, indem z.B. das Icon der Instanzvariable mit einem Pfeilchen nach rechts (Setter) oder nach links (Getter) dekoriert würde. Auch die Java-Suche würde nicht schon bei Gettern und Settern, sondern erst bei deren Aufrufen Halt machen.

Vielleicht wäre diese Art von Darstellung auch das fehlende Bindeglied zwischen Quelltext und UML. Das am MIT entwickelte Eclipse-Plug-in Relo demonstriert eindrucksvoll die Verschmelzung von Klassendiagramm und Quelltext (Abb. 2). Dafür verzichtet Relo aber auf die gewohnten Editoren und zeigt den Quelltext direkt innerhalb einer einzigen und durch Navigation größer werdenden Grafik an. Eine gesamte, klassenübergreifende Änderung mitsamt ihren Verflechtungen mit dem restlichen Code in einer Grafik zusammengefasst kann Dokumentation und Diskussionsgrundlage zugleich sein. Dazu müsste Relo lediglich einen von Mylyn erfassten Kontext oder den Inhalt eines Patchs importieren und darstellen können.

Auch anderen Editoren wie dem Ant-Editor würde eine teilweise grafische Darstellung gut zu Gesicht stehen. Statt XML-Elemente und Attribute zu editieren, wären Ant Tasks als Blöcke zusammenzuklicken – insbesondere für Gelegenheitsnutzer sicherlich eine Erleichterung.

Compare macht den Unterschied
Eine Funktion, mit der man auch bei Nichtentwicklern Eindruck schinden kann, ist der eingebaute Compare-Editor. Zwei Dateien oder Java-Elemente wie Methoden können verglichen und gegebenenfalls zusammengeführt werden. Sogar auf die automatisch protokollierte Dateihistorie kann diese Funktion angewandt werden. Zwar können nichtdruckbare Zeichen ignoriert werden, dennoch könnte man sich wünschen, dass vor dem Vergleich der Formatierer und die Clean-up-Funktionen auf beide zu vergleichenden Quelltexte angewandt würden, um nur echte Unterschiede anzuzeigen.

Die Refactoring-Vorschau ist schon klasse. Noch bevor die Änderung tatsächlich durchgeführt wird, ist zu sehen, welche Bereiche wie geändert werden. Gegebenenfalls lässt sich dann ein Refactoring auch nur partiell anwenden. So eine Was-wäre-wenn-Vorschau wäre auch prima beim Auflösen von zirkulären Abhängigkeiten, die z.B. von JDepend zwischen Paketen oder FindBugs auf Klassenebene gefunden werden. Neben textuellen Veränderungen könnten Metriken die Vorschau bereichern, um auf Qualitätsverbesserungen oder -verschlechterungen hinzuweisen. Einen schnellen Rechner vorausgesetzt, könnte gar eine Überprüfung mittels JUnit-Tests bereits in diesem Szenario stattfinden.

Auch bei den Compiler-Warnungen würde ich mir wünschen, die aktuelle Liste mit einem frühen Stand vergleichen zu können, um herauszufinden, welche Warnungen beseitigt wurden und welche neu hinzukamen. Gerade beim Arbeiten in großen Projekten mit viel Fremdcode wäre dies eine echte Erleichterung.

Teil 1   Teil 2   Teil 3   Teil 4   

Anzeige

Kommentare

Gravatar Thomas 09.06.2009
um 23:25 Uhr
Danke für den Tipp mit dem XSLT-Editor. Werde ich gleich morgen ausprobieren.
An 70% deiner Wünsche kann ich mich direkt anschließen. Wieso kann Eclipse beim Öffnen einer XML-Datei nicht sagen: "Hey du kannst auch einen XML-Editor haben. Einen Moment, den habe ich gleich." ... und schwubs ist WTP installiert. Ähnlich, wie es Ubuntu beim ersten Abspielen von MP3s oder Flash-Seiten macht. Oder du checkst ein Projekt aus und er lädt die nötigen Plugins dafür nach Absprache auch gleich runter...
Ein Profiler wie ihn Netbeans bietet fände ich auch gut, weil er viel einfacher anzudocken ist u.s.w.
Trotzdem ist Eclipse ein Quantensprung, was Java-IDEs angeht und unterm Strich bin ich sehr zufrieden damit.
#zitieren
Gravatar Holger 10.06.2009
um 23:13 Uhr

Thomas:
Danke für den Tipp mit dem XSLT-Editor. ....


Hallo Thomas,
inzwischen (der Artikel ist von 2008) ist der XSLT-Editor Bestandteil der "Web Tools Platform" geworden und wird damit in Galileo mit dabei sein (z.B. in der "Eclipse IDE for Java EE Developers", die es hier als Vorabversion gibt: http://www.eclipse.org/downloads/packages/release/galileo/rc3).

Viele Spaß beim Transformieren, Holger
#zitieren

Anzeige

zurück zum Seitenanfang