Wat is een standaardbibliotheek?
Bij computerprogrammering is een standaardbibliotheek een reeks functies, constanten en andere taaldefinities die zijn opgenomen als onderdeel van het kerncompilerpakket. De standaardbibliotheek biedt een programmeur de mogelijkheid om eenvoudige programma's te maken en basisgegevens te bewerken. Het biedt ook de mogelijkheid om op de een of andere manier te communiceren met het hostbesturingssysteem, zodat informatieverwerking geen triviale taak wordt. Alle implementaties van een bepaalde taalcompiler omvatten de standaardbibliotheek en deze is in het algemeen neerwaarts compatibel met eerdere versies van de bibliotheek, zodat de basisfunctionaliteit van de taal behouden blijft naarmate deze zich in de loop van de tijd ontwikkelt.
Een bibliotheek in brede zin is een verzameling procedures, functies, klassen of andere elementen van een computerprogramma die beschikbaar zijn voor een programmeur. Deze elementen zijn meestal gegroepeerd in categorieën die hun functionaliteit definiëren, zoals invoer, uitvoer en procesafhandeling. Sommige bibliotheken vertrouwen erop dat andere bibliotheken goed werken, een concept dat afhankelijkheid wordt genoemd. Belangrijke variabelen, zoals de maximale waarde van een geheel gegevenstype of de numerieke definitie van een nul-teken, kunnen worden opgeslagen in een bibliotheek. Het zijn meestal ook al gecompileerde stukjes computercode, waardoor schadelijke wijzigingen worden voorkomen en de eigen programmeercode wordt beschermd.
Een standaardbibliotheek streeft ernaar alle basis- en noodzakelijke functies op te nemen die een breed scala aan programma's op een of andere manier nodig heeft. Dit moet worden afgewogen tegen het opnemen van te veel bibliotheken. Een grote standaardbibliotheek betekent dat in sommige talen de distributiegrootte van een voltooid programma ongelooflijk groot en opgeblazen kan zijn met bibliotheken die nooit worden gebruikt. Het opnemen van te veel bestanden in een standaardbibliotheek kan ook leiden tot problemen met de ontwikkeling van de taal, omdat functies die niet vaak worden gebruikt, moeten worden bijgewerkt met elke taal- of compilatiewijziging, waardoor de hoeveelheid werk die nodig is voor een nieuwe release toeneemt.
Omgekeerd kan een standaardbibliotheek met te weinig functionaliteit ertoe leiden dat elke programmeur externe bibliotheken op maat moet installeren en deze specifiek in programmaversies moet opnemen. Dit kan leiden tot een type secundair, gemeenschapsgestuurd onderhoud van een standaard die niet wordt beheerd door het primaire taalontwikkelingsteam. Sommige talen passen zich aan dergelijke situaties aan door veelgebruikte bibliotheken in de standaardset op te nemen wanneer de community de behoefte duidelijk heeft gemaakt.
Verschillende talen hebben verschillende ontwerpfilosofieën over wat er in de standaardbibliotheek zou moeten zijn. Bovendien kunnen de mechanismen achter de manier waarop de compiler een uitvoerbaar programma maakt, ook de parameters voor de bibliotheek bepalen. Geïnterpreteerde talen hebben meestal een grotere verzameling bibliotheken in hun standaardset, terwijl talen op laag niveau vaak maar weinig hebben.