Het oorspronkelijk door IBM/OTI ontwikkelde Eclipse is in twee opzichten bijzonder. Technisch is het een architectuur voor de integratie van ontwikkeltools voor diverse omgevingen en platformen. Zakelijk valt het onder een open source licentie die ook toepassing in bedrijfseigen producten ondersteunt.
Het verhaal gaat dat IBM zo’n 40 miljoen dollar aan de ontwikkeling van Eclipse had uitgegeven voordat het in 2001 aan het Eclipse.org consortium werd overgedragen. Dat is een heel bedrag en zeker voor iets dat volgens het ‘Eclipse Platform Technical Overview’ een geïntegreerde ontwikkelomgeving is voor ‘van alles en niets in het bijzonder’. Het is de verdienste geweest van IBM om dit generieke concept op waarde te schatten, uit te werken en als open broncode te verspreiden.
Nauwkeuriger gezegd was het IBM dochter OTI (Object Technology International) dat binnen het bedrijf verantwoordelijk was voor de ‘Visual Age for Java’ ontwikkelomgeving . Eclipse is geïmplementeerd in Java, heeft een Java Runtime Environment (JRE) nodig en is in de standaard combinatie op te halen als een Java SDK (Software Development Kit). Het wordt gebruikt in de Websphere Studio Workbench dat de basis vormt van de IBM familie Java ontwikkel tools.
Het Eclipse project reikt echter veel verder dan Java. Al vanaf het begin waren naast IBM/OTI ondernemingen als Borland, Red Hat Linux, Suse Linux en ingebedde systemenspecialist QNX lid van het consortium. Later hebben onder meer HP, Oracle en recentelijk ook Intel zich daarbij aangesloten. Al deze grote deelnemers hebben toegezegd actief aan het project bij te dragen en software in te brengen.
Met steun van QNX, MontaVista, Red Hat, Rational en nog vele anderen is inmiddels dan ook een CDT (C/C++ Development Tools) plug-in geproduceerd en vrijgegeven.
Het is nu dus mogelijk om binnen één programma – Eclipse – zowel in Java, C als C++ software te ontwikkelen en projecten te beheren. Maar ook een uitbreiding van deze combinatie met bijvoorbeeld uml modelering (unified modeling language) vergt niet meer dan de toevoeging van een aantal bestanden. Dat is de kracht van de Eclipse insteekmodulen.
Bouwpakket
Een Eclipse ide (integrated development environment) bestaat uit het platform, een aantal intrinsieke insteekmodulen en modulen die door de gebruiker zelf zijn toegevoegd. Voor dat laatste is geen installatie procedure nodig. De noodzakelijke bestanden kunnen eenvoudigweg in de juiste folders worden uitgepakt uit een zip bestand, waarna Eclipse zelf de plug-in registreert. Na afsluiten en opstarten kan de nieuwe component of combinatie van componenten dan gebruikt worden.
De modulariteit wordt ook ondersteund door de gebruikersinterface van Eclipse, dat georganiseerd is in ‘perspectives’ die zelf weer bestaan uit ‘views’. Zo is er een algemeen perspectief, een perspectief voor Java ontwikkeling, een voor C/C++ ontwikkeling, een voor modeleren enzovoorts. Voor de laatste twee moeten uiteraard de CDT respectievelijk EMF (Eclipse Modeling Framework) plug-ins zijn aangesloten. In dezelfde trant zijn er Java projecten, C en (niet hetzelfde) C++ projecten. Een ‘view’ in Eclipse is een ‘window’ op een bepaalde functionaliteit. Structuur van projecten, klasse afhankelijkheden en methoden en attributen in Java en C++, functies in C, worden allemaal bijgehouden in verschillende ‘views’. Ook diverse ‘editors’ zijn in de ‘perspectieven’ geïntegreerd.
Eclipse heeft ook een ‘plug-in development environment’ (pde) perspectief, waarin de uitbreidbaarheid wordt ondersteund met behulp van views en wizards (opvolgende dialoogvensters).
Er zijn grotere (features) en kleinere (fragments) entiteiten, maar ruwweg is de basiseenheid van Eclipse de plug-in. Zo’n component kan afhankelijk zijn van andere plug-ins en ook zelf weer aanknopingspunten bevatten voor plug-ins. De eigenschappen van elke plug-in staan geregistreerd in een XML-bestand, de ‘manifest file’ voor die insteekmodule.
Zo’n manifest bestaat uit vier onderdelen. In ‘dependencies’ staan alle plug-ins die deze plug-in nodig heeft, in ‘runtime’ staan de ‘libraries’ met de code, ‘extension points’ declareert nieuwe functiepunten die deze plug-in definieert ‘en extensions’ declareert ‘extension points’ van andere plug-ins die hier worden geïmplementeerd. Zo zou de desbetreffende plug-in het ‘editor extension point’ van de Platform UI plug-in kunnen uitbreiden om een nieuwe editor aan het platform toe te voegen. Manifest bestanden worden door Eclipse gelezen tijdens het opstarten – een plug-in wordt pas daadwerkelijk geladen als hij nodig is. Een plug-in ontwikkelen met de pde gaat op ongeveer dezelfde manier als andersoortige projecten. De uitbreidbaarheid is dus werkelijk volledig geïntegreerd in deze ‘ide voor van alles en niets in het bijzonder’.
Java
Het platform en de insteekmodulen zijn geïmplementeerd in standaard Java, met één uitzondering, de grafische elementen. In plaats van de standaard AWT (Abstract Windowing Toolkit) en ‘swing’ maakt Eclipse gebruik van de door IBM ontwikkelde SWT (Standard Widget Toolkit) en Jface. Deze zijn nauwer gekoppeld aan het besturingssysteem van de desbetreffende computer en zouden daardoor beter presteren. Een nadeel zou zijn dat Eclipse dus niet in elke standaard Java-omgeving kan werken, maar alleen als er ook een SWT voor bestaat.
Op dit moment zijn er in elk geval Eclipse versies voor de Windows varianten (server en pc), voor Red Hat en Suse Linux (Motif en GTK), Solaris, HP-UX en IBM AIX (alles vanaf bepaalde versies).
De standaard versie van Eclipse (op dit moment 2.1.1) die van http://www.eclipse.org kan worden opgehaald bevat ook een Java Development Toolkit (JDT) . Dit deel van het Eclipse-project is momenteel het verst doorontwikkeld en IBM/OTI heeft de JDT ook als speerpunt genomen om het Eclipse-concept uit te werken en te demonstreren. Zo gebruikt het ‘Java perspectief’ een Java editor die interactief code kan aanvullen en die gekoppeld is een aan Java run-time compiler, die de ingevoerde code tijdens het invoeren direct bewerkt. Er is ook een ‘refactoring’ faciliteit om veranderingen in de broncode te vereenvoudigen en integraal te verwerken. De JDT ondersteunt debuggen en testen (Junit Testing Framework), beheer van programma bouw (ANT) en versiebeheer (CVS). De laatste twee zijn duidelijke voorbeelden van de inkapseling van tools in Eclipse – ANT is als open source speciaal voor Java ontwikkeld door Apache en het ‘Concurrent Version System ‘ wordt al jarenlang algemeen gebruikt.
Java ontwikkeling neemt een prominente plaats in binnen Eclipse. Zo prominent dat een van de eerste boeken erover, ‘Eclipse in Action’ van David Gallardo uit 2003, de ondertitel ‘A guide for Java devolopers’ heeft meegekregen.
Met de vrijgave halverwege 2003 van de CDT voor C/C++ zijn de mogelijkheden echter aanzienlijk uitgebreid. Voorafgaand hieraan had QNX Software Systems haar Momentics ontwikkelomgeving al op Eclipse gebaseerd. QNX is leverancier van (onder meer) het real-time besturingssysteem QNX Neutrino dat vooral in ingebedde systemen wordt toegepast en op een grote variëteit van processoren kan werken. Het is een bedrijfseigen besturingssysteem dat echter een Posix (de Ieee Unix standaard) api heeft. De Momentics Development Suite is een ide voor C, C++, embedded C++ en Java en draait onder Windows, Solaris en QNX Neutrino. Omdat ingebedde systemen meer en meer in een heterogene omgeving moeten opereren wordt het steeds lastiger om met aparte tools suites te ontwikkelen, en de plug-in architectuur van Eclipse biedt daarvoor een oplossing, aldus QNX.
Open Source
Eclipse, inclusief de JDT, en alle andere modulen die op de website van het Eclipse.org consortium beschikbaar zijn, vallen onder de cpl (common public license) die vroeger ‘IBM public license ‘heette. Dit is een door het ‘open source initiative’ goedgekeurde licentie die onder meer inhoudt dat de software weggegeven of doorverkocht kan worden, dat modificaties en afgeleide werken zijn toegestaan en dat de broncode altijd beschikbaar moet zijn. Deze voorwaarden gaan automatisch over naar ontwikkelaars die veranderingen aanbrengen. Het grote verschil met de bekendere gpl (GNU public license) is dat toevoegingen, dit in tegenstelling tot veranderingen, wel onder bedrijfseigen licentie geëxploiteerd mogen worden.
Met name plug-ins van Eclipse kunnen dus onder de gebruikelijke zakelijke voorwaarden worden geleverd.
Zo zijn er thans meer dan vijftig commerciële projecten en plug-ins die op Eclipse zijn gebaseerd. Daarnaast zijn er bijna 60 open source projecten in ontwikkeling en nog eens vijftien ’team repository’ activiteiten – sommigen open source en sommigen commerciëel. Ook Intel heeft zich in de zomer van 2003 bij het Eclipse.org consortium aangesloten en zal haar compilers en Vtune Performance Analyzers inbrengen.
Door Eclipse vrij te geven en tegelijkertijd te blijven ondersteunen heeft IBM dus duidelijk een markt gecreëerd, al moet er wel bijgezegd worden dat veel van die projecten nog geen stabiele producten hebben opgeleverd. Ook de projecten die direct onder verantwoordelijkheid van het Eclipse.org consortium zelf staan, zijn vaak nog niet toe aan hun 1.0 versie. Maar dit is een momentopname nog geen drie jaar na de oprichting en de basis is gelegd.
Eclipse is een echt open source project en iedereen die een bijdrage kan en wil leveren mag zich aansluiten. U wordt dan een ‘contributor’ onder de CPL-licentie.< BR>