Beiden großen Java-IDEs, Eclipse und Netbeans, ist die reine Coder-Nische zu eng geworden. Beide drängen hinaus ins Feld der Rich-Client-Plattformen, verstehen sich als gut gefüllte Werkzeugkisten für unterschiedlichste grafische Anwendungen. Mag es einerseits noch fraglich sein, welches der beiden Programme für die Java-Entwicklung besser taugt, so ist es eindeutig: Eclipse hat als Rich-Client-Toolbox die Nase vorn. Früher und konsequenter haben seine Entwickler die Loslösung von den Wurzeln der bloßen Java-IDE betrieben. Lohn dafür ist eine Fülle an Plugins, die Eclipse erweitern oder kreativ zweckentfremden. Der folgende Artikel stellt zehn herausragende Vertreter dieser Gattung vor.
Erwähnenswert ist vorab aber noch die Eclipse Public License (EPL). Sie erleichtert im Vergleich zur GPL bewusst das Ableiten kommerzieller Derivate, ist aber dennoch von der Open Source Initiative und der Free Software Foundation anerkannt. Die meisten Eclipse-Erweiterungen übernehmen sie.
J Javascript Debug Toolkit
In Ajax-Webanwendungen stellt das schon wegen nicht standardkonformer Interpreter fehlerträchtige Javascript oft einen guten Teil der Business-Logik. Für Firefox und den Internet Explorer gibt es zuverlässige Javascript-Debugger. Besonders komfortabel ist die Arbeit mit ihnen jedoch nicht: Der Anwender setzt die Haltepunkte in der Code-Ansicht dann mühsam ohne Syntax-Highlighting und Suchfunktion.
Abhilfe schafft das unter der Artistic License veröffentlichte Javascript Debug Toolkit (Jsdt, [1]) für Eclipse (Abbildung 1). Damit setzt der Entwickler die Breakpoints direkt in der IDE, wo Syntax-Highlighting, Bookmarks und eine Suchfunktion das Zurechtfinden im Code erleichtern. Wie die PHP-Development-Tools nutzt auch das Jsdt-Plugin das gewohnte Eclipse-Debugger-Framework. Ein Cursor markiert die Stelle im Code, bei der der Debugger an einem Breakpoint oder im Einzelschritt-Modus anhält. Neben Variablenwerten zeigt Jsdt den Wert beliebiger Javascript-Ausdrücke. Abbildung 1 zeigt (rechts oben), dass dies sogar funktioniert, wenn die Ausdrücke eine Bibliothek wie Jquery [2] einbinden.

Abbildung 1: Da für das Javascript Debug Toolkit keine Browser-spezifische Erweiterung nötig ist, arbeitet das Entwicklerwerkzeug mit allen Ajax-fähigen Browsern – wenn auch mit Ecken und Kanten.
Fast noch wichtiger als der Komfort ist die breite Browser-Unterstützung von Jsdt: Da es nicht auf einer Erweiterung im Browser basiert, sondern die Javascript-Befehle über einen Ajax-Zwischenschritt übermittelt, funktioniert der Debugger laut seinen Entwicklern in allen Ajax-fähigen Browsern. Explizit sind Internet Explorer, Firefox, Google Chrome, Opera und Safari genannt.
Für die Linux-fähigen Browser hat ein Test für diesen Artikel dies bestätigt. Allerdings trübt es das Bild, dass manchmal nicht alle lokalen Variablen im Unterfenster auftauchten. In einigen Fällen half nur ein Neustart der IDE. Daher Platz 10 für ein Plugin, das für Ajax-Entwickler trotzdem nur schwer verzichtbar ist.
9 Texlipse
Das Outline-Unterfenster in Eclipse zeigt gewöhnlich Klassen sowie deren Methoden und Attribute an. Kreativ wirkt der Einsatz im Texlipse-Plugin [3], bei dem es die Struktur eines Tex-Dokuments wiedergibt (Abbildung 2). Auch Syntax-Highlighting und die Code-Vervollständigung lassen sich nicht nur für Programm-, sondern auch für Tex-Code nutzen, wie dieses Plugin beweist. Das Ein- und Ausblenden von Codeblöcken funktioniert ebenfalls wie in Eclipse gewohnt.

Abbildung 2: Auch dafür ist die Eclipse-Workbench gut: Mit Texlipse entsteht in Eclipse kein Programm-, sondern Tex-Code. Mit an Bord sind ein simpler Tabelleneditor und eine Fußnotenverwaltung.
Texlipse definiert eine Perspektive, die außer dem Dateibrowser die schon erwähnte Outline-Ansicht, den Texteditor und einen einfachen Tabelleneditor enthält. Der fällt allerdings rudimentär aus: Der Anwender muss die grafisch erstellten Tabellenzeilen und -spalten per Zwischenablage zwischen die »begin«- und »end«-Tags im Texteditor kopieren. Immerhin lassen sich neue Spalten einfügen. Im reinem Texteditor gerät dies bei größeren Tabellen jedoch zur Sisyphusarbeit. Umständlich bleibt es leider auch in Texlipse: Es gelingt nur über den Umweg, die Tabelle um 90 Grad zu drehen und dann an der gewünschten Stelle eine neue Zeile einzufügen.
Außer Tabellenzellen und -zeilen verwaltet das Plugin noch Bibtext-Referenzen. Ist eine Bibtext-Datei in das Projekt eingebunden, ergänzt die Code-Vervollständigung nach einem »cite«-Tag die Namen der dort enthaltenen Zitate. Dies gilt auch für das »label«-Kommando.
Der Texteditor bietet neben einer Code-Vervollständigung auch eine Rechtschreibprüfung und eine Symboltabelle, die den Code für griechische Buchstaben, Pfeile, Klammern, mathematische Operatoren und Akzentzeichen einfügt. [Strg]+[I] sorgt für sinnvolles Einrücken des Code.
Die aktuelle Version 1.4 des Plugins enthält eine Rechtschreibprüfung und eine Template-Funktion. Einen Check auf fehlende »ref«- oder »cite«-Verweise führt Texlipse gleich beim Tippen durch. Als Bonus gibt es einen Wortzähler. Der Aufruf der Tex-Buildchain, zum Beispiel zum Erzeugen eines PDF, reduziert sich in Texlipse auf einen Mausklick. Auch einen Vorschaubetrachter kann der Anwender auswählen.
Texlipse bietet noch Raum für Verbesserungen – insbesondere was den einfach gestrickten Tabelleneditor angeht. Die Eclipse-Workbench mit ihren vielfältigen Features von Autocomplete bis zur Versionsverwaltung für Tex-Code nutzbar zu machen hat Potenzial.
8 Umlet
Ein Beispiel für die grafischen Fähigkeiten der Workbench ist der UML-Editor Umlet ([4], Abbildung 3). Er unterstützt neun Diagrammtypen, im Einzelnen: Aktivitäts-, Klassen-, Komponenten-, Komponentenstruktur-, Deployment-, Profildefinition-, Abfolge-, Machine-State- und Usecase-Diagramme.

Abbildung 3: Eine wertvolle Hilfestellung bei der Planung von Software bieten UML-Diagramme. Mit Umlet entstehen sie komfortabel und ohne große Einstiegshürden.
Der Umlet-Editor fügt Eclipse lediglich neue Dokumenttypen hinzu. Beim Zeichnen bleibt der Entwickler in der Eclipse-Perspektive für seine Programmiersprache, muss also nicht zwischen einer UML- und einer Programmierperspektive wechseln. Auch die Diagramme speichert die Software direkt im Codebaum.
Nach dem Erstellen eines Diagramm-Dokuments zeigt die Workbench rechts im Dokumentfenster eine Palette mit zu dem Diagrammtyp passenden UML-Objekten. Ein Klick auf ein Objekt und anschließend in das Dokument genügen, um es einzufügen,
Objekte rasten an einem Raster ein, zusätzlich gibt es Funktionen zum links- oder rechtsbündigen sowie zentrierten Ausrichten. Farbe und Schrift verändern Buttons in der Symbolleiste. Verbindungslinien zeichnet Umlet entweder als direkte Linie oder rechtwinklig unterteilt. Die Knickpunkte lassen sich verschieben, was die Übersicht bei Diagrammen mit vielen Verknüpfungen verbessert. Ein Codegenerator fehlt allerdings.
7 Egit
Ebenso wenig wie Linus Torvalds\’ Humor können sich Entwickler dem Kernargument seines 2007 gehaltenen Vortrags [5] für das Versionsverwaltungssystem Git [6] entziehen: Das komfortable Klonen und Mergen in Git lässt traditionelle Systeme mit zentralem Repository wie CVS und SVN alt aussehen. Seiner Meinung nach gilt dies sowohl für riesige Projekte wie den Linux-Kernel als auch für einsame Hacker, die ein Projekt mit einigen Tausend Zeilen Code verwalten.
Das Plugin Egit [7] bindet die Git-spezifischen Funktionen wie Datenaustausch zwischen den Repositories (»Push« und »Pull«) , »Merge« und »Branch« direkt in das GUI der IDE ein (Abbildung 4). Auch Patches für den Datentausch per E-Mail entstehen per Mausklick. Der Import-Wizard erzeugt Klone eines bestehenden Repository, in dem der Entwickler experimentellen Code testet, bevor er ihn in das Haupt-Repository einspeist.

Abbildung 4: Wer vor der Komplexität von Git zurückschreckt, sollte Egit ausprobieren. Überrascht stellen SVN- und CVS-Nutzer dann fest, dass sie weniger Mühe mit der Quellcode-Verwaltung haben.
Misslingt das Experiment, genügt es, den Klon im Dateisystem zu löschen. Aufwändiges Branchen und Mergen im Haupt-Repository entfallen. Ein Klick auf »Team | Push« im Kontextmenü des geklonten Codebaums überträgt die Änderungen dagegen in ein anderes Git-Repository. Eine grafische Versionshistorie, die Abstammung sowie Abspaltungen und Merges anschaulich visualisiert, hilft Übersicht bewahren. Auch Anwendern, die Git-Befehle auf der Konsole ausführen statt das Eclipse-GUI zu nutzen, erleichtert dieses Diagramm die Arbeit.
Egit bietet eine Versionsverwaltung ganz nach dem Geschmack von Linus Torvalds. Eine Funktion zum Erzeugen von Git-Repositories fehlt, darum Platz 7.
6 SQL Explorer
Das EPL-lizenzierte SQL-Explorer-Plugin [8] setzt den Fokus anders als das altbekannte Quantum-DB-Plugin [9]: Legt dieses den Schwerpunkt auf den grafischen Datenbankzugriff, so bietet SQL Explorer stattdessen einen SQL-Editor mit Syntax-Highlighting (Abbildung 5). Der SQL Explorer unterstützt alle Datenbanken, für die ein JDBC-Treiber existiert. Für Oracle, DB2 und MySQL stellt er eigene Funktionen zur Verfügung. Den JDBC-Treiber muss der Anwender aber selbst herunterladen.

Abbildung 5: Der SQL Explorer setzt beim Datenbankzugriff nicht auf ein GUI, sondern auf einen leistungsfähigen SQL-Editor.
Die Datenbankstruktur zeigt der SQL-Editor im rechten Unterfenster. Ein Rechtsklick auf eine Tabellenspalte fügt ein »Select«- oder »Insert«-Statement oder nur den Spaltennamen in den SQL-Editor im mittleren Unterfenster ein. Jede ausgeführte Abfrage erscheint in der History und lässt sich erneut im SQL-Editor öffnen. Mehrere SQL-Befehle darf der Nutzer in Transaktionen packen. Um sie über eine Eclipse-Session hinaus aufzubewahren, speichert er sie in einer Datei. Abfrageergebnisse exportiert er als CVS-Datei sowie als HTML- oder Excel-Tabelle.
Das Datenbankdetail-Unterfenster zeigt Tabellenspalten, Zeilenzahl, Primärschlüssel und verknüpfte Felder sowie Indizes der Tabelle. Ändern lassen sich die Daten in dieser Vorschau ebenso wenig wie im Datenbankstruktur-Fenster. Wie immer ist im SQL Explorer handgestricktes SQL gefragt. Neben SQL beherrscht das Plugin auch Structured Comments, eine Makrosprache, mit der sich SQL-Befehle flexibler gestalten lassen.
Wer SQL beherrscht, kommt mit dem in die IDE integrierten SQL-Editor schneller zum Ziel als mit grafischen Datenbank-Werkzeugen.
5 Mylyn
Das unter der Eclipse Public License veröffentlichte Mylyn-Plugin [10] hat es sich zum Ziel gesetzt, Scrollen und den Wechsel zwischen Fenstern überflüssig zu machen. Dazu bindet Mylyn (früher Mylar) den Bugtracker in das Eclipse-Fenster ein. Auf der Liste der unterstützten Anwendungen stehen Bugzilla [11], Trac [12], Mantis [13], Atlassian [14], Collabnet und viele weitere [15]. Es vereinheitlicht die Anzeige der Einträge. Auch die Suche startet direkt aus Eclipse heraus.
Mylyn zeigt nicht alle Bugs des Repository, sondern vordefinierte Suchabfragen, die sich in so genannten Working Sets gruppieren. Nach dem Synchronisieren kann der Entwickler – anders als bei Web-basierten Bugtrackern – offline arbeiten. Mylyn holt die Daten per XML-RPC ab und zeigt sie ebenfalls in vereinheitlichter Optik an.
Das wichtigste Plus im Vergleich zur direkten Arbeit mit dem Bugtracker ist die Terminverwaltung, die Mylyn der Bugliste hinzufügt. Die »Scheduled«-Ansicht der Taskliste gruppiert die Einträge nach Datum (Abbildung 6). Da sich Mylyn bei der Terminverwaltung nicht auf das zentrale Task-Repository stützt, bleiben die Termine lokal und stehen anderen Entwicklern nicht zur Verfügung.

Abbildung 6: Das Mylyn-Plugin bindet die Tasks des projektweiten Trackers in eine lokale Terminverwaltung ein. Außerdem blendet es für eine Aufgabe nicht benötige Dateien aus.
Bei großen Projekten geht viel Zeit für die triviale Aufgabe verloren, die richtigen Quellcodedateien zu finden. Mylyn erweitert daher den Eclipse-Quellcode-Navigator, bei Java-Projekten den Paketbrowser. Setzt der Entwickler in der Taskliste eine Task als aktiv, erscheint der Quellcodebaum zunächst leer. Erst das Drücken der [Alt]-Taste lässt den Inhalt sichtbar werden. Alle Dateien und Ordner, die der Anwender nun anklickt, bleiben auch nach Loslassen der [Alt]-Taste sichtbar. Aktiviert der Entwickler eine anderen Task, beginnt das Spiel erneut. Jeder Task kann er so bestimmte Quellcodedateien zuweisen.
Es erleichtert den Entwickler-Alltag, die Einträge des Bugtrackers um eine Terminverwaltung und eine Bookmark-Funktion für Quellcodedateien zu erweitern.
4 G-Eclipse
G-Eclipse [16] verwandelt die Eclipse-Workbench in ein Steuerzentrum für Grid- und Cloud-Infrastrukturen. Das Plugin unterstützt in der vorliegenden Version 1.0 die Grid-Middleware-Lösungen G-Lite und Gria [17] sowie die Amazon-Cloud-Plattformen EC2 und S3 [18].
G-Eclipse enthält drei Perspektiven: Die Anwender-Perspektive führt Anwendungen auf dem Grid aus und verwaltet die Nutzerdaten. Die Operator-Perspektive dient der Verwaltung der Grid-Ressourcen. Die Developer-Perspektive stellt das Handwerkszeug für Anwendungsentwickler zu Verfügung.
Das Abenteuer in den Wolken beginnt mit der Definition einer virtuellen Organisation. Nachdem Zertifikate zur Authentifizierung erstellt und importiert sind, folgt die Job-Description, die festlegt, welche Anwendung in der Cloud oder im Grid läuft (Abbildung 7). Für mehrschrittige Aufgaben hält G-Eclipse einen grafischen Workflow-Editor vor.

Abbildung 7: Eclipse über den Wolken: Das G-Eclipse-Plugin verwaltet virtuelle Organisationen und stellt leistungsfähige Tools für die Job-Definition zur Verfügung.
Ein Deployment-Wizard installiert oder deinstalliert Software auf der virtuellen Maschine. Außerdem bindet G-Eclipse zwei Frameworks für die Datenvisualisierung ein, das freie VTK [19] und das für die Darstellung von Molekularstrukturen geeignete SRS-3D-Visualisierungssystem [20]. Platz 4 für zeitgemäßen Einsatz der altgedienten Eclipse-Workbench.
3 PHP-Development-Tools
Bei den PHP-Development-Tools (PDT, [21]) zeigt sich Eclipse als IDE-Framework im besten Licht: Das Plugin setzt das meiste aus der Java-Workbench für PHP-Entwickler um. Wer mit Eclipse in C++ oder Java entwickelt, braucht sich nicht umzustellen, die PDT-Features ändern weder Optik noch Bedienung der Grundausstattung.
Ein Object-Browser unterteilt die Dateien eines Projekts weiter in enthaltene Klassen, Attribute und Methoden (Abbildung 8). Ein Typenhierarchie-Unterfenster veranschaulicht die Vererbungsverhältnisse der Objekte. Vor manchem Tippfehler bewahrt die Autocomplete-Funktion. Wie es sich gehört, erfasst sie auch eingebundene Bibliotheken und Frameworks.

Abbildung 8: Das PDT-Plugin überträgt die Tugenden der Java-IDE in die PHP-Welt: Syntax-Highlighting und Code-Vervollständigung auch für eingebundene Libraries fehlen ebenso wenig wie ein Debugger.
Neben Ergänzungsvorschlägen zeigt Eclipse die mittels PHPdoc-Standard eingebettete Dokumentation für das einzufügende Element, etwa die Aufrufparameter. Hält der Entwickler den Mauszeiger über eine Methode im Quelltext, erscheint eine Kurzinfo. Mit dem Editor-Kontextmenü springt er per Klick zur Definition einer Methode oder zeigt Aufrufgraphen an. Der Shortcut [Strg]+[C] hüpft zur letzten Code-Änderung zurück.
Auch das Eclipse-Debugger-Framework setzt PDT für PHP um. Der Anwender hat dann die Wahl zwischen dem freien, bei verschachtelten Datenstrukturen aber bisweilen instabilen Xdebug und dem kostenlosen, doch proprietären Zend-Debugger [22].
Das PDT-Plugin macht Eclipse zur führenden PHP-IDE knapp vor dem für Entwickler dieser Skriptsprache ebenfalls gut geeigneten Netbeans.
2 Android-Plugin
Die Mobilplattform Google Android [23] befindet sich auf Expansionskurs. Das zugehörige Plugin ([24], Abbildung 9) bezeichnet das Android-Team als “bevorzugte Methode” für die Entwicklung. Es steht größtenteils unter Apache-Lizenz, einzelne Jar-Dateien sind BSD- und LGPL-lizenziert. Das Plugin bietet dem Anwender einen Wizard zum Erzeugen neuer Projekte und den SDK- und Virtual-Machine-Manager. Dieser lädt mit wenigen Mausklicks Android-SDKs in unterschiedlichen Version neu herunter und erzeugt passende virtuelle Android-Maschinen, die sich aus Eclipse starten lassen, um Code zu testen.
Neben der Eclipse-Java-IDE stehen dem Entwickler dabei Android-spezifische Hilfmittel wie zum Beispiel der Viewer für XML-Layout-Dateien (Abbildung 9) zur Verfügung, der den Code für grafische Android-Oberflächenelemente per Wizard erzeugt. Ein Debugger fehlt ebenso wenig wie eine Profiling- und Unit-Testing-Umgebung und ein Monitor für den Speicherplatzverbrauch.

Abbildung 9: Das Android-Plugin fügt der Workbench einen Designer für Android-Oberflächen und einen Emulator hinzu. So ist alles für eine komfortable Entwicklung Nötige vorhanden.
Der Android-Entwickler kann den Betriebszustand der Telefonhardware im virtuellen Gerät beeinflussen. Eingehende Anrufe simuliert er damit ebenso wie SMS-Nachrichten. Für die Simulation von Bewegungen für den GPS-Chip verwertet die Testumgebung GPS-Exchange-Dateien und KML-Daten aus Google Maps oder Google Earth. Der runden Android-Entwicklungsumgebung gebührt Platz 2.
1 Business Intelligence and Reporting Tools
Listen, Diagramme, Kreuztabellen und Serienbriefe – zunächst erinnert der Leistungsumfang der Business Intelligence and Reporting Tools (BIRT, [25]) an Open Office Base oder Microsofts Access. Dass BIRT neben Datenbanken auch Java-Klassen oder Webservices als Datenquelle akzeptiert, macht den Unterschied: Während Base oder Access Anwendungen mit abgeschlossenem Feature-Set sind, ist das BIRT-Eclipse-Plugin ein erweiterbares Framework (Abbildung 10).

Abbildung 10: Die Business Intelligence and Reporting Tools erinnern mit ihrem Leistungsumfang auf den ersten Blick an eine Office-Datenbank, zeichnen sich vor dieser aber durch Erweiterbarkeit aus.
Für die Reports müssen Entwickler dank grafischen Reportgenerators nicht unbedingt Code schreiben. Dass der Generator auf Standards wie CSS setzt, hält zudem seine Lernkurve flach. Datasets genannte Abfragen erstellen Entwickler wahlweise grafisch oder in SQL. Auch Diagramme oder Ergebnistabellen entstehen per Drag&Drop.
Daten aus Abfragen lassen sich mit aus Tabellenkalkulationen bekannten mathematischen Funktionen aufbereiten. Daten-Gruppierungen, auch über mehrere Ebenen, entstehen direkt in den Tabellen. Dynamische Reports entstehen mit Hilfe von Unterformularen, die – an Buttons oder Links gebunden – Skripte modifizieren. BIRT-Anwendungen laufen in der Eclipse-Workbench und sind als Webanwendungen exportierbar.
Das BIRT-Eclipse-Plugin lässt vergessen, dass das freie Base der Datenbankanwendung Access aus Microsoft Office noch immer hinterherhinkt. Wer professionelle Reports für das Unternehmensumfeld programmiert, muss sich dank BIRT nicht mit dem Notbehelf einer Office-Anwendung begnügen. Das ist Spitze! (uba)





