05.11.2016 Views

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!