API's
Een programmeur die een programma schrijft voor een specifieke taak, moet niet van nul beginnen. Hij beschikt reeds over een aantal in het systeem aanwezige functies of mogelijkheden. Vergelijk het naar analogie even met iemand die een huis bouwt: je moet niet zelf je bakstenen bakken, planken zagen, kalk blussen of je eigen truweel smeden. Je kan heel eenvoudig bestaande elementen gebruiken om het gewenste eindresultaat te bereiken. Als een programmeur ervoor wil zorgen dat de eindgebruiker een bestand kan afdrukken, openen of bewaren, dan moet hij hiervoor niet alle code zelf schrijven.
Hij kan daarvoor gebruik maken van functies die al in het OS zitten. Het OS vormt een laagje tussen de software van de programmeur en de hardware. Die "laag" noemen programmeurs een API of Application Programming Interface.
Een voorbeeldje: wanneer je onder Mac OS X een bestand wil openen, krijg je in zo wat elk programma een gelijkaardig dialoogvenster (=window) te zien, met dezelfde functionaliteit. Die mogelijkheden om bestanden te openen, te bewaren, af te drukken... worden geleverd door de API's van het OS.
Omdat niet alleen de processor, maar ook het besturingssysteem en de corresponderende api’s verschillen, is het niet zonder meer mogelijk om een Windowsprogramma op pakweg een Mac OS X of Linuxmachine te installeren en omgekeerd.