FL
Inventé en 1989 à San José, par trois chercheurs du prestigieux centre de recherche IBM Almaden, FL est un langage de programmation fonctionnelle à évalutation stricte, et à typage dynamique, qui propose des outils de gestion d’exceptions et d’entrées/sorties. Ce langage est le successeur du FP (pour Function Programming), créé par John Backus, un des pères de la programmation fonctionnelle.
Les trois concepteurs de FL avaient pour but de mettre au point un langage dénué de lourdeur syntaxique et de complexité technique, dans l’optique de faciliter au maximum son apprentissage et son utilisation. Le programmeur peut alors se concentrer sur la conception des algorithmes et des méthodes de résolutions de problèmes complexes, sans avoir à gérer des problèmes de bas niveau ou des particularités du langage. Attractif pour les développeurs débutants, cette caractéristique peut décourager les plus expérimentés, qui ont le sentiment de ne pas avoir un contrôle total des programmes, et donc d’être restreints en terme de possibilités et de performances.
L’approche fonctionnelle de la programmation est la grande force de FL. Moyennant une perte de contrôle sur des aspects bas niveau comme le contrôle de la mémoire, elle permet de rendre intelligible des programmes maniant des concepts complexes. Ainsi, les briques élémentaires d’un programme ne seront pas des variables typées, des tableaux ou des listes, mais des fonctions. Ces dernières peuvent être alors assemblées, composées (au sens mathématique du terme), agrégées pour construire des fonctions réalisant des opérations de plus en plus sophistiquées. Conséquence positive de cette approche, le code est hautement modulaire.
S’il fut globalement peu utilisé, FL a tout de même été à la source de Plasma, qui est un langage de programmation géométrique. Ce dernier permet de générer des formes et des modèles géométriques, qui sont simplement des fonctions avec des paramètres correspondant aux dimensions, puis de les assembler et imbriquer. Il devient alors possible de recréer des monuments historiques ou d’inventer des architectures originales — et ce de manière beaucoup plus intuitive qu’avec des languages classiques.
FL démontre ainsi un des principaux intérêts de la programmation fonctionnelle : rendre intuitive la tâche du développeur et faciliter le développement de concepts abstraits mathématiques.