computer-wetenschap-bewerkt
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
57.5. PLATFORM EN GEMEENSCHAP 115<br />
aansturen door middel van grote aantallen zeer simpele instructies op hardware niveau (of dicht tegen dat niveau aan),<br />
tegenwoordig behoort het tot de voornaamste functie van ieder platform om ervoor te zorgen dat een programmeur in<br />
één enkele instructie een hele, complexe actie uit kan voeren (het tekenen van een venster in een grafische interface<br />
in vol ornaat, het openen en gebruiken van een netwerkconnectie, etc.). Het idee hierachter is dat een programmeur<br />
zich zo veel mogelijk kan concentreren op de specifieke taak die hij uit wil voeren in plaats van zeer veel tijd te<br />
verdoen aan het uitcoderen van zeer vaak voorkomende en dus saaie stukken code. Dit heeft bovendien (hopelijk) het<br />
voordeel dat de ontwikkeltijd van stukken software omlaag gaat en daarmee ook de kosten. En bovendien voorkomt<br />
het hergebruik van eenmaal ontwikkelde en betrouwbaar bevonden stukken code het ontstaan van eindeloze fouten<br />
in vaak voorkomende stukken code die anders steeds opnieuw geschreven zouden moeten worden.<br />
57.4.2 Veelomvattendheid<br />
Een andere trend binnen de platformontwikkeling is zonder enige twijfel ook die om steeds meer functionaliteit in<br />
één platform aan te bieden, zodat een programmeur meer en meer kan zonder hulpmiddelen van “buitenaf”. Was<br />
een platform vroeger bijvoorbeeld zoiets als de C-taal in combinatie met de wxWindows grafische bibliotheek, tegenwoordig<br />
omvat een beetje platform hulpmiddelen voor het opzetten van grafische interfaces, het regelen van de<br />
bediening ervan (middels toetsenbord, muis, joystick, touchscreen, enzovoorts en uiteraard netjes geabstraheerd tot<br />
een “bedieningshandeling” zodat de programmeur zich niet hoeft te bekommeren om welk apparaat precies gebruikt<br />
wordt om de interface te bedienen), het opzetten van netwerk- of Internet-verbindingen, het omgaan met bestanden in<br />
allerlei formaten (met name XML), wiskunde-functies, het omgaan met verzamelingen en andere abstracte datatypes,<br />
en het omgaan met multimedia-onderdelen.<br />
Als onderdeel van deze trend kan het ontstaan gezien worden van platforms die een zeer gespecialiseerde, sterk geïntegreerde,<br />
verticale kolom vormen vanuit de programmeur naar ondergelegen niveaus, soms tot op hardware niveau.<br />
Bekende voorbeelden hiervan zijn het Wintel-platform (waarin de programmeur zich specialiseert in het programmeren<br />
en gebruik van Windows op de Intel-familie van processoren voor desktop applicaties), het Gnu/Linux/Qt/KDE<br />
platform (een directe concurrent van Wintel op basis van Linux, Gnu software, de QT bibliotheek en de KDE omgeving)<br />
en LAMP (Linux, Apache, MySql, PHP -- een platform dat zich richt op het ontwikkelen van web-applicaties).<br />
Een bijzondere positie hierin wordt ingenomen door het Java platform (dat zich specifiek richt op de JVM machine<br />
als onderliggende <strong>computer</strong> -- maar waarin de JVM een abstracte <strong>computer</strong> is die in software wordt uitgevoerd,<br />
waarmee het platform uitwisselbaar wordt over alle fysieke hardware heen) en de J2EE uitbreiding hierop (J2EE is<br />
dan weer een platform gericht op de ontwikkeling van zakelijke applicaties in een netwerkomgeving). Het openen<br />
van de lagergelegen platformlagen voor algemene toegang om zo een “platform-platform” te bouwen (zoals Java met<br />
de JVM doet) zou ook best een nieuwe trend kunnen worden. Het concurrerende .Net-platform van Microsoft is, met<br />
een andere insteek, op hetzelfde idee gebaseerd.<br />
57.5 Platform en gemeenschap<br />
Een laatste “onderdeel” waarover een platform tegenwoordig moet beschikken om zich met recht een platform te<br />
kunnen noemen, is een “community” -- een gemeenschap van gebruikers die op zijn minst gespecialiseerd zijn in<br />
het gebruik van dat platform en dat platform voor vrijwel al hun dagelijkse ontwikkelwerk gebruiken. Het ideaal<br />
is echter de situatie waarin de gebruikers niet alleen gespecialiseerd zijn, maar vooral ook actief betrokken zijn<br />
bij hun platform. In deze situatie ontstaat namelijk een platform met een zeer dynamische aard, waarin de verdere<br />
ontwikkeling van het platform gevoed wordt door de wensen, ideeën en uitvindingen van de gebruikers (de leden van<br />
de gemeenschap) en niet alleen door de trends van buiten. Een platform met een levendige gebruikersgemeenschap<br />
heeft veel meer mogelijkheden om een trendsetter van technologische ontwikkelingen te worden in plaats van alleen<br />
maar een volger. Bovendien helpt een actieve gemeenschap een platform makkelijker ingang vinden in algemene<br />
software-ontwikkeling, zowel door de beschikbaarheid van specialisten als door de aanwezigheid van mensen die het<br />
platform aan kunnen dragen als oplossing voor een bestaand probleem.<br />
Ten slotte zorgt een gemeenschap ook voor groei van een platform in de vorm van aanwas van nieuwe gebruikers -- een<br />
actieve en groeiende gemeenschap geeft aanleiding tot het opzetten van diverse en makkelijk toegankelijke opleidingen<br />
voor gebruikers die met het platform willen beginnen en is ook een bron van ondersteuning voor nieuwe gebruikers,<br />
zowel via traditionele congressen en gebruikersgroepen als via moderne vraagbaken als het Internet. Hiermee tekent<br />
zich ook een derde trend in platformontwikkeling af: de trend dat het platform meer en meer ook een sociaal karakter<br />
krijgt, naast een technisch en zakelijk karakter.