Sun en IBM schonken ontwikkelaars beiden een open source-gereedschap (IDE) voor Java. IBM’s variant, Eclipse, wordt geschikt gemaakt voor de programmeertalen C en C++. Het begint een geduchte concurrent te worden voor Java-ontwikkelomgeving Netbeans, waarop Sun de commerciële producten op baseert. Chris Laffra, een van de Nederlandse Eclipse-ontwikkelaars, bezocht afgelopen week zijn vaderland.
|
De meeste softwareleveranciers zien in dat ze hun applicaties geschikt moeten maken voor zowel Suns Java als Microsofts variant .Net. Klanten willen evenmin gedwongen worden te kiezen tussen verschillende Java-IDE’s. Om die reden kondigde Oracle eind vorig jaar aan dat voor 9i behalve de eigen ontwikkeltools en Netbeans ook Eclipse te gebruiken is.
Moeilijke problemen oplossen
Een van de top-Java-specialisten van IBM, de Nederlander Chris Laffra, is vanaf het begin betrokken geweest bij de ontwikkeling van Eclipse. De afgelopen jaren was hij directeur van de Amsterdamse vestiging van IBM-lab Object Technology International (OTI). De zes OTI-labs werkten aan IBM-tools als Visual Age for Java en Smalltalk en ontwikkelgereedschappen voor Websphere, zoals Websphere Studio Application Developer (Wsad, een van de bekendste gereedschappen voor IBM’s applicatieserver boven op Eclipse) en Device Developer (Wsdd).
Onder Laffra groeide het Amsterdamse OTI-lab van één naar negen medewerkers. Vanuit Amsterdam namen Laffra en zijn collega’s eind jaren negentig ook deel aan het onderzoek naar Eclipse, een ontwikkelomgeving die, in elk geval voor de ontwikkelaars van IBM, alle andere gereedschappen moest gaan vervangen. Dat laatste is gelukt, vertelt Laffra, want vanaf het uitkomen van de eerste versie bijna twee jaar geleden, zijn al IBM’s softwareproducten gebaseerd op Eclipse. "Het hoofddoel was kostenreductie. Er zijn binnen IBM tientallen groepen ontwikkelaars. Die gebruikten eerst allerlei verschillende ontwikkelgereedschappen. Eclipse maakt het makkelijker om kennis te delen en code te hergebruiken."
Promotieonderzoek
Als een in een reeks consolidaties werd het Amsterdamse deel van OTI eind vorig jaar afgebouwd. De onderzoekers keerden terug naar hun oorspronkelijke plek binnen IBM, vertrokken naar Compuware of begonnen aan promotieonderzoek.
Laffra vertrok na drieëneenhalf jaar Nederland voor de tweede maal naar Noord-Amerika, waar hij na zijn promotie in 1992 al ruim zeven jaar had doorgebracht. Hij woont sinds begin dit jaar in Ottawa, Canada, waar hij verder werkt aan de ontwikkeling van onder meer Eclipse. Hier bevindt zich ook het grootste deel van de Eclipse- en Wsda-ontwikkelaars.
Laffra is in Ottawa begonnen aan tests waarmee hij uiteindelijk het geheugengebruik van Eclipse wil verbeteren. De IDE is samengesteld uit blokjes software (plugin) die naar behoefte aan een kleine softwarekern worden toegevoegd. Alle blokjes samen vormen een IDE. Om bijvoorbeeld Java te programmeren in Eclipse zijn een aantal plugins nodig. Die vertellen hoe de Eclipse Java-code als tekst te verwerken is en hoe de programmaonderdelen het duidelijkst te rangschikken zijn, en helpen met automatische foutopsporing, zoekmogelijkheden, formatteren, compileren en im- en export mogelijkheden. De Java-plugin breidt Eclipse ook uit met refactoring, het herschikken van grote delen code zonder dat daardoor de functie ervan verloren raakt.
Eclipse kan door het opeenstapelen van functies aardig groot worden. Eclipse 2.1 bestaat uit iets van zestig plugins. Wsda voegt daar honderden plugins aan toe die ontwikkeling ondersteunen van bijvoorbeeld Enterprise Java Beans, webservices en websites. "Het blijkt lastig om te zien of een bepaald onderdeel van de verzameling teveel geheugen opslokt. Testprogramma’s meten namelijk de IDE als één groot programma, niet de onderdelen apart. Mijn ‘profiler’ laat het geheugengebruik per plugin zien. Dat heeft in proeven al geleid tot verbetering van het geheugengebruik tot 35 procent. Het moet echter nog beter kunnen." Zijn optimalisatiegereedschap is zo nieuw dat het nog niet in de eerstkomende versie van Wsda is opgenomen.
In Eclipse is volgens Laffra goed de invloed te herkennen van Erich Gamma, bekend als een van de vier auteurs van Design Patterns: Elements of Reusable Object-Oriented Software, dat voor objectgeörienteerd programmeren de ontwerpfundamenten beschrijft. "Iedereen die met Eclipse begint, herkent die ontwerppatronen."
Familiefeestjes
IBM stelde de IDE begin vorig jaar met een open source-licentie beschikbaar. "Het is aan mijn familie soms lastig uit te leggen dat ik werk aan software die IBM vervolgens gratis weggeeft. Waarom IBM dat doet? Ik denk omdat er door de aandacht die dat oplevert meer aan verdiend wordt dan er aan kosten tegenover staat."
Volgens Laffra dragen inmiddels zo’n 1200 ontwikkelaars uit 63 landen bij aan de code. De Canadese programmeurs van de ingebedde Unix-variant QNX zorgden bijvoorbeeld voor de verbetering van de manier waarop Eclipse C- en C++-code aankon. "Die C/C++-tools moeten eind dit jaar net zo goed zijn als het Java-gedeelte."
Grote wijzigingen in de Eclipse-code worden tegenwoordig vrijwel alleen toegevoegd door IBM-ontwikkelaars. Slechts een van de programmeurs die wijzigingen mag aanbrengen (een committer) in de code voor de nieuwste versie komt van buiten. "Dit levert ons vaak de kritiek op dat het helemaal geen open source-project is. We doen ons best meer externe committers aan te trekken."
Kritiek krijgt Eclipse ook voor het gebruik van de Standard Widget Toolkit (SWT), wat betekent dat delen van het onderliggende besturingssysteem gebruikt worden voor het opbouwen van de gebruikersinterface. Op het Windows-platform maakt Eclipse daardoor bijvoorbeeld ook gebruik van de internetfunctie Activex.
Sun stelt dat SWT, dat draait op minder platformen dan de eigen widget-gereedschappen (Swing), het write-once-run-everywhere principe tenietdoet. "Technologisch zijn de twee zeer vergelijkbaar. Tegelijkertijd is het maken van een keuze bedrijfspolitiek."
SWT maakt Eclipse weliswaar sneller, maar het ziet er daardoor ook op verschillende platformen iets anders uit. Concurrent Netbeans kent deze platformverschillen niet. Laffra: "Ik ben een minimalist: eenmaal met SWT werken en je wilt niet anders meer. Het werkt gewoon beter." < BR>