Abstraktion är ett av de mest kritiska koncepten inom programmering och är en hörnsten i mjukvarudesign. I dess enklaste form innebär abstraktion att dölja det exakta sättet något fungerar och exponera endast det relevanta och förståbara för användaren. Till exempel, när du använder en kaffemaskin behöver du inte förstå alla mekaniska och elektroniska processer som händer inuti för att brygga kaffe – du bara trycker på en knapp och maskinen levererar kaffe. Kaffemaskinen har ”abstraherat” det komplicerade tekniska systemet bakom en enkel gränssnittsknapp.
I programmering innebär abstraktion att bryta ner komplexa system till hanterbara, förståbara komponenter. Utvecklare grupperar logiskt relaterad kod i funktioner, metoder, klasser och moduler för att abstrahera detaljerna. Till exempel, i objektorienterad programmering, är en klass en abstraktion av en real världenhet som en bil eller en anställd. Klassen definierar alla ’attribut’ (egenskaper som t.ex. färg, märke etc för en Bil klass) och ’metoder’ (beteenden som t.ex. accelerera, bromsa etc för en Bil klass) som bil eller anställd har, men detaljerna om hur dessa attribut och metoder implementeras döljs.
Abstraktion är avgörande då det hjälper till att minska komplexitet, förbättra kodläsbarhet och underhåll, samt underlätta återanvändning av kod. Denna programmeringsprincip hjälper även till att isolera inverkan av förändringar, så att om detaljerna inom en abstraktion måste ändras, så stör det inte resten av programmet. Detta bidrar till att göra kod mer robust, lättare att skala och felfri.