Version 3.0 soll Nutzung vereinfachen und neues Anwendungsgebiet erschließen

Eclipse dient als Basis für den Rich Client

25.06.2004
MÜNCHEN (as) - Die quelloffene Plattform für Entwicklungswerkzeuge "Eclipse" bietet mittlerweile derart viele Funktionen und Komponenten, dass sie Benutzer leicht überfordert. Die in Kürze verfügbare Version 3.0 verspricht hier Hilfe. Zugleich soll Eclipse künftig nicht mehr nur als Programmierumgebung, sondern auch als Framework für Rich-Client-Anwendungen fungieren.

Seit der Freigabe der Version 1.0 vor gut drei Jahren durch die IBM-Tochter OTI hat sich das Eclipse-Projekt stetig weiterentwickelt, ist aber auch immer komplexer geworden. Grund hierfür ist die große Flexibilität und Offenheit, mit der sich für diese quelloffene Plattform Entwicklungswerkzeuge erstellen und einbinden lassen. Anders als traditionelle integrierte Entwicklungsumgebungen (Integrated Development Environment = IDEs), die eher monolithisch konzipiert sind, besitzt Eclipse einen relativ kleinen Kern, der mit Hilfe von Plugins beliebig erweiterbar ist. Immer mehr Entwickler, Hersteller und Dienstleister nutzen heute diese Möglichkeit, um individuelle Arbeitsumgebungen aufzubauen oder eigene Funktionen und Tools in den Markt zu bringen. Dabei kommt ihnen entgegen, dass Eclipse und Plugins sich aufgrund der Lizenzierung auf der Basis einer Common Public License kostenlos für die kommerzielle und private Nutzung verwenden lassen.

Sprachenunabhängig, aber Java-freundlich

Zwar ist Eclipse grundsätzlich programmiersprachenunabhängig und unterstützt Werkzeuge, die beispielsweise mit Java, HTML, C, C++, Cobol, Java Serverpages, PHP, Enterprise Javabeans, XML oder Grafikformaten wie GIF arbeiten. Doch ist das Projekt vor allem dank seiner ebenfalls aus Plugins bestehenden Programmierumgebung "Java Development Tools" (JDT) populär geworden. Diese kann sich dem zuständigen Eclipse-Konsortiums zufolge mit kommerziellen Produkten messen lassen und nutzt in Version 3.0 die Standard Edition des Java 2 SDK in Version 1.4. Sie wird zusammen mit allen übrigen Bestandteilen als "Eclipse SDK" ausgeliefert und verfügt über Features wie exploratives Programmieren durch inkrementelle Übersetzung, Refactoring, präzise Symbolsuche, intelligente Codierungshilfen, strukturiertes Vergleichen von Code oder das Debugging mit dynamischem Nachladen von geänderten Klassen.

Entwicklung im Baukastensystem

Die breite Unterstützung für Eclipse und speziell JDT hat mittlerweile zu einer kaum mehr zu überschauenden Fülle an freien oder kostenpflichtigen Plugins geführt. So gehen aktuelle Schätzungen davon aus, dass neben den etwa 70 Plugins, die das Eclipse-Konsortium bietet, weitere 1700 Bausteine erhältlich sind. Die Bandbreite reicht dabei von einfachen Funktionen für das Generieren von ZIP-Files bis hin zu mächtigen Entwicklungsumgebungen wie "Together" von Borland oder IBMs "Websphere Studio Application Developer", der wie schätzungsweise 50 weitere kommerzielle Produkte auf Eclipse basiert.

Zur Vielfalt von Eclipse tragen zudem die diversen Projekte innerhalb der Community bei. So läuft neben dem eigentlichen Eclipse-Projekt das "Eclipse Tools Project", das sich mit der Entwicklung zusätzlicher Werkzeuge beschäftigt. Hier finden sich in Subprojekten beispielsweise das "Hyades"-Framework für Testen, Monitoring und Profiling von Java-Anwendungen und das "C/C++ Development Tools Project", das an einer umfangreichen IDE für diese Programmiersprachen arbeitet. Das Jaxa/XML-basierende Generierungs-Tool "Eclipse Modeling Framework" soll es ferner gestatten, Anwendungen und Plugins ausgehend von einem strukturierten Datenmodell zu erstellen. Als drittes Vorhaben vereint das "Eclipse Technology Project" eine Reihe von Aktivitäten rund um neue Technologien und die Zukunft von Eclipse. Themen sind beispielsweise die aspektorientierte Entwicklung in Java, die Entwicklung von Schulungsprogrammen und Web-Services. Mit dem "Eclipse Web Tools Platform Project" ist zudem ein Top-Level-Projekt in der Diskussion, das Eclipse um Werkzeuge für die Web-Entwicklung erweitern möchte.

Für den Endanwender wird derweil die große Vielfalt und Flexibilität von Eclipse zur Last - vor allem wenn die Arbeitsumgebungen beziehungsweise Produkte wachsen. So ist man bei der Suche nach geeigneten Plugins weitgehend auf die Hilfe einschlägiger Sites wie, Newsgroups, Literatur oder die Selbstdarstellungen der Plugin-Provider angewiesen. Zwar gibt es ein klares Programmiermodell für Plugins, eine offizielle Zertifizierung existiert hingegen nicht. Benötigt der Anwender über diese Ressourcen hinaus aber Support oder verliert den Überblick bei den Lizenzen, so muss er sich mit einzelnen Plugin-Providern auseinander setzen - ein Argument, das gern von traditionellen IDE-Anbietern gegen Eclipse und Open Source ins Feld geführt wird. Auf der ersten deutschen Eclipse-Konferenz, die dieser Tage in Heidelberg stattfand, rieten daher die zahlreich angereisten Dienstleister, eine Einführung von Eclipse im großen Stil nicht ohne professionelle Hilfe anzugehen.

Ferner fühlen sich Benutzer bei der Einrichtung und Verwaltung der Benutzeroberfläche (Workbench) überfordert, da in ihr Editoren und Fenster (Views) beliebig zu so genannten Perspektiven kombiniert und angeordnet werden können. Ebenso lassen sich in eine geöffnete Perspektive Views und jeder beliebige Editor hinzufügen - auch wenn diese in einem anderen Plugin definiert wurden. "Wir müssen versuchen, dass wir nicht sämtliche Funktionalität sämtlichen Benutzern zeigen", erklärte Erich Gamma, Leiter des Schweizer OTI- Labors in Zürich, auf der Veranstaltung.

Komplexität verbergen

Version 3.0 verspricht nun, stärker die Bedürfnisse beim Einsatz großer und komplexer Produkte zu berücksichtigen, und wartet mit zahlreichen Detailverbesserungen auf. Von manchen Kritikern als bloße Oberflächenkosmetik verurteilt, erhielt hierzu beispielsweise die Workbench ein neues Aussehen, das laut Gamma den bisherigen Windows-2000-Look durch eine nativ erscheinende Oberfläche für das jeweilige Betriebssystem ablöst. Auch die Gewöhnung an die Arbeitsumgebung soll nun leichter sein. Letztere lasse sich jetzt derart vorkonfigurieren, dass zunächst nur eine vordefinierte Auswahl aller Funktionen angezeigt werde. Damit solle laut Eclipse-Konsortium künftig vermieden werden, dass wie bisher manche Benutzer beim Anblick von Eclipse regelrecht "überwältigt und entmutigt" werden.

Beispiele für die verbesserte Benutzerführung sind die lang ersehnte Funktion, Quelltextabschnitte wie in einem klassischen Falten-Editor auf- und zuklappen zu können, sowie weitere Optionen bei semantischen Syntax-Hervorhebungen, zu denen etwa das Einfärben statischer Klassenvariablen im Java-Editor gehört. Mit neuen "Quick Fixes" löst der Code-Assistent zudem laut Konsortium noch mehr Probleme und generiert etwa Getter- und Setter-Methoden für den Benutzer auf Knopfdruck. Musste dieser bislang komplexe Arbeitsschritte in der Workbench nachvollziehen, kann er sich fortan durch "Cheat Sheets" helfen lassen, die ihn mit Informationen durch den Workflow leiten.

Arbeit ohne Zwangspausen

Speziell zur Steigerung der Benutzerproduktivität ist es jetzt möglich, lang dauernde Operationen wie "Builds" und "Suchen" auch asynchron im Hintergrund auszuführen, um die Wartezeiten für den Benutzer zu verkürzen. Ebenso soll die Suche nach neuen oder überarbeiteten Features über den Eclipse-Client, die bisher ein Weiterarbeiten verhinderte, asynchron oder geplant erfolgen können. Außerdem kann Eclipse jetzt im laufenden Betrieb den Workspace wechseln, in dem die Entwicklungsumgebung sämtliche Arbeitsdaten verwaltet.

Doch Version 3.0 soll mehr sein als nur ein Update und neben dem Einsatz als Entwicklungsumgebung und "Ökosystem" für Werkzeuge auch neue Anwendungsgebiete erschließen. So zeigte sich schon früher beim Einsatz dass das Komponentenmodell von Eclipse, die GUI-Elemente (Widgets), das Hilfesystem oder der Update-Manager nicht nur für IDEs nützlich sind. Vielmehr lassen sich diese auch einsetzen, um im Vergleich zu HTML-Programmen funktionsreichere Java-basierende Desktop-Anwendungen über Plugins aufzubauen und zu verwalten. Eclipse stellt demnach die Laufzeitumgebung dar, während Entwickler sich auf das Erstellen neuer Anwendungslogik konzentrieren können.

Laut Christian Wege, IT-Berater bei Daimler-Chrysler und Sprecher auf der Veranstaltung, war es zwar schon in der Version 2.1 von Eclipse möglich, derartige Rich Clients zu erstellen. Doch war die Entwicklung umständlich, der Plattformcode musste stellenweise geändert werden, und die allgemeinen Funktionen waren verstreut implementiert. Die Eclipse-Architektur und das API sollten deshalb so umgebaut werden, dass sich die Komponenten für die Anwendungsprogramme in einer eigenen Distribution weitgehend ohne die IDE-spezifischen Features wie den Workspace vereinen ließen. Heraus kam die "Rich Client Platform" (RCP).

Sie verwendet weiterhin den Eclipse-Kern, der das Komponentenmodell implementiert, reduziert ihn aber ab Version 3.0 auf eine dünne Kompatibilitätsschicht, die ihrerseits auf der Laufzeitumgebung des OSGI-Konsortiums aufsetzt. Der Standard "Open Services Gateway Initative" bietet eine offene Diensteplattform für die Verwaltung und Bereitstellung von Anwendungen in vernetzten Geräten. Er soll Eclipse für entsprechende Produkte und Werkzeuge über einen mit dem Plugin-Modell vergleichbaren Ansatz verfügbar machen. Zudem verheißt OSGI eine bessere Verwaltung von Sicherheitsanforderungen. Per "Hot Deployment" können Plugins künftig dynamisch hinzugefügt oder aktualisiert werden.

Zudem bietet die RCP die Möglichkeit, Komponenten einer Anwendung als "Features" zusammenzufassen und über den Update-Manager zu verwalten. Dadurch soll sich das Branding und die Verteilung von Rich-Client-Anwendungen erleichtern lassen. Das Eclipse-Konsortium hofft nun, dass RCP dank seiner Architektur und der bereits vorhandenen Unterstützung durch Hersteller und Entwickler zum Referenz-Framework für die Rich-Client-Entwicklung werden könnte. Erste RCP-Implementierungen stehen bereits mit dem "Workplace Client" für Lotus Notes oder dem Geo-Informationssystem der Firma Logiball aus Herne zur Verfügung. Hersteller wie Bea Systems und Microsoft haben hingegen eigene Ansätze vorgestellt.

Eclipse kompakt

- Eclipse begann 1999 als internes Projekt bei der IBM-Tochter OTI. Ziel war die Entwicklung einer neuen, erweiterbaren Produktarchitektur für die Entwicklungsumgebungen "Visual Age". Bisherige Funktionen dieser Werkzeuge und das Java- und Smalltalk-Know-how des Herstellers flossen in die Arbeiten ein. Rund 40 Millionen Dollar kostete laut IBM die Entwicklung.

- 2001 wurde Eclipse in Version 1.0 als Open Source über die Website www.eclipse.org freigegeben und unter die liberale Common Public License gestellt. Seit Februar 2004 ist das für das Projekt verantwortliche Eclipse-Konsortium eine Non-Profit-Organisation mit einem zwölfköpfigen Vorstand.

- Die Eclipse-Plattform dient zur Herstellung von Werkzeugen und Desktop-Anwendungen. Sie ist kostenlos und stellt ihre Funktionen als Plug-ins zur Verfügung

- Herzstück von Eclipse ist der "Workspace". Er verwaltet die Projekteinstellungen in einem Repository, die Projektressourcen jedoch im Dateisystem.

- Die "Workbench" implementiert die Benutzeroberfläche mit Hilfe der Komponenten "Standard Widget Toolkit" für generische GUI-Komponenten und dem GUI-Framework "Jface". Die Arbeit erfolgt mit Editoren, Views (Informationen zum Editor und über externe Ressourcen) und Perspektiven (Zusammenfassung von Fenstern nach Tätigkeit des Entwicklers).

- Weitere Kernelemente sind Hilfefunktionen, das Versionsverwaltungssystem "Concurrent Versions System" und ein Debugger.

- Als Teil des "Eclipse SDK" werden standardmäßig die Entwicklungsumgebungen "Java Development Tools" für Java und das "Plugin Development Environment" für Plugins mitgeliefert.

- Weitere Plugins finden sich auf der offiziellen Website http://eclipse-plugins.2y.net.

Highlights in Version 3.0

- Ausbau zur Applikationsplattform mit Hilfe der neuen Rich Client Platform;

- verbesserte Skalierbarkeit der Benutzerschnittstelle;

- mehr Hilfe bei der Einarbeitung;

- bessere Unterstützung komplexer Arbeitsabläufe und Möglichkeit, lang dauernde Operationen im Hintergrund auszuführen.

Details unter: http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_0.html.