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.
114 HOOFDSTUK 57. PLATFORM (INFORMATICA)<br />
programmeur zelf geschreven moest worden. De introductie van de muis, bijvoorbeeld, maakte het makkelijker om<br />
de <strong>computer</strong> te bedienen. En al snel werd de muis geïntegreerd in het besturingssysteem, in die zin dat de meeste<br />
besturingssystemen het mogelijk begonnen te maken om de bewegingen van een muis te volgen door middel van in het<br />
besturingssysteem ingebouwde ondersteuning. Dat wilde echter niet zeggen dat ieder programma dan maar meteen<br />
met de muis bediend kon worden -- hoewel het voor programmeurs mogelijk werd om te letten op het bedienen van<br />
de muis door de gebruiker, moest ieder programma nog altijd omgebouwd worden om op de muis te reageren. Dat<br />
wil zeggen, ieder programma kon te allen tijde opvragen of er veranderingen waren opgetreden in de positie van de<br />
muis door te luisteren naar elektronische signalen die vanuit de muis bij de <strong>computer</strong> binnen kwamen -- het vertalen<br />
van die signalen in een “beweging” en het weergeven daarvan aan de gebruiker (bijvoorbeeld door middel van een<br />
cursor) moest de gebruiker zelf doen. En dit moest per programma gebeuren en voor ieder programma opnieuw.<br />
Hetzelfde gebeurde na de introductie in de personal <strong>computer</strong> van grafische hardware die het mogelijk maakte om<br />
mooie plaatjes op het scherm te toveren. Hiermee werd het mogelijk om programma’s te voorzien van grafische<br />
interfaces. Dat wil zeggen, programma’s konden de hardware instrueren om gekleurde lijnen op het scherm te zetten<br />
om het scherm, lijn voor lijn, te vullen met kleuren totdat het geheel een grafische interface voor de gebruiker werd.<br />
Ook deze moeite moest per programma opnieuw uitgevoerd worden.<br />
Kortom, hoewel de programmeertalen steeds abstracter werden, bleef het eeuwige en steeds erger wordende probleem<br />
van de originele manier van software schrijven dat de nieuwe mogelijkheden veel sneller toenamen dan behapstukt<br />
kon worden door enkele programmeurs die van basis-programmeertalen gebruik maakten.<br />
Sinds halverwege de jaren 70 werd op dit groeiende probleem gereageerd vanuit de ICT-gemeenschap door systemen<br />
te introduceren waarin gaandeweg steeds meer vaak voorkomende taken in de vorm van herbruikbare code beschikbaar<br />
werden. Dit begon met de introductie van software-bibliotheken: verzamelingen van vaak voorkomende stukken<br />
code die hergebruikt konden worden -- bijvoorbeeld door knip- en plakwerk, of later door bij het compileren het<br />
hergebruiken automatisch te laten verlopen, simpelweg via een commando om een bepaald stuk voorgedefinieerde<br />
code te gebruiken. Uiteraard ondergingen ook deze bibliotheken een steeds verdergaande ontwikkeling en abstractie.<br />
Was een grafische bibliotheek eerst iets waarin bijvoorbeeld code te vinden was om een ingekleurde driehoek op het<br />
scherm te tekenen (in plaats van deze zelf helemaal op te hoeven bouwen), modernere grafische bibliotheken bestaan<br />
uit complexe stukken code die hele knoppen, dialogen en vensters op het scherm kunnen produceren met een hele<br />
rits opties erbij ter configuratie van het geproduceerde object.<br />
Uiteraard ontstonden er vele en verschillende van dergelijke hulpmiddelen. Soms onderling concurrerend op het gebied<br />
van een bepaald probleem (er zijn vele grafische bibliotheken beschikbaar), soms sterk specialiserend op een<br />
bepaald doel (niet zomaar een grafische bibliotheek, maar een grafische bibliotheek voor gebruik op het Linux besturingssysteem).<br />
De grote diversiteit en doorgaande ontwikkeling in hulpsystemen zorgde er al snel voor dat niemand in staat was om<br />
een overzicht over het geheel te houden. Sinds het midden van de jaren 80 is het dan ook gebruikelijk dat softwareontwikkelaars<br />
zich specialiseren in het gebruik van een bepaalde verzameling van hulpmiddelen -- een programmeur<br />
schrijft bijvoorbeeld niet zomaar eens software, hij is bijvoorbeeld gespecialiseerd in het schrijven van software die<br />
draait op het Windows besturingssysteem -- en hij is dan ook zeer bekend met het gebruik van de grafische bibliotheek,<br />
de hogere niveau muisroutines, de netwerkondersteuning enzovoorts die geboden worden door Windows, maar niet<br />
noodzakelijk bekend met dezelfde faciliteiten als ze op een andere manier aangeboden worden.<br />
Uit de hierboven beschreven trend zijn zogeheten ontwikkelplatforms ontstaan: ver doorontwikkelde verzamelingen<br />
van hulpmiddelen die de ontwikkelaar van software in verregaande mate ondersteunen bij het schrijven van software<br />
door het aanbieden van allerhande functionaliteit in de vorm van kant en klare, herbruikbare blokken.<br />
57.4 Trends in platforms<br />
Zoals het idee van een ontwikkelplatform zelf uit een trend ontstaan is, zo zijn platforms zelf ook altijd aan trends<br />
onderhevig geweest. De voornaamste trends die de ontwikkeling van platforms vorm gegeven hebben, zijn abstractie<br />
en veelomvattendheid.<br />
57.4.1 Abstractie<br />
Een van de duidelijkste trends in de ontwikkeling van het platformprincipe is de vergroting van de afstand van de<br />
programmeur tot de hardware. Was het ooit zo dat een programmeur voor alles wat hij deed direct de hardware moest