Programmation fonctionnelle
La programmation fonctionnelle est à la programmation impérative ce que la géométrie est à l’analyse : concise, élégante, intuitive, confinant à une certaine pureté proche des mathématiques. Les fonctions ne font que retourner une valeur. Elles ne modifient pas les variables. Il n’y a pas de boucle, tout est basé sur la récursivité et les données ne font que se transmettre via les appels de fonctions qui créeront une nouvelle donnée à passer à d’autres ou à elles-mêmes…
C’est surtout le Lisp qui m’a permis de découvrir ce style de programmation… bon, qui ne s’est pas arraché les cheveux en comptant et recomptant les parenthèses ouvrantes et fermantes…
Le Lisp m’a aussi ouvert une petite fenêtre vers le monde du logiciel libre, le fameux GNU (au départ, système d’exploitation totalement libre avant d’être détrôné par Linux, à qui il donna ses outils, gnu gcc par exemple), dont l’éditeur Emacs, entièrement programmé en Lisp et totalement extensible en… Lisp, fait pour et par ses utilisateurs, mais surtout par un informaticien idéaliste au look plus vrai que nature d’hippy barbu et velu comme il ne doit plus en exister beaucoup, un certain Richard Stallman, un pionnier de l’informatique.
Les tics se sont transmis aux langages modernes, déjà en C où il était possible de faire de la récursivité ou de passer des fonctions à des fonctions grâce aux pointeurs de fonctions, le Javascript bien entendu où tout est fonction et promesse, mais aussi au C# avec les lambda expressions. Concision quand on l’écrit, mais risque aussi d’en embrouiller la lecture, la programmation fonctionnelle se rapproche d’une forme d’art, donc attention aux artistes !