Terug naar begrippenlijst

Functional language

Waar veel programmeertalen werken met een reeks instructies (“doe dit, daarna dat”), pakt een functional language het anders aan. Je schrijft geen stappenplan, maar bouwt losse functies die je combineert. Net als in de wiskunde voer je iets in, krijg je iets terug en that’s it. Die aanpak maakt je code overzichtelijk, voorspelbaar en makkelijker te testen zonder verborgen bijwerkingen of onverwachte gevolgen. Elke functie staat op zichzelf, en dat maakt het krachtig.

Geschreven door Thijn de Haas

Zwaaiende emoji

Thijn Senior developer

Meer over Thijn

Inhoudsopgave

Functies zonder verrassingen

Een functionele functie doet één ding: data omzetten in andere data. Geef je een getal? Dan krijg je een bewerkt getal terug. Stuur je een lijst in? Dan spuwt de functie een aangepaste lijst uit. Wat er níét gebeurt is het aanpassen van iets buiten de functie, zoals een database, een bestand of het geheugen. Dat is handig, omdat je zo precies weet wat je kunt verwachten. En zo ontstaan er minder bugs, meer controle en kan je makkelijker testen. Zeker bij complexe systemen of grote hoeveelheden data is dat een enorme winst.

Helder denken, helder bouwen

Functioneel programmeren dwingt je om helder te denken. Je mag niet “stiekem” ergens anders in het systeem rommelen. Alles wat je doet, moet expliciet zijn. Dat voelt misschien even onwennig als je gewend bent om flexibel te knutselen, maar het levert wél betrouwbare software op.

Het dwingt je om na te denken over structuur, herbruikbaarheid en logica. En als je eenmaal in die denkwijze zit, wil je vaak niet meer terug.

Functioneel light of hardcore Haskell

Typische functional languages zijn bijvoorbeeld Haskell, Erlang en F#. Maar ook talen zoals JavaScript, Python of Scala bevatten functionele elementen. Je hoeft dus niet volledig functioneel te programmeren om de voordelen te ervaren, omdat veel moderne talen je prima laten combineren.

Veelgestelde vragen

Imperatief programmeren draait om instructies (“doe dit, dan dat”), terwijl functioneel programmeren werkt met pure functies zonder bijwerkingen.

Voor systemen waar betrouwbaarheid, schaalbaarheid en testbaarheid belangrijk zijn, bijvoorbeeld bij financiële systemen, big data of back-end infrastructuur.

De denkwijze is anders, dus je moet even omschakelen. Maar het levert vaak schonere, duidelijkere code op.

Nee hoor. Veel talen zoals JavaScript, Python of Ruby ondersteunen functioneel programmeren deels. Maar als je all-in wilt, kun je kiezen voor Haskell of F#.

Thijn de Haas Senior developer

Meer over Thijn

Mijn programmeeravontuur begon rond mijn twaalfde, toen ik ontdekte dat je met code vrijwel alles kunt maken. Ik begon met het bouwen van kleine projecten en startte al snel mijn eigen hostingdienst, wat me veel leerde over maatwerkcode, serverbeheer en het koppelen aan websites. Deze kennis pas ik nu dagelijks toe in mijn werk aan websites en applicaties.

Als student Applicatieontwikkelaar liep ik drie stages bij Wux, waarbij ik tijdens de eerste stage mijn eerste bedrijf startte, deels op advies van Bo. Deze ervaringen vormden het fundament van mijn rol als lead developer en mede-eigenaar van Wux. Met een constante interesse in nieuwe technieken en het meedenken naar de beste oplossingen, zet ik mijn expertise dagelijks in om complexe vraagstukken op te lossen samen met mijn team.

Zwaaiende emoji

Thijn Senior developer

Op zoek naar slimme software-oplossingen die jouw bedrijf efficiënter maken?

Het team van Wux ontwikkelt maatwerk software die aansluit bij jouw behoeften. Neem vandaag nog contact op en ontdek hoe we jouw bedrijf elke dag succesvoller kunnen maken.

Meer over software