Traduction un peu adaptée de l’article Why I hate framework de Joel Spolsky
J’ai voulu construire une petite étagère pour y ranger les condiments.
Ayant fait un peu de menuiserie avant, j’avais une bonne idée de ce dont j’avais besoin : un peu de bois et quelques outils de base. Un mètre, une scie, un niveau et un marteau.
D’ailleurs, si je voulais construire toute une maison, j’en aurais besoin également. Du coup je suis allé dans une quincaillerie, et j’ai demandé au vendeur où je pouvais trouver un marteau.
“- Un marteau ?”, me répondit-il. “Plus personne n’achète des marteaux de nos jours vous savez. Ils sont un peu vieux jeu.”
Surpris, je lui demande pourquoi.
– “Et bien, le problème avec les marteaux, c’est qu’il y en a plein de différents types. Des marteaux arrache-clou, des masses, des marteaux de tapissier… Que se passerait-il si vous achetiez un type de marteau et réalisiez que vous avez besoin d’un autre type plus tard ? Vous devriez achetez un autre marteau pour votre prochaine tâche. Il se trouve que la plupart des gens veulent vraiment un seul marteau qui peut être utilisé pour la majorité des tâches qu’ils peuvent rencontrer dans leur vie.”
– “Ça me parait logique. Pouvez-vous me dire où je peux trouver un marteau universel ?”
– “Non, nous ne les vendons plus. Ils sont obsolètes.”
– “Vraiment ? Je pensais que vous veniez de dire que le marteau universel était l’avenir.”
– “Il se trouve que, si vous faites un seul marteau qui puisse être utilisé pour toutes sortes de tâches, il n’est vraiment bon, à aucune d’entre elles. Enfoncer un clou avec une masse n’est pas très efficace. Et pour tuer votre petite amie, rien ne vaut un marteau de tapissier.”
– “C’est clair ! Donc, si plus personne n’achète des marteaux universels, et que vous ne vendez plus de marteaux à l’ancienne, quels marteaux vendez-vous ?”
– “En fait, nous n’en vendons pas.”
– “Alors…”
– “D’après nos recherches, ce dont les gens ont besoin n’est pas un marteau universel du tout. Il vaut toujours mieux avoir le bon marteau pour le bon boulot. Donc, nous avons commencé à vendre des fabriques de marteau, capable de produire n’importe quel marteau qui pourrait vous intéresser. Tout ce dont vous avez besoin est de remplir la fabrique de travailleurs, lancer la machinerie, acheter les matériaux de base, payer les charges et hop, vous avez *exactement* le type de marteau dont vous avez besoin en un clin d’œil.”
– “Mais je ne veux pas acheter une fabrique de marteaux…”
– “Parfait. Car nous n’en vendons plus.”
– “Attendez, vous venez de me dire que…”
– “Nous avons découvert que la plupart des gens n’ont pas besoin d’une fabrique complète de marteaux. Certains, par exemple, n’auront jamais besoin d’un marteau de tapissier. (Peut être qu’ils n’ont pas d’ex. Ou peut être qu’ils les ont tué avec des pics à glace.). Donc il n’y a aucune raison pour quelqu’un d’acheter une fabrique de marteaux pour tous les types de marteaux.”
– “Oui, c’est sûr.”
– “Donc, à la place, on a commencé à vendre les plans de constructions de la fabrique de marteaux, afin que nos clients puissent construire leurs propres fabriques, complètement personnalisées pour produire uniquement les types de marteaux dont ils ont besoin.”
– “Laissez-moi deviner. Vous ne les vendez plus.”
– “Non. Bien entendu. Il se trouve que les gens ne veulent pas construire toute une fabrique juste pour faire quelques marteaux. Laissez la construction des fabriques aux experts de construction de fabriques, c’est ce que je dis toujours !!”
– “Et je vous approuve sur ce point.”
– “Et oui. Donc nous avons arrêté de vendre ces plans et nous avons commencé à vendre des fabriques de fabriques de marteaux. Chacune d’elle est construite par nos experts dans le business de fabrique de fabrique de marteaux, afin que vous n’ayez pas à vous inquiéter des détails triviaux de la construction d’une fabrique. Malgré cela, vous avez tous les bénéfices d’avoir votre propre fabrique personnalisée, produisant vos propres marteaux personnalisés, collant à vos designs spécifiques en matière de marteau.”
– “Heu, ça ne me semble pas vraiment…”
– “Je sais ce que vous allez dire !! … et nous ne les vendons d’ailleurs plus. Apparemment, peu de gens achetaient ces fabriques de fabrique de marteaux, donc nous avons trouvé une solution à ce problème.”
– “Hum.”
– “Nous avons pris le temps de faire le bilan de notre infrastructure technique, et nous avons déterminé que les gens développaient une frustration à avoir à gérer et opérer une fabrique de fabrique de marteaux, tout comme la fabrique qu’elle produisait. Ce genre de contrainte additionnelle peut se révéler fastidieux quand vous vous retrouvez dans un scénario où vous utilisez également une fabrique de fabrique de mètres, une fabrique de fabrique de scies et une fabrique de fabrique de niveaux. Sans compter un conglomérat de transformation du bois. Nous avons objectivement évalué la situation, et déterminé que c’était trop complexe pour quelqu’un qui voulait juste créer une étagère pour condiments”.
– “Non, sans blague ?”
– “Du coup cette semaine, nous mettons sur le marché une fabrique de fabrique de fabrique de création d’outils en tout genre, pour qu’ainsi vos différentes fabriques de fabrique à outils puissent être créées à partir d’une seule fabrique unifiée. La fabrique de fabrique de fabrique produira uniquement la fabrique de fabrique dont vous avez réellement besoin, et ainsi ces fabriques de fabrique produiront une seule fabrique basée sur vos spécifications d’outils personnalisés. Vous aurez *exactement* le marteau dont vous avez besoin, et exactement le bon mètre pour votre tâche, juste en appuyant sur un bouton (même si vous aurez probablement quelques fichiers de configuration pour que tout fonctionne selon vos attentes).
– “Donc, vous n’avez pas de marteaux ? Pas du tout ?”
– “Non. Si vous voulez vraiment une étagère à condiments de haute qualité, de standard industriel, vous avez vraiment besoin de quelque chose de plus sophistiqué qu’un simple marteau acheté à la quincaillerie du coin.”
– “Ok… Bon. Il faut ce qu’il faut. Si c’est comme ça qu’on fait maintenant, il faut bien que je m’y mette.”
– “Excellent !!”
– “Ça vient avec une documentation, pas vrai ?”
Faut être honnêtes beaucoup de frameworks font le café, mais beaucoup sont aussi inutilement trop complexe à utiliser ou a appréhender.
J’ai eu un prof de JAVA J2EE-JSE dans le genre, avec beaucoup de compétences mais qui n’utilisai que le vocabulaire techniques propre a JAVA et aux frameworks qu’il utilisait, même face à des débutant qui avait jamais fait de POO. Ça donnais des trucs du genre :
“Pour commencer vous allez faire une série d’ORM-db Factory réflexives, que vous explorerez itérativement pour instancier vos Data-Classe”
De qwua ? Oo
recursive joke is recursive (& funny)!
Disons que certains Frameworks restent très sympas à utiliser, mais certains autres sont une plaie universelle. J’ai participé à un projet JSF + Spring + Primefaces en Java (pour faire un simple site web), j’ai pleuré roulé en boule dans un coin de la pièce toute la première semaine du projet…
A coté de ça, des trucs comme GWT vous donnent gout au dev Java… :p
Vous êtes complètement marteau…
@H3: il faut dire que Joel visait particulièrement Java en écrivant cet article.
Sinon, pour la minute culturelle, Joel Spolsky est l’associé de Jeff, l’auteur du célèbre blog Coding Horror. Et aux passage, ce sont les créateurs de Stackoverflow.com
Pour étendre la minute de quelque secondes SO est construit à l’aide d’outils Microsoft.
Oui le framework .Net plus précisément, avec l’ORM LINQ. Et aussi massivement Redis et une archi à base de disques SSD. Il faut reconnaître que C# est un très bon langage et visual studio un bon IDE. Un peu lourd, mais propre. Il y a peu de produits MS (Excel et la xBox peut être) qui ont cette qualité, faut au moins souligner ceux qui sont bons.
Je connais pas du tout les soft/bibliothèques Microsoft, ceci dit j’ai lu il me semble sur l’un des blog des fondateurs, qu’ils devaient payer les licenses d’utilisations de certains trucs par rapport au nombre de visites…
@Pocket Tiger: Oh’!? Oô
Bon, je crois qu’on a du avoir le même, ou alors un coulé dans le même moule…
C’est avec un gonze de ce style que j’ai découvert la POO et Java ; un intense moment de solitude !
Et…que dire d’un “formateur” qui te sors dès le début du stage : “de toutes manières, même si vous me sacquez dans l’évaluation de fin de stage, je serai encore là dans 10 ans” ?
Joie… ^_^;;;
Pas directement, mais l’écosystème t’amène à utiliser des choses dont les licences te font payer des trucs hallucinant. C’est très bien foutu, et on s’en rend compte assez tard.
Intéressant Coding Horror.
<3 (oYo) too
Woot !!
Du coup perso, entre utiliser des frameworks ou non, mon cœur balance !
J’aime pas les frameworks dont on risque de dépendre, j’aime pas les frameworks qu’il faut apprendre à programmer avec (apprendre un langage c’était bien assez), j’aime pas les frameworks qui font que des gens se la pètent alors qu’ils ont rien fait … mais d’un autre côté, tout dev soit même finit parfois par être a pain in the ass :o