Functionele programmeertalen zijn weinig populair in vergelijking met de traditionele aanpak, zeker in embedded systemen. Door de groei in multicore processoren ontstaat er echter nieuwe interesse in de methode, want daar is de technologie bij uitstek geschikt voor. De vraag is of het ook kan werken in embedded systemen, waar hardwarebronnen vaak beperkt zijn.
Tijdens de verhitte discussies over de beste manier om multicore systemen te programmeren, duikt met enige regelmaat de term ’functioneel programmeren‘ op. De methode is volgens sommigen de silver bullet voor het probleem dat de prestaties niet lineair schalen met het aantal kernen in een multicore systeem. De reacties op deze term lopen nogal uiteen. Voor de een – meestal de academici – is het een elegante en moderne aanpak, voor de ander juist een exotische en verwrongen manier van programmeren. Het overgrote deel van de mensen echter, zal geen idee hebben waar het over gaat.
Wat functioneel programmeren precies inhoudt, is niet makkelijk uit te leggen. Standaard programmeertalen zoals C, C++ en Java heten imperatief te zijn. Ze gaan uit van gegevens in een bepaalde toestand, en statements om ze die toestand te veranderen. Imperatief programmeren is gebaseerd op de werking van de hardware: die heeft een toestand bestaande uit geheugen en registers en instructies voor de processor die deze toestand manipuleren. De volgorde van commando‘s is essentieel voor de werking.
