Pendant prĂšs de dix ans, un blocage conceptuel a freinĂ© mes expĂ©rimentations : comment gĂ©rer correctement lâordre dâexĂ©cution dans un workflow visuel ? La rĂ©ponse a fini par sâimposer sous une forme simple mais dĂ©cisive : inverser les blocs pour mieux rĂ©gner. Ce blocage, vĂ©cu dans mes travaux avec Uniflow, mâa poussĂ© Ă explorer de nombreux concepts du Flow-Based Programming au Lambda Calculus, en passant par les monades et le Wave Function Collapse. Tous ces dĂ©tours ont finalement convergĂ© vers une solution claire : une fois un bloc exĂ©cutĂ©, il doit rester immuable.
â±ïž Le problĂšme des blocs Canvas et Fonction
Dans Uniflow, chaque Ă©tape dâun workflow est reprĂ©sentĂ©e par un bloc. Certains sont trĂšs opĂ©rationnels, dâautres plus abstraits. Deux dâentre eux ont cristallisĂ© mon blocage :
-
le bloc Canvas, qui instancie une surface de dessin ;
-
le bloc Fonction, qui manipule des données.
Pendant longtemps, jâexĂ©cutais le Canvas avant la Fonction. RĂ©sultat : la fonction pouvait revenir modifier un Ă©tat dĂ©jĂ Ă©crit dans le Canvas. CâĂ©tait comme si un lecteur tombait sur la conclusion dâun livre avant mĂȘme dâavoir lu le dĂ©veloppement, ou pire, comme si un auteur pouvait réécrire une page dĂ©jĂ publiĂ©e. Ce mode dâexĂ©cution violait un principe fondamental : lâimmutabilitĂ©. Dans un pipeline, chaque Ă©tape doit produire une donnĂ©e qui ne peut plus ĂȘtre altĂ©rĂ©e, mais seulement utilisĂ©e dans les Ă©tapes suivantes.
đ§ La solution : inversion et immutabilitĂ©
La correction a consistĂ© Ă inverser lâordre : dâabord la Fonction, puis le Canvas. Ainsi :
-
la fonction définit et transmet la variable Canvas en entrée du bloc Canvas,
-
le bloc Canvas exĂ©cute son rĂŽle Ă partir de son propre contexte, au moment prĂ©cis oĂč il est appelĂ©,
-
et surtout, une fois le Canvas exĂ©cutĂ©, il ne peut plus ĂȘtre réécrit.
Ce renversement rĂ©tablit une logique claire, comparable Ă la lecture dâun texte : de haut en bas, chaque ligne sâajoute Ă la prĂ©cĂ©dente, mais aucune ne revient modifier ce qui a dĂ©jĂ Ă©tĂ© Ă©crit.
đĄ Pourquoi cela change tout
Ce simple renversement débloque trois dimensions essentielles :
-
Immutabilité : chaque bloc reste figé une fois exécuté, ce qui garantit la cohérence du flux.
-
Concision : grĂące Ă la programmation fonctionnelle et au currying, chaque pipe peut dĂ©piler les donnĂ©es produites par les prĂ©cĂ©dents, sans jamais réécrire lâhistorique.
-
Clarté : le pipeline devient lisible et prévisible, chaque étape alimentant naturellement la suivante. Avec ce cadre, Uniflow ne manipule plus des états fragiles, mais des flux stables et reproductibles.
â±ïž Concepts explorĂ©s en chemin
Pour surmonter ce blocage, jâai dĂ» plonger dans plusieurs concepts qui, chacun Ă leur maniĂšre, mâont permis de construire une comprĂ©hension plus large :
-
Railway Flow-Based Programming : penser les pipes comme des rails oĂč circulent des paquets dâinformations.
-
Monades : garantir la reproductibilité des types en entrée et sortie.
-
Y Combinator : introduire la rĂ©cursivitĂ© dans un langage qui nâen dispose pas nativement.
-
Lambda Calculus : cadre théorique pour exprimer les fonctions et leur composition.
-
Chunk computing : dĂ©couper un calcul ou une image en morceaux, pour ensuite reconstituer lâensemble.
-
Wave Function Collapse : explorer tous les états possibles et les réduire progressivement par contraintes.
-
Lambda Interpreter en PHP : expérimenter un langage fonctionnel minimal pour manipuler directement les lambdas.
-
Flow : lâaboutissement, combinant orchestration visuelle, programmation fonctionnelle et exĂ©cution asynchrone.
đ« Conclusion
« Inverser pour mieux rĂ©gner » nâest pas seulement une astuce technique, mais la rĂ©solution dâun blocage de longue date : accepter que lâimmutabilitĂ© est la clĂ©. En inversant lâordre dâexĂ©cution des blocs, Uniflow gagne une cohĂ©rence qui le rapproche de la lecture et de lâĂ©criture dâun texte : chaque Ă©tape sâajoute Ă la prĂ©cĂ©dente sans jamais la réécrire. Ce cheminement, nourri par des annĂ©es dâexploration de concepts variĂ©s, a ouvert la voie Ă des workflows plus robustes, plus concis et plus puissants.
đ Je propose des sĂ©ances de coaching gratuites de 30 minutes pour aider les crĂ©ateurs comme vous Ă automatiser leurs processus et Ă gagner du temps â±ïž
đ RĂ©servez votre sĂ©ance gratuite ici
âĄMerci de votre lecture ! CrĂ©ons ensemble des workflows intelligents, rapides et automatisĂ©s
đš Pipe Programming : linĂ©ariser la complexitĂ© des graphes

đ Symfony AI Hackathon â Mon retour dâexpĂ©rience en ligne

đ Veille tech semaine 37

đČ Pierre-Papier-Ciseaux : un modĂšle minimal dâĂ©quilibre et de stratĂ©gie

âïž Strong vs Weak References : maĂźtriser la mĂ©moire et Ă©viter les fuites

đ Git : assurer lâintĂ©gritĂ© et lâauthenticitĂ© de lâhistorique

đ Veille Tech â Semaine 36

đ 2025-09-01 DJ Matyo Live - UK Hardcore / Happy Hardcore

âš Uniflow v1.1.17 â Migration vers Symfony UX

đ€ Panorama 2025 des plateformes freelances : 128 solutions pour trouver vos missions

đŒïž Supprime automatiquement lâarriĂšre-plan de tes images avec Claude et RMBG

đ Veille Tech â Semaine 34

đ©âđ» Hier, jâai codĂ© avec ma copine Ani đ (oui, elle est IA đ€âš).

Automatise la création de notes dans Joplin

đ„ Les news tech PHP & IA de la semaine

đ Pourquoi Symfony AI va remplacer ton dev stagiaire

đ„ Le dancefloor en feu au Tennessee Club de Paris

Je mixe sur Paris au Tennessee Mercredi 30 juillet

Comment je gĂ©nĂšre 10 000âŻâŹ/mois grĂące Ă Symfony AI

âïž Je pars coder Ă Las Vegas sur Symfony AI
