Programmeurs et reduce : pourquoi cette fonction récursive reste impopulaire
En bref
- Un développeur observe que reduce reçoit régulièrement des critiques en revue de code, contrairement à map et filter.
- Il propose plusieurs explications : la lisibilité réduite, la moins grande familiarité, les risques de performance, et une syntaxe moins élégante en JavaScript, Python et Swift.
- En Clojure, il n'a pas noté ce phénomène, ce qui suggère une dépendance à la langue et à la culture technique de l'équipe.
Ce que dit la source
L'auteur constate anecdotiquement que reduce génère des objections en revue de code bien plus souvent que map ou filter, malgré sa puissance. Il documente cette observation sociale et en propose des explications possibles : complexité de lecture, courbe d'apprentissage plus raide, performance potentiellement dégradée comparée à des alternatives, et syntaxe moins intuitive dans les langages courants (JavaScript, Python, Swift). Notons que l'auteur lui-même préfère reduce mais le remplace régulièrement pour éviter les frictions.
- L'auteur reçoit peu de critiques sur map et filter en revue, mais fréquemment sur reduce
- En Clojure, cette résistance à reduce n'existait pas, suggérant un facteur lié à la langue ou à l'écosystème
- Reduce est bien moins utilisé dans les bases de code que map, filter, ou some, d'après l'observation de l'auteur
- Il admet que cette tendance pourrait ne pas être réelle, ou qu'il pourrait se tromper sur les causes
- L'auteur note une possible évolution récente : moins de retours critiques sur reduce, potentiellement parce que les revues de code sont devenues moins rigoureuses
Dans les commentaires
Débat très limité : un seul commentaire modérateur renvoyant vers un fil antérieur plus actif.
- Le fil actuel est quasi désert (un seul commentaire d'un modérateur) ; il n'y a aucun débat substantiel ici pour confronter l'observation de l'auteur.
Notre lecture
Observation intéressante sur une pratique d'équipe, mais peu actionnable à ce stade. L'article documente une intuition personnelle sans preuve empirique. Le fait que reduce provoque des frictions en revue de code dans certaines équipes et langages (JS, Python, Swift) mais pas en Clojure indique que c'est moins un problème intrinsèque de la fonction qu'une question de conventions et de courbe d'apprentissage. Pour les équipes considérant reduce, l'enjeu réel n'est pas si reduce est objectivement lisible, mais si l'équipe a construire une maîtrise commune de ce pattern. À suivre si d'autres données empiriques émergent.