Pourquoi la programmation fonctionnelle n'est-elle pas la norme?

Un talk qui mêle programmation et histoire et offre un recul dont on manque souvent cruellement.

Il semble que si la programmation fonctionnelle n’est pas plus répandue que cela, c’est à cause d’un mélange de successions d’évènements inévitables mêlés à des coups du hasard. L’appellation "orienté objet" elle-même n’est pas anodine…​

Richard Feldman liste, comme causes principales de la dominations des langages orientés objets (O.O.) :

  1. Les killer apps (Ruby on Rails pour Ruby)

  2. L'exclusivité de la plateforme (Objective C, Swift, JavaScript)

  3. La possibilité de transitioner facilement depuis un langage populaire (C++, Kotlin, TypeScript)

L’auteur retrace ce qui a mené au paysage actuel fait de JS/typescript, ObjectiveC/Swift, C/C++, C# et Java principalement.

Mais il omet peut-être aussi de noter :

  • La plupart des langages sont des blue collar languages, acceptant une hybridation plus ou moins forte entre les paradigmes, et ne se soucient pas trop d’un forme de "pureté" souvent plus marquée dans les langages fonctionnels;

  • Les GUI des années 1980-1990. Le mécanisme d’héritage O.O. pour des composants techniques type widgets est vachement pratique (Delphi, PowerBuilder), même s’il est à déconseiller en général (Effective Java, item 16, et il existe un concensus dans d’autres langages).

Et de conclure que peut-être, l’heure des langages fonctionnels n’est-elle tout simplement pas encore venue.