Eine kleine Rundreise durch das Eclipse-Universum, Teil 1

Was ist Eclipse?

Wayne Beaton, Jonas Helming, Maximilian Kögel
Titel

Eclipse

Hersteller

Eclipse Foundation

Lizenz

Eclipse Public Licence (EPL)

Download
Link

Der Titel dieses Beitrags mag ungewöhnlich erscheinen auf einem Portal, das sich intensiv mit dem Thema Eclipse beschäftigt. Auf der anderen Seite: Haben Sie schon einmal versucht, „Eclipse“ einer beliebigen Person in einem typischen Elevator Pitch, also in 15 Sekunden zu erklären?

Eclipse ist eine Java IDE

Der wohl mit Abstand bekannteste Teil von Eclipse ist das Integrated Development Environment (IDE) für Java – die Java Development Tools (JDT) (Abb. 1). Eclipse ist aber nicht irgendeine beliebige Java IDE, sondern mit knapp 65 % Marktanteil der Platzhirsch in diesem Bereich [1]. Anwender schätzen den ausgefeilten Editor, den inkrementellen Compiler, die Auto-Completion (CTRL+SPACE), die Quick-Assist-Funktion (CTRL+1) und die Refactoring-Unterstützung. Durch die hohe Verbreitung und die offene Architektur der JDT-Entwicklungsumgebung gibt es außerdem kaum eine relevante Technologie, die nicht in Eclipse eingebunden ist. So stehen für CVS, SVN, Git und viele andere Versionskontrollsysteme Integrationen bereit [2]. Gleiches gilt für die Unterstützung von Frameworks wie Spring, Hibernate oder des Google Web Toolkit (GWT). Google stellt mit dem Window Builder [3] auch einen UI-Editor zur Verfügung, der kaum Wünsche offen lässt. Und sollte doch etwas fehlen oder soll es einmal nicht Java sein: Eclipse ist nicht nur eine Java IDE, sondern auch ein IDE Framework.

Abb.1: Eclipse als Java IDE

Eclipse ist ein IDE Framework

Eines der Kernkonzepte von Eclipse ist seine modulare Architektur. Sie erlaubt das Hinzufügen und Entfernen von Features. Diese Features werden in Form von Komponenten – in Eclipse „Plug-ins“ oder „Bundles“ genannt – bereitgestellt. Entfernt man die Komponenten der Java Development Tools (JDT), bleibt ein mächtiges IDE-Gerüst zurück, das allerdings so ziemlich unbrauchbar ist. Das volle Potenzial wird dann ausgeschöpft, wenn eine Unterstützung für andere Sprachen als neue Komponente hinzugefügt wird. Ein Beispiel sind die C/C++ Developer Tools (CDT), die sich ein Kopf-an-Kopf-Rennen mit Visual Studio um die beliebteste IDE für C liefert. Weitere Unterstützung gibt es für PHP (PDT), Fortran sowie mit dem Dynamic Languages Toolkit (DLTK) für Sprachen wie Ruby, JavaScript oder Python.

Die Eclipse Foundation bietet zahlreiche vorkonfigurierte IDE-Pakete fertig zum Download an [4]. Durch das Plug-in-Konzept kann die eigene IDE auch den individuellen Wünschen angepasst werden und so beispielsweise Java und C gleichzeitig unterstützen.

Eclipse ist eine Tools-Plattform

Eclipse wurde ursprünglich von IBM entwickelt. Dass der Name „Eclipse“, zu Deutsch „Sonnenfinsternis“, eine Spitze in Richtung Sun sein sollte, gehört wohl ins Reich der Mythen. Denn Hauptkonkurrent im relevanten Bereich war eindeutig Microsoft. Was vielleicht weniger bekannt ist: Das Ziel von Eclipse war nicht primär eine neue Java IDE zu schaffen. Vielmehr sollte mit Eclipse ein zum Ende des letzten Jahrtausends immer deutlicher auftretendes Problem gelöst werden: In den neunziger Jahren wurde mit dem Aufkommen von Technologien wie Java und dem Durchbruch des Internets eine Reihe mächtiger Tools entwickelt. Allein IBM bot mit Tools wie VisualAge for Java, dem WebSphere Studio oder WebFacing eine stetig wachsende Produktpalette. Was aus heutiger Eclipse-Sicht kaum mehr vorstellbar ist: Viele dieser Tools wurden weitestgehend eigenständig entwickelt wurden. Aus Sicht des Benutzers gab es daher kein einheitliches Bedienkonzept und keine Möglichkeit, die Artefakte eines gesamten Projekts uniform und integriert zu verwalten. In dieser Situation sollte nun Eclipse die verschiedenen Tools zu einem konsistenten Ganzen integrieren, egal ob es sich um Code, Property-Dateien oder XML handelte.

Aus Sicht der Tool-Hersteller stellte sich das Problem vielleicht noch drastischer dar. Ohne eine gemeinsame Basis der Werkzeuge mussten Features und Bugfixes in mehreren Produkten und für mehrere Plattformen parallel gepflegt werden. Ein Beispiel für ein Feature, welches fast die gesamte Produktpalette betrifft, ist ein neu zu integrierendes Versionsverwaltungssystem wie das im Jahr 2000 erschienene Subversion. Nicht zuletzt kostet die parallele Installation und Ausführung verschiedener Produkte auch Speicher, was für komplexe Entwicklungswerkzeuge damals von erheblicher Relevanz war, aber auch heute noch ein wichtiger Faktor ist.

So begann IBM im November 1998 mit der Entwicklung der Eclipse-Plattform. Dass die Java Developer Tools (JDT) von Anfang an einer der wichtigsten Teile von Eclipse waren und heute noch sind, überrascht nicht. Zum einen war Java zur Geburtsstunde von Eclipse die wohl am dynamischsten wachsende Programmiersprache. Mit dem WebSphere Studio Application Developer, der Visual Age for Java ablöste, brachte IBM sein erstes kommerzielles Tool auf Eclipse-Basis auf den Markt.

Zum anderen bietet JDT Support für die Entwicklung von Eclipse selbst, das eben auch in Java entwickelt wird. Das Projekt zieht sich à la Münchhausen damit sozusagen selbst aus dem Sumpf (Bootstrapping).

Heute existieren auf der Grundlage von Eclipse Hunderte, wenn nicht Tausende von Tools der verschiedensten Hersteller. Neben typischen Entwickler-Tools, wie die Data Tools für die Datenbank-Administration oder die Web Tools für Web-Entwickler, gibt es auch zahlreiche Angebote außerhalb der reinen Software-Entwicklung. Mit den Business Intelligence and Reporting Tools (BIRT) [5] (Abb. 2) erstellen beispielsweise Business-Analysten textuelle und grafische Auswertungen. Ein besonders stark wachsender Teil von Eclipse ist die Modellierung, bedingt durch den stabilen und pragmatischen Standard des Eclipse Modeling Framework (EMF).

Abb. 2: Eclipse BIRT

Der Eclipse Marketplace [6] (Abb. 3) bringt seit Eclipse Helios Ordnung in diese Vielfalt und erlaubt ähnlich wie Apples App Store nach Lösungen zu suchen und diese komfortabel mit einem Klick in die eigene Eclipse-Installation zu integrieren. Der Yoxos Marketplace [7] ermöglicht das Testen ausgewählter Lösungen sogar direkt aus dem Browser.

Abb. 3: Der Eclipse Marketplace

Doch damit ist das Eclipse-Universum noch lange nicht erschöpfend beschrieben: Was ist mit der Eclipse Rich Client Platform (RCP), was mit der Eclipse Runtime und vielleicht am wichtigsten: Wo bleibt Open-Source und welche Rolle spielt die Eclipse Foundation? Diesen Themen widmen wir uns in den nächsten Teilen der Reihe „Was ist Eclipse?“.

Serie: Was ist Eclipse?

Teil 1: Eclipse als Java IDE, IDE Framework und Tools-Plattform
Teil 2: Eclipse als Anwendungsframework und Runtime
Teil 3: Open Source, Eclipse Foundation, EPL und das Eclipse-Ökosystem

Geschrieben von
Wayne Beaton
Wayne Beaton
Wayne Beaton arbeitet für die Eclipse Foundation als Leiter der Committer-Community und „Evangelist“. Er ist Chefredakteur für die Eclipse Corner, PMC Lead des Technology Project und Project Lead der Projekte Eclipse Examples und Woolsey.
Jonas Helming
Jonas Helming
Dr. Jonas Helming ist Geschäftsführer der EclipseSource München GmbH sowie Consultant, Trainer und Software Engineer im Bereich Eclipse-Technologie. Seine Schwerpunkte liegen neben Java auf den Technologien Eclipse RCP, Eclipse-Modellierung und Eclipse 4. Weiterhin verfügt er über mehrjährige Erfahrung in der Etablierung und Anwendung von agilen Prozessen. Jonas ist aktives Mitglied der Eclipse-Community, leitet mit der EMF Client Plattform und dem EMFStore zwei bei der Eclipse Foundation gehostete Open-Source-Projekte und ist in einigen weiteren aktiv beteiligt. Als Berater und Trainer verfügt er über mehrjährige Erfahrung in der Vermittlung von Themen rund um Java und Eclipse sowie agilen Prozessen und hält einen Lehrauftrag der Technischen Universität München. Darüber hinaus ist er als Speaker regelmäßig auf Kernkonferenzen wie der JAX oder der EclipseCon. Kontakt: jhelming@eclipsesource.com
Maximilian Kögel
Maximilian Kögel
Dr. Maximilian Kögel ist Geschäftsführer der EclipseSource München GmbH und arbeitet als Senior Software Architect im Bereich Eclipse- und Web-Technologie. Neben seiner Fokussierung auf das Eclipse Modeling Framework und Eclipse RCP ist er auch mit der Entwicklung von Webapplikationen mit AngularJS, Web Components und JSON Schema vertraut. Ein Kernthema seiner Arbeit ist das Erstellen von Modellierungswerkzeugen basierend sowohl auf einem Eclipse- als auch einem Web Technologiestack. Er ist ein aktives Mitglied der Eclipse-Community, regelmäßiger Sprecher auf EclipseCons, Leiter und Committer bei mehreren Eclipse Projekten, u.a. EMFForms und EMF Core und nicht zuletzt Mitglied im Eclipse Architecture Council. Auch außerhalb des Eclipse Ökosystems ist er in Open-Source-Projekten aktiv und leitet z.B. das JSONForms-Projekt zur Entwicklung von Web-Applikationen. Als Berater und Trainer verfügt er über langjährige Erfahrung in der Anwendung und Vermittlung von Expertenwissen rund um Java, Eclipse und Web-Technologien sowie agilen Prozessen.
Kommentare

Schreibe einen Kommentar

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