Wanneer je net begint met programmeren, zijn programmeerparadigma’s niet van veel belang. Maar als je de trap op gaat en complexe programma’s en software gaat maken, is het van vitaal belang om te begrijpen welk programmeerparadigma het meest geschikt is voor jouw project. Voor we beginnen, is het belangrijk te weten wat een paradigma precies is. Volgens veel geciteerde definities is een paradigma “een verzameling aannames, concepten, waarden en praktijken die een manier vormt om de werkelijkheid te bekijken voor de gemeenschap die ze deelt, vooral in een intellectuele discipline”.
Deze definitie is precies goed, want wat het paradigma onderscheidt, is de verschillende manier om de werkelijkheid te bekijken voor de gemeenschap. Paradigma’s zijn belangrijk omdat ze vaak samen reizen met een specifieke cultuur van het schrijven van programma’s en het denken erover. In dit artikel bespreken we de belangrijkste programmeerparadigma’s, met speciale aandacht voor het Procedural Programming paradigma.
Wat is Procedural Programming?
Procedurele Programmering is wellicht het eerste programmeerparadigma dat een nieuwe ontwikkelaar zal leren. In wezen is het procedurele code die een apparaat rechtstreeks instrueert hoe een taak in logische stappen moet worden uitgevoerd. Dit paradigma gebruikt een lineaire top-down benadering en behandelt gegevens en procedures als twee verschillende entiteiten. Gebaseerd op het concept van een procedure-aanroep, verdeelt Procedurele Programmering het programma in procedures, die ook bekend zijn als routines of functies, die eenvoudigweg een reeks uit te voeren stappen bevatten.
Vereenvoudig gezegd houdt Procedurele Programmering in dat een lijst instructies wordt opgeschreven om de computer te vertellen wat hij stap-voor-stap moet doen om de taak te voltooien.
Kernmerken van Procedurele Programmering
De belangrijkste kenmerken van procedurele programmering worden hieronder gegeven:
- Voorgedefinieerde functies: Een voorgedefinieerde functie is typisch een instructie die wordt geïdentificeerd door een naam. Gewoonlijk zijn de voorgedefinieerde functies ingebouwd in programmeertalen van een hoger niveau, maar zij worden afgeleid uit de bibliotheek of het register, in plaats van uit het programma. Een voorbeeld van een vooraf gedefinieerde functie is ‘charAt()’, waarmee een tekenpositie in een tekenreeks wordt gezocht.
- Lokale variabele: Een lokale variabele is een variabele die wordt gedeclareerd in de hoofdstructuur van een methode en die beperkt is tot de lokale reikwijdte die eraan is gegeven. De lokale variabele kan alleen worden gebruikt in de methode waarin ze is gedefinieerd, en als ze buiten de gedefinieerde methode zou worden gebruikt, zal de code niet meer werken.
- Globale variabele: Een globale variabele is een variabele die wordt gedeclareerd buiten elke andere functie die in de code is gedefinieerd. Hierdoor kunnen globale variabelen in alle functies worden gebruikt, in tegenstelling tot een lokale variabele.
- Modulariteit: Van modulariteit is sprake wanneer twee ongelijksoortige systemen twee verschillende taken hebben, maar worden gegroepeerd om eerst een grotere taak af te ronden. Elke groep systemen krijgt dan zijn eigen taken, de een na de ander, totdat alle taken zijn voltooid.
- Parameter Passing: Parameter Passing is een mechanisme dat wordt gebruikt om parameters door te geven aan functies, subroutines of procedures. Parameter Passing kan worden gedaan door middel van ‘pass by value’, ‘pass by reference’, ‘pass by result’, ‘pass by value-result’ en ‘pass by the name’.
Voordelen en nadelen van Procedurele Programmering
Procedurele Programmering heeft zijn eigen voor- en nadelen, waarvan er hieronder enkele worden genoemd.
Voordelen
- Procedurele Programmering is uitstekend geschikt voor programmeren voor algemene doeleinden
- De gecodeerde eenvoud samen met het gemak van implementatie van compilers en interpreters
- Er is een grote verscheidenheid aan boeken en online cursusmateriaal beschikbaar over geteste algoritmen, waardoor het gemakkelijker is om gaandeweg te leren
- De broncode is overdraagbaar, dus kan ook op een andere CPU worden gericht
- De code kan in verschillende delen van het programma worden hergebruikt, zonder dat deze hoeft te worden gekopieerd
- Door de Procedurele Programmeertechniek, het geheugenvereiste ook af
- De programmastroom kan gemakkelijk worden gevolgd
Nadelen
- De programmacode is moeilijker te schrijven wanneer Procedurele Programmering wordt gebruikt
- De Procedurele code is vaak niet herbruikbaar, wat de noodzaak kan opleveren om de code opnieuw te maken als deze in een andere toepassing moet worden gebruikt
- Moeilijk te relateren aan objecten in de echte wereld
- Het belang wordt gegeven aan de bewerking in plaats van aan de gegevens, wat problemen kan opleveren in sommige gegevensgevoelige gevallen
- De gegevens worden blootgesteld aan het hele programma, waardoor het niet zozeer beveiligingsvriendelijk
Er zijn verschillende soorten programmeerparadigma’s, zoals we al eerder zeiden, die niets anders zijn dan een stijl van programmeren. Het is belangrijk te begrijpen dat het paradigma niet bij een specifieke taal hoort, maar bij de manier waarop het programma is geschreven. Hieronder volgt een vergelijking tussen Procedureel Programmeren en Object-georiënteerd Programmeren.
Wat is object-georiënteerd programmeren (OOP)
OOP is een benadering van programmeren die het leven zoals wij dat kennen erkent als een verzameling objecten, die met elkaar samenwerken om een bepaald probleem op te lossen. Het belangrijkste dat men over OOP moet weten is inkapseling, dat is het idee dat elk object dat het programma bevat zelfvoorzienend is, wat betekent dat alle componenten waaruit het object is opgebouwd zich in het object zelf bevinden. Aangezien elke module binnen dit paradigma zichzelf in stand houdt, kunnen objecten uit een programma worden gehaald en worden gebruikt om een ander probleem op te lossen met weinig of geen aanpassingen.
Voordelen
- Dankzij modulariteit en inkapseling biedt OOP beheersgemak
- OOP bootst de echte wereld na, waardoor het gemakkelijker te begrijpen is
- Omdat objecten in zichzelf geheel zijn, zijn ze herbruikbaar in andere programma’s
Nadelen
- Object-georiënteerde programma’s zijn trager en gebruiken veel geheugen
- Overgeneralisatie
- Programma’s die volgens dit paradigma zijn gebouwd, kunnen er langer over doen om te worden gemaakt
Procedurele Programmering vs Object-georiënteerd Programmeren: Head to Head Comparison
In tegenstelling tot OOP wordt bij procedureel programmeren de nadruk gelegd op de stappen die moeten worden uitgevoerd om een taak te voltooien, en niet zozeer op de interactie tussen de objecten. De taken worden opgesplitst in subroutines, variabelen en gegevensstructuren. Deze procedures kunnen op elk moment in de programma-uitvoering worden aangeroepen.
Procedurele Programmering | Object-Oriented Programming |
Gebruikt onveranderlijke gegevens | Gebruikt mutabele gegevens |
Volgt het declaratieve programmeermodel | Volgt het imperatieve programmeermodel |
Uitbreiding van ondersteuning naar parallel programmeren | Niet geschikt voor parallel programmeren |
De uitvoeringsvolgorde van statements is niet de primaire focus | De uitvoeringsvolgorde van statements is erg belangrijk |
Flow control wordt uitgevoerd door middel van functie-aanroepen | Flow control wordt uitgevoerd door middel van voorwaardelijke verklaringen en lussen |
Gebruikt recursieconcept om verzamelingsgegevens te itereren | Gebruikt lusconcept om verzamelingsgegevens te itereren |
Geen dergelijke neven-effecten van zijn functies | De methode kan bepaalde neveneffecten hebben |
De focus bij Procedureel Programmeren ligt op ‘Wat je doet’ | De focus bij Objectgeoriënteerd Programmeren ligt op ‘Hoe je het doet’ |
Een ander veelgebruikt programmeerparadigma is Functioneel Programmeren. Functioneel programmeren onderscheidt zich van Procedureel programmeren en Objectgeoriënteerd programmeren doordat het gebruik maakt van wiskundige functies. Hierdoor worden de bewerkingen alleen uitgevoerd op basis van de ingevoerde inputs, en wordt niet vertrouwd op tijdelijke of verborgen variabelen.
Voordelen
- Functioneel programmeren biedt een beschermde omgeving
- Terwijl veel andere talen een aanzienlijke hoeveelheid informatie vereisen om bewerkingen goed uit te voeren, elimineert functieprogrammering de noodzaak van een grote hoeveelheid code die nodig is om toestanden te definiëren
- Omdat dit paradigma alleen afhankelijk is van de invoerargumenten, zijn er geen neveneffecten
Nadelen
- Het gebruik van Functioneel programmeren alleen in commerciële software-ontwikkeling wordt niet aanbevolen en gedaan
- Het vereist een grote hoeveelheid geheugen en tijd
- Het kan minder efficiënt blijken te zijn dan andere paradigma’s
Conclusie
Zoals we in dit hele artikel hebben gesteld, Procedurele Programmering is meer wat je doet dan hoe je het doet. Het is de standaardaanpak die in veel computertalen wordt gebruikt, zoals C, Pascal en BASIC. Hoewel er geen perfect programmeerparadigma bestaat, is het belangrijk te begrijpen dat het juiste paradigma altijd zal afhangen van het soort taal dat je gebruikt en het programma dat je wilt maken. Voor maximale resultaten en een sterk portfolio is het raadzaam om alle drie de grote programmeerparadigma’s te beheersen. De beste manier om beter te worden in programmeerparadigma’s is door het te proberen, en Hackr kan je daarbij helpen.
Mensen lezen ook:
- Wat is programmeren?
- Wat is programmeertalen?
- Beste boeken over programmeren
- Beste interviewvragen over programmeren
- Programmeertalen voor het krijgen van een baan
- Wat is procedurele programmering?
- Hoe leer je programmeren?
- Gratis Coding Bootcamp
- Programmeer termen en definities
- 10 Beste Web Development IDE