Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

IBM Eclipse

Mit freundlicher Unterstützung von Project Mojo.

Beschreibung

Eclipse ist in erster Linie für die Entwicklung von Java-Applikationen gedacht, aber nicht ausschließlich dafür. Es ist vielmehr eine generische Plattform, die mittels Plugins um neue Funktionalität erweitert werden kann und Entwicklungswerkzeuge für verschiedenste Inhalte (C, Java, XML etc.) integriert. Für die Java Entwicklung ist das Java Development Tooling (jdt) zuständig. Ein entsprechendes Gegenstück für C gibt es auch (cdt). Eclipse basiert auf Java und ist seit einigen Jahren Open Source, was seine Entwicklung entscheidend beschleunigt hat.

Aufbau

Die komponentenbasierte Architektur der Eclipse-Plattform setzt sich zusammen aus Runtime-Modul, Workspace, Workbench, JFace, Team Support und der Hilfe. Diese Kernfunktionalitäten werden durch Plugins erweitert. Das Runtime-Modul registriert beim Start alle vorhandenen Plugins. Dabei stellen selbst Workspace, Workbench, etc. Plugins dar.

Workspace

Mit dem Workspace wird eine Zuordnung von Projekten erreicht. Jedes Projekt wird auf ein Verzeichnis abgebildet und besteht aus verschiedenen Dateien.

JFace

JFace stellt Funktionalitäten, wie "actions" und "viewers" zur Verfügung, um das User Interface zu erweitern.

Workbench

Die Workbench hängt von JFace und der SWT API ab. Sie ist vor allem zuständig für die Interaktion der Werkzeuge mit dem Anwender.

Editoren zum Öffnen, Bearbeiten und Schließen von Dateien. Ansichten ("Views") stellen Informationen über verschiedene Objekte dar. Editoren und Ansichten werden in Perspektiven zusammengefasst, die Layout und Aktionen bestimmen, dabei kann zwischen verschiedenen Perspektiven umgeschaltet werden.

Plugins

Ein bereits existierendes Plugin ist das JDT. Darum soll es in den nächsten Abschnitten gehen.

JDT

Das JDT verwandelt Eclipse in eine komfortable Java IDE. Es können Java Projekte mit Quelltexten, (fremden) JAR Archiven, Klassendateien in der typischen package Struktur verwaltet werden. Nicht nur auf Dateiebene kann ein Projekt inspiziert werden, sondern auch auf der Ebene von Java-Symbolen wie Paketen, Klassen, Methoden und Feldern.

Der Editor hat umfangreiche Funktionalität:

  • Syntaxhervorhebung,
  • Quelltextformatierung,
  • Quelltextvervollständigung und
  • kontextsensitive API-Hilfe (Einblendung von javadoc Inhalten für das aktuelle Objekt).

Kontinuierlich erzeugte Hinweise auf eventuelle Kompilierprobleme entlasten und unterstützen den Entwickler bei der Arbeit.

Refactoring-Funktionen wie "Extract Method" und "Safe Rename" werden angeboten.

Ein JCK-konformer inkrementeller Java-Compiler erzeugt die class-Dateien. Eclipse erkennt, welche Dateien/Fragmente geändert wurden und kompiliert diese entsprechend ("incremental compilation") neu. Wer qualvolle Erfahrungen mit C und Makefiles gemacht hat, der weiss diesen Geschwindigkeitsvorteil zu schätzen.

Ausgeführt wird eine Applikation in der vom Entwickler festgelegten Java-VM. Mit der Unterstützung für unterschiedliche Java-VMs kann man so gleichzeitig die Laufähigkeit seiner Software testen.

Ausgaben/Eingaben werden über eine IDE-interne Konsole getätigt.

Wie in anderen IDEs gibt es auch hier einen Debugmodus (JPDA konform). So kann man Schritt für Schritt sein Programm durchgehen, Breakpoints setzen, Threads verfolgen und Variablen beobachten und modifizieren.

Hardwareanforderungen

Java-Anwendungen tendieren dazu, das System stärker zu belasten, als ihre nativ kompilierten Gegenstücke, und Eclipse ist keine Ausnahme. Obwohl SWT (für die GUI zuständig) für jede Plattform teilweise native implementiert wird, sollte man sich einen Rechner mit 1GHz und ordentlich Speicher schon gönnen.

Fazit

Eclipse sollte man sich auf jeden Fall anschauen, zumal es frei erhältlich ist und ständig weiterentwickelt wird. Ausserdem ist es kein speziell auf Java ausgerichtetes Tool, sondern folgt dem Motto:

The Eclipse Platform is an IDE for anything, and for nothing in particular.

Man kann gespannt sein, welche weiteren Anwendungsgebiete die Entwicklercommunity für Eclipse erschliesst.

Weblinks