Définition de la stack à contre-courant
- Une philosophie de développement qui consiste à choisir délibérément des technologies alternatives plutôt que des technologies dominantes
- Un terme forgé par l’auteur comme l’opposé de la stack conventionnelle
- Les choix de l’auteur :
- Ruby: Rails → Sinatra + DataMapper
- JavaScript: Prototype → MooTools
- Python: Django → Werkzeug + SQLAlchemy
- Aujourd’hui : React/Next.js → Solid/SolidStart
La progression née des difficultés de la stack à contre-courant
- Faute de réponses sur Stack Overflow, analyse directe du code source → compréhension approfondie de la technologie
- Faible base d’utilisateurs et manque de soutien communautaire → progression comme contributeur open source, satisfaction de voir ses PR fusionnées
- Expérience de l’auteur :
- Le faible niveau d’abstraction de Werkzeug → acquisition de la capacité à construire un framework interne
- Le processus souvent qualifié de "galère" → des connaissances fondamentales réutilisables dans n’importe quelle stack
- Avantage : une profonde compréhension technique acquise à travers le processus de résolution de problèmes
L’avantage des suiveurs tardifs
- Une expérience de conception qui identifie les problèmes des stacks conventionnelles et les améliore
- Exemple : la fine-grained reactivity de Solid (qui évite le surcoût du DOM virtuel de React)
- Gain inattendu : comprendre le "pourquoi" des technologies et développer une meilleure intuition en conception d’architecture
La valeur cachée de la stack modulaire
- Stack conventionnelle : un coffret tout-en-un pratique
- Rails(CoC), Django(Batteries Included), Next.js(full-stack)
- Stack à contre-courant : choix des composants un par un et assemblage manuel
- Exemple de l’auteur : Sinatra + DataMapper + Haml + Sass
- La complexité de la configuration de chaque composant et du chaînage des middlewares
- Avantage : une compréhension complète du fonctionnement interne des technologies et des interactions entre les couches
Leçon historique
- Ce qui est aujourd’hui la voie classique était hier une approche à contre-courant (Rails → alternative à Java, React → alternative à Backbone.js)
- Avantage : une position de pionnier qui permet d’expérimenter et de comprendre à l’avance les futures technologies dominantes
L’opportunité paradoxale à l’ère des LLM
- Renforcement de l’avantage des stacks conventionnelles (ChatGPT maîtrise bien Next.js, mais beaucoup moins SolidStart)
- Avantage : une expertise dans les domaines où les LLM sont moins capables devient un facteur de différenciation encore plus fort
- Un parcours de progression pour devenir un véritable ingénieur, et non un simple utilisateur de framework
2 commentaires
Je n’ai jamais pensé une seule fois que SQLAlchemy était à contre-courant, c’est assez particulier.
Je pense qu’il faisait probablement référence à Werkzeug plutôt qu’à SA. En général, on utilise Flask ou FastAPI. Aller à contre-courant jusque dans l’ORM, ce n’est pas si facile.