L’auteur de cet article affirme que « les langages orientés objet ne peuvent pas nous sauver du monstre qu’est le Cloud », ceci parce que ces « langages sont basés sur des états mutables » et ne simplifient pas « les modèles concurrents et le parallélisme au sein des applications », à l’inverse de la programmation fonctionnelle.
Pour rappel, la programmation fonctionnelle est apparue il ya plus de 60 ans déjà avec Lisp. Selon la définition de Wikipédia, ce paradigme « considère le calcul en tant qu'évaluation de fonctions mathématiques et rejette le changement d'état et la mutation des données ». Pourtant, les langages impératifs comme le C avaient eu plus de succès dans le passé et même maintenant, surement à cause de leur efficacité en terme de temps d’exécution et de gestion de la mémoire.
Pourtant, l’auteur de l’article que nous avons cité plus haut croit profondément que ceci pourrait changer avec la rapidité des ordinateurs actuels et la démocratisation du Cloud et du parallélisme massif.
« Vous pouvez exécuter une fonction un millier de fois dans différents cores ou machines, vous n’allez pas obtenir des sorties différentes de ce que vous avez obtenu avant. Ainsi, vous pouvez utiliser le même code pour exécuter votre traitement dans un seul processeur aussi bien que dans 1000 processeurs. La vie peut être facile à nouveau ». Toutefois, ceci ne veut pas dire qu’il faut arrêter d’utiliser les états mutables. Au contraire, l’auteur assure que « l’idée principale de la programmation fonctionnelle est qu’il faut utiliser les états immutables seulement lorsqu’il est nécessaire ».
Ces états qui ne changent pas durant l’exécution sont fournis dans ce type de langages grâce a deux concepts : les fonctions pures qui ont des entrées et des sorties, mais ne changent aucune valeur, elles sont donc indépendantes de l’environnement ou de l’ordre d’exécution du thread. Le deuxième concept est celui de l’état immutable dont l’exemple OCaml suivant illustre le principe :
Code : | Sélectionner tout |
1 2 3 4 | let x = 5;; x = 6;; print_int x;; (* prints 5 *) |
Source : Medium, Wikipédia
Et vous ?
Êtes-vous d’accord avec l’avis de l’auteur cité ?
Pensez-vous que la programmation fonctionnelle est le futur avec le Cloud ?