{"id":1047,"date":"2010-01-12T09:57:18","date_gmt":"2010-01-12T07:57:18","guid":{"rendered":"http:\/\/www.do-as-i-say.com\/notes\/?p=1047"},"modified":"2012-12-02T13:59:52","modified_gmt":"2012-12-02T11:59:52","slug":"reinventer-la-roue","status":"publish","type":"post","link":"https:\/\/www.do-as-i-say.com\/notes\/2010\/01\/reinventer-la-roue\/","title":{"rendered":"R\u00e9inventer la roue"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1065\" style=\"border: 1px solid black;\" title=\"La roue\" src=\"http:\/\/www.do-as-i-say.com\/notes\/wp-content\/uploads\/roue.jpg\" alt=\"La roue\" width=\"128\" height=\"128\" \/>L&rsquo;un des arguments principaux justifiant le recours \u00e0 un framework (par exemple, au hasard, <a href=\"http:\/\/www.symfony-project.org\" target=\"_blank\">Symfony<\/a>), contrebalan\u00e7ant le fait qu&rsquo;il est un peu \u00ab\u00a0lourd\u00a0\u00bb<sup>[<a href=\"https:\/\/www.do-as-i-say.com\/notes\/2010\/01\/reinventer-la-roue\/#footnote_0_1047\" id=\"identifier_0_1047\" class=\"footnote-link footnote-identifier-link\" title=\" Puisqu&rsquo;on ajoute des couches, c&rsquo;est forc\u00e9ment plus lourd qui si on n&rsquo;en ajoute pas, merci pour la lapalissade.\">1<\/a>]<\/sup>, est que puisqu&rsquo;il prend en charge un grand nombre des t\u00e2ches r\u00e9p\u00e9titives de bas niveau, il \u00e9vite au d\u00e9veloppeur d&rsquo;avoir, selon l&rsquo;expression consacr\u00e9e, \u00e0 r\u00e9inventer la roue \u00e0 chaque fois qu&rsquo;il entame une nouvelle application ou une nouvelle interface.<\/p>\n<p><!--more-->\u00ab\u00a0R\u00e9inventer la roue\u00a0\u00bb (ou \u00ab\u00a0rihinveinte zeu ouhile\u00a0\u00bb, pour les bilingues), c&rsquo;est perdre du temps sur quelque chose qui a d\u00e9j\u00e0 \u00e9t\u00e9 fait, bien fait, mieux fait, bref, faire un travail inutile. En programmation, c&rsquo;est m\u00eame un <a href=\"\/notes\/2009\/09\/design-patterns-symfony-explique-a-ma-maman-2\/\">antipattern<\/a> c\u00e9l\u00e8bre. Si on peut lui reconnaitre dans une certaine mesure un int\u00e9r\u00eat p\u00e9dagogique (l&rsquo;imp\u00e9trant d\u00e9veloppeur, en passant du temps sur une fonctionnalit\u00e9 d\u00e9j\u00e0 r\u00e9alis\u00e9e, s&rsquo;initie au code et \u00e0 sa logique &#8211; pour peu qu&rsquo;il soit guid\u00e9), il est clair qu&rsquo;on d\u00e9conseille fortement de r\u00e9inventer la roue. Si \u00e7a a d\u00e9j\u00e0 \u00e9t\u00e9 invent\u00e9, coco<sup>[<a href=\"https:\/\/www.do-as-i-say.com\/notes\/2010\/01\/reinventer-la-roue\/#footnote_1_1047\" id=\"identifier_1_1047\" class=\"footnote-link footnote-identifier-link\" title=\"Oui, j&rsquo;appelle souvent les d\u00e9veloppeurs \u00ab\u00a0coco\u00a0\u00bb, ils aiment beaucoup.\">2<\/a>]<\/sup>, pourquoi perdre du temps \u00e0 le refaire, d&rsquo;autant qu&rsquo;il y a fort \u00e0 parier que tu le referas moins bien. En effet, non seulement la roue a d\u00e9j\u00e0 \u00e9t\u00e9 invent\u00e9e, mais depuis le temps, elle a \u00e9t\u00e9 perfectionn\u00e9e.<\/p>\n<p>La bonne pratique est donc de capitaliser, comme on dit, sur ce que les autres ont d\u00e9j\u00e0 fait, test\u00e9 et \u00e9prouv\u00e9.<br \/>\nEn programmation, o\u00f9 l&rsquo;Histoire est encore fraiche et o\u00f9 tout va tr\u00e8s vite, ces \u00ab\u00a0autres\u00a0\u00bb sont parfois des contemporains (voire sont plus jeunes que vous ; sales jeunes), mais pour g\u00e9n\u00e9raliser on peut dire que cette bonne pratique consiste \u00e0 apprendre de ce qui a \u00e9t\u00e9 fait, donc apprendre du pass\u00e9, des g\u00e9n\u00e9rations pr\u00e9c\u00e9dentes, en d&rsquo;autres termes : de ses a\u00een\u00e9s. Ce pass\u00e9 qu&rsquo;on peut plus ou moins consciemment faire fructifier a un nom : <strong>la tradition<\/strong>.<\/p>\n<p>L&rsquo;Histoire se r\u00e9p\u00e9tant, chaque nouvelle g\u00e9n\u00e9ration a une tendance plus ou moins forte \u00e0 vouloir se d\u00e9faire de la tradition, comme une transposition \u00e0 l&rsquo;\u00e9chelle socio-culturelle de la crise d&rsquo;adolescence, o\u00f9 le besoin de conqu\u00e9rir son individualit\u00e9 se traduit parfois par des chocs violents (tant il est \u00e9vident que pour chaque jeune, les vieux n&rsquo;ont vraiment rien compris, et ne peuvent de toutes fa\u00e7ons pas le comprendre lui).<\/p>\n<p>Il y a pourtant une r\u00e9alit\u00e9 douloureuse, c&rsquo;est que globalement, vu que l&rsquo;Histoire n&rsquo;a pas exactement commenc\u00e9 hier, ni m\u00eame \u00e0 la naissance de Bill Kaulitz\/Brian Molko\/Kurt Cobain\/Robert Smith\/John Lennon (choisissez pour votre g\u00e9n\u00e9ration ou celle qui vous suit), vu que l&rsquo;humanit\u00e9, donc, a quelques heures de vol derri\u00e8re elle, excusez du peu, <strong>il y a de fortes chances que <em>tout ait d\u00e9j\u00e0 \u00e9t\u00e9 fait<\/em>.<\/strong><\/p>\n<h3>Connais tes classiques<\/h3>\n<p>Bien s\u00fbr, l&rsquo;acc\u00e9l\u00e9ration (on va appeler \u00e7a comme \u00e7a) de l&rsquo;Histoire d\u00fbe \u00e0 la technologie au sens tr\u00e8s large, donc depuis la fin du XIX\u00e8me si\u00e8cle, fait que dans pas mal de domaines, le pass\u00e9 est bref. \u00c7a a un c\u00f4t\u00e9 assez sympathique, on peut croire un peu qu&rsquo;on d\u00e9friche des choses \u2014 et \u00e7a n&rsquo;est en partie pas faux \u2014, mais il ne faut pas non plus se faire avoir par une courante <strong>illusion d&rsquo;optique<\/strong> : m\u00eame si concr\u00e8tement le contenu du savoir\/de la technologie en question est \u00ab\u00a0diff\u00e9rent\u00a0\u00bb, dans l&rsquo;histoire du savoir, on n&rsquo;<em>invente<\/em> que tr\u00e8s rarement quelque chose. Pour ne pas dire jamais. La plupart du temps, on repasse en fait par des chemins qui ont d\u00e9j\u00e0 \u00e9t\u00e9 emprunt\u00e9s, m\u00eame si on ne le sait pas (et dans ce cas, en un sens, on peut se retrouver \u00e0 r\u00e9inventer la roue).<\/p>\n<p>Cette illusion repose principalement sur un aveuglement, d\u00fb \u00e0 un manque de connaissance du pass\u00e9, et la bonne pratique qui pr\u00e9conise de ne pas r\u00e9inventer la roue exhorte donc \u00e0 ouvrir les yeux. Mais pour \u00e7a, comme on dit, il faut <em>conna\u00eetre ses classiques<\/em>. Lire, \u00e9couter. Plus tu connais le pass\u00e9, plus tu ma\u00eetrises le pr\u00e9sent, plus tu fa\u00e7onnes le futur comme tu le veux (je devrais \u00e9crire des slogans pour ERDF, moi).<\/p>\n<p>\u00c7a peut avoir l&rsquo;air d\u00e9primant comme \u00e7a, mais \u00e7a ne l&rsquo;est que si l&rsquo;on se berce de l&rsquo;illusion (une autre) qu&rsquo;on est le premier de l&rsquo;esp\u00e8ce humaine et que tout nous a attendu. Il faut se r\u00e9veiller. Personne ne nous a attendu, et <strong>les morts sont plus forts que les vivants<\/strong>.<br \/>\nMais en fait, c&rsquo;est tr\u00e8s bien, et \u00e7a laisse quand m\u00eame de la place. Parce que l&rsquo;histoire est une perp\u00e9tuelle redigestion, qu&rsquo;elle engendre quand m\u00eame du nouveau, et qu&#8217;emprunter un chemin qui a d\u00e9j\u00e0 \u00e9t\u00e9 foul\u00e9 est toujours un nouveau p\u00e9riple.<\/p>\n<p>La morale de cette histoire (qui n&rsquo;en est pas une), c&rsquo;est que quand l&rsquo;ego a r\u00e9ussi \u00e0 faire le deuil de sa toute-puissance, \u00e0 entrer dans son humilit\u00e9, et pas au sens chr\u00e9tien du terme, alors les choses int\u00e9ressantes peuvent \u00e9ventuellement commencer.<br \/>\nJ&rsquo;aborderai probablement une autre fois le rapport \u00e0 la tradition, qui n&rsquo;est \u00e9videmment pas univoque et ne doit pas consister en une soumission absolue (car, <a href=\"\/notes\/2009\/09\/si-a-50-ans-tas-pas-ecoute-du-mahler\/\">comme disait l&rsquo;autre<\/a>, la tradition \u00e7a peut aussi \u00eatre de la paresse ou de la n\u00e9gligence. Mais pour contester ou d\u00e9passer, il faut conna\u00eetre ce qu&rsquo;on pr\u00e9tend d\u00e9passer.<\/p>\n<p>__________________________<\/p>\n<p><em>Illustration fort \u00e0 propos trouv\u00e9e fortuitement ici : <\/em><a href=\"http:\/\/plennevaux.be\/alexandre\/general\/monocycle-par-ben-wilson\/\" target=\"_blank\">http:\/\/plennevaux.be\/alexandre\/general\/monocycle-par-ben-wilson\/<\/a><\/p>\n________________________________________________\r\n<br\/><ol class=\"footnotes\"><li id=\"footnote_0_1047\" class=\"footnote\"> Puisqu&rsquo;on ajoute des couches, c&rsquo;est forc\u00e9ment plus lourd qui si on n&rsquo;en ajoute pas, merci pour la lapalissade. [<a href=\"https:\/\/www.do-as-i-say.com\/notes\/2010\/01\/reinventer-la-roue\/#identifier_0_1047\" class=\"footnote-link footnote-back-link\">&#8617;<\/a>]<\/li><li id=\"footnote_1_1047\" class=\"footnote\">Oui, j&rsquo;appelle souvent les d\u00e9veloppeurs \u00ab\u00a0coco\u00a0\u00bb, ils aiment beaucoup. [<a href=\"https:\/\/www.do-as-i-say.com\/notes\/2010\/01\/reinventer-la-roue\/#identifier_1_1047\" class=\"footnote-link footnote-back-link\">&#8617;<\/a>]<\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>L&rsquo;un des arguments principaux justifiant le recours \u00e0 un framework (par exemple, au hasard, Symfony), contrebalan\u00e7ant le fait qu&rsquo;il est un peu \u00ab\u00a0lourd\u00a0\u00bb[1], est que puisqu&rsquo;il prend en charge un grand nombre des t\u00e2ches r\u00e9p\u00e9titives de bas niveau, il \u00e9vite au d\u00e9veloppeur d&rsquo;avoir, selon l&rsquo;expression consacr\u00e9e, \u00e0 r\u00e9inventer la roue \u00e0 chaque fois qu&rsquo;il entame [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[43,22,63,64],"class_list":["post-1047","post","type-post","status-publish","format-standard","hentry","category-misc","tag-antipatterns","tag-methodologie","tag-roue","tag-tradition"],"_links":{"self":[{"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/posts\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/comments?post=1047"}],"version-history":[{"count":42,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1089,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/posts\/1047\/revisions\/1089"}],"wp:attachment":[{"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/media?parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/categories?post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.do-as-i-say.com\/notes\/wp-json\/wp\/v2\/tags?post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}