Einführung und Entstehung
... [ Seminar JAVA und Werkzeuge für das Web ] ... [ Thema Eclipse ] ... [ Die Eclipse-Architektur ] ...
Übersicht: Einführung und Entstehung
Eclipse - Die eierlegende Wollmilchsau?
"Eclipse - Die Entwicklungsumgebung für JAVA und andere Sprachen." (Thema)
"The Eclipse Platform is an IDE for anything, and for nothing in particular." (IBM Eclipse White Paper)
Mit Eclipse soll also alles ("anything") möglich sein. Da gilt es zunächst einmal, das "alles"
zu definieren. Eclipse verspricht dem Softwareentwickler, dass er keine multiplen
Entwicklungsumgebungen für verschiedene Programmiersprachen mehr braucht, keine Extra-Tools für Web-Gestaltung,
Bildbearbeitung etc. All dies ist bei Eclipse verfügbar. Verfügbar - aber eben nicht
standardmäßig implementiert.
Weil IBM nur das Gerüst und das Fundament liefert, müssen sich die Anwender
"ihr" Gesamtsystem aus einzelnen, voneinander unabhängigen Einzelmodulen selber bauen.
Damit das funktioniert, ist Eclipse ein OpenSource-Projekt, das mit Plug-Ins arbeitet. Jedes einzelne API, jeder
Editor etc. ist als sog. Plug-In registriert, das mit dem o.g. Fundament, der "Eclipse Platform", sowie mit
anderen Plug-Ins kommunizieren kann. Ein Plug-In kann allgemein wie folgt definiert werden:
Ein Plug-In ist ein Modul, dass mit dem Gesamtsystem über wohl definierte Schnittstellen in einer
wohl definierten Art und Weise kommuniziert bzw. interagiert.
Mit Hilfe einer XML-Datei, der sog. Manifest-Datei, wird die Leistungsfähigkeit
eines Plug-Ins beschrieben. Beispiele für standardmäßig integrierte Plug-Ins sind JUnit, Lucene
oder ANT.
So erinnert Eclipse in seiner Funktionsweise an ein Baukastensystem, aus dem sich jeder Anwender aus einer Fülle
von Möglichkeiten genau die zusammenbaut, die seinen subjektiven Anforderungen am ehesten genügt. Denkbare
Bausteine wären etwa verschiedenste Programmiersprachen-Umgebungen (bspw. C, C++, C#, FORTRAN, ...), HTML- bzw.
XML-Editoren, Datenbank-Verwaltungstools uvm.
Das Eclipse-SDK mit einer standardmäßig enthaltenen JAVA-Entwicklungsumgebung (JDT - JAVA Development Tooling)
ist unter dieser Adresse kostenfrei zu erhalten. Über das gesamte Internet verstreut
finden sich Seiten, auf denen ebenfalls kostenfrei bereits entwickelte Plug-Ins für unterschiedlichste Aufgaben
zum Download bereit stehen. Das JDT benötigt eine JDK-Version von mindestens 1.3, die auf dem Rechner installiert und
dem System über die Pfadvariable sichtbar gemacht worden sein muss.
Theoretisch kommt die Idee, die hinter Eclipse steht, der eierlegenden Wollmilchsau also sehr nahe, praktisch ist
die Entwicklung neuer Plug-Ins, die das System der subjektiven Perfektion näherbringen, doch sehr schwierig
zu erlernen und unflexibel, was im letzten Kapitel noch näher beleuchtet werden soll. Da sich Eclipse mit einem
Alter von einem Jahr aber immer noch in der Entwicklungsphase befindet, ist eine Weiterentwicklung auf diesem
Gebiet nicht auszuschließen.
Entstehungsgeschichte
Der Entstehungsprozess von Eclipse begann, initiiert von IBM, vor etwa zehn Jahren. Fast der
gesamte Quellcode von Eclipse ist in JAVA geschrieben - einiges sogar mit Eclipse selber. (So wurden bzw. werden alle Plug-Ins
in JAVA bzw. Eclipse programmiert.) IBM wollte Eclipse zuerst nur als Grundlage ihres WebSphere Application Developers benutzen,
erkannte dann aber die Möglichkeiten, die Eclipse als OpenSource-Projekt den Entwicklern bieten könnte, und suchte
Mitstreiter, die bei der Weiterentwicklung mithelfen würden. So kam es im November 2001 zur Gründung des Eclipse
Consortiums. Gründungsmitglieder des Konsortiums sind:
- Borland
- IBM
- MERANT
- QNX Software Systems
- Rational Software
- RedHat
- SuSE
- TogetherSoft
- Webgain
Besonders IBM und SuSE hatten schon Erfahrungen und große Erfolge mit OpenSource-Projekten (LINUX bzw. Apache)
und konnten diese Erfahrungen in die Entwicklung und den Vertrieb von Eclipse einbringen.
Bald nach seiner Entstehung kapselte sich das Konsortium von den Mutterfirmen ab und wurde unabhängig. Inzwischen
besteht es durch diverse Neuaufnahmen aus ca. 40 Mitgliedern, die mehr oder weniger in den Entwicklungsprozess involviert
sind. Darunter finden sich so namhafte Unternehmen wie z.B. Sybase, Fujitsu, Hitachi oder HP.
Alle Mitglieder verpflichten sich mit der Unterzeichnung der CPL (Common Public License), die OpenSource-Eigenschaft von
Eclipse zu garantieren und alle für Eclipse entwickelten Plug-Ins ebenfalls frei verfügbar zu machen. Ältere, aber
hochwertige Programme werden von den einzelnen Unternehmen so umgebaut, dass sie als Plug-In in Eclipse
verwendet werden können. Weiterhin liegen alle Distributionsrechte aller auf dem Eclipse-System entwickelten Tools
allein beim Entwickler selbst.
Allerdings sind alle Konsortiums-Mitglieder berechtigt, eine kommerzielle Entwicklungsumgebung auf der Basis von Eclipse
zu entwickeln und zu vertreiben, wie es IBM bspw. mit dem WebSphere Application Developer (Next Generation) getan hat.
Dieser unterscheidet sich von Eclipse durch dessen Möglichkeiten zur J2EE-Entwicklung (Servlets, Java Server Pages,
Enterprise Java Beans) und dem Application Server, der standardmäßig zum Lieferumfang von WebSphere
gehört.
Die Version 1.0 erblickte November 2001 das Licht der Welt, mittlerweile ist die Version 2.0.1 die aktuellste (Stand: November 2002).
Ziele der Entwicklung und Einführung von Eclipse
Zusammenfassend lassen sich folgende Ziele für Eclipse definieren:
- Unterstützung der Konstruktion einer Vielzahl an Tools für die Anwendungsentwicklung
- Unterstützung von Tools zur Manipulation einer Vielzahl von Datentypen (HTML,JAVA,C,JSP,EJB,XML,GIF,JPG,...)
- Ermöglichen einer einfachen Integration und der Zusammenarbeit verschiedenster Tools
- Unterstützung sowohl GUI-basierter als auch nicht GUI-basierter Entwicklungsumgebungen
- Ermöglichen eines betriebssystemunabhängigen Ablaufs
- Aufbauend auf der großen Verbreitung und Popularität soll die Programmiersprache JAVA zur Entwicklung der Plug-Ins verwendet werden
Diese Ziele werden erreicht durch das Plug-In-Konzept sowie die Verwendung von JAVA als Entwicklungssprache und dessen
Systemunabhängigkeit.
... [ Seminar JAVA und Werkzeuge für das Web ] ... [ Thema Eclipse ] ... [ Einführung und Entstehung ] ... [ Die Eclipse-Architektur ] ...