"Soir de printemps
De bougie en bougie
La flamme se transmet"
Yosa Buson (1716-1783)
Tiens, tiens, ça faisait longtemps que les Souris Vertes ne nous avaient pas proposé une de ces lectures stimulantes dont elles ont le secret. Alors, quel beau livre a retenu leur attention cette fois-ci ? Hum. Autant le dire tout de suite, toutes les souris n'étaient pas emballées à l'idée de parler de notre ouvrage du jour, qui s'intitule "L'économie symbiotique", d'Isabelle Delannoy, vu qu'il peut sembler bien rébarbatif de prime abord, et pour être honnête les choses ne s'arrangent pas toujours, même après un contact prolongé.
Il s'agit en fait, ni plus ni moins, ni autant, que d'un essai d'économie. Déjà ce genre littéraire parfaitement respectable ne fait généralement pas l'unanimité sur les plages en été, ou pour une lecture décontractée au coin du feu, mais on peut bien se demander quelle mouche a piqué les souris vertes de vouloir nous en entretenir, vu le rapport apparemment absolument nul avec notre excellente ligne éditoriale habituelle.
Eh bien qu'on se détrompe, et qu'on batte sa coulpe en place publique sans attendre, car non seulement notre petit livre aborde en détail les sujets favoris qui nous font courir d'article en article, mais en plus dans une prose nettement moins ennuyeuse et empesée que ce que l'on serait en droit d'attendre d'un Traité d'Economie Très Sérieux.
Allez, sans plus attendre on se lance dans le vif de la discussion, et dans un élan de générosité vis-à-vis de nos lecteurs, on structure un peu le machin à grand coup de paragraphes, et avec un plan remarquable, s'il vous plaît : on donne d'abord l'intrigue générale, et ensuite on en viendra aux aspects d'écologie numérique que tout le monde attend avec impatience.
Le fond du fond
Alors, l'économie symbiotique, quésaco ? S'agit-il des principes économiques appliqués par des micro-organismes marins, tu me donnes un peu de plancton et je te rends un peu d'algue plus les intérêts ? Pas du tout, non non très cher (chère ?), nous parlons bien de l'économie humaine, celle qui dévaste les forêts et dépeuple les océans. Enfin jusqu'à présent. Car l'auteur (auteure ?) ne partage pas ce constat défaitiste que tout système économique un tant soit peu structuré mène naturellement et sans coup férir à la destruction la plus joyeuse de tout ce qui nous environne. Certes, l'économie actuelle est extractive, polluante, génératrice d'inégalités sans précédent, mais ça n'est pas une fatalité, enfin du moins c'est ce qu'on espère.
Le livre s'attache donc à bâtir une théorie économique complète, qui n'ait pas tous ces défauts grossiers, et qui permette de faire fonctionner une ou des sociétés humaines avec un niveau de technologie élevé sans le nécessaire dommage collatéral pour le reste des espèces vivantes qui aimeraient bien aussi un peu de place, tout de même.
Et, pour bâtir son Nouveau Super Système Economique, notre courageuse économiste se fonde sur un certain nombre d'expériences qui, en apparence, n'ont rien en commun, mais partagent toutes à l'insu de leur plein gré les mêmes principes fondateurs : permaculture, gestion des eaux usées, modes d'urbanisation alternatifs, nouveaux modes d'organisation des entreprises, sont autant d'éléments disparates de la fameuse transition écologique déjà en marche (mais à petits pas, NDLR).
Ici, à vrai dire, le lecteur qui a déjà croisé au détour de son chemin l'un ou l'autre de ces sujets n'apprendra pas énormément de nouveautés les concernant. En revanche, pour éparses qu'elles puissent paraître, ces expériences illustrent toutes à leur manière les grands principes de l'économie symbiotique, celle qui pourrait nous permettre de sauver le monde et les bébés phoques. Et quels sont ces principes, donc ? Justement, nous y venons.
Les grands principes de l'économie symbiotique
Ah ah ! J'inclus un nouveau paragraphe mystère de dernière minute, car je me rends compte que mon plan initial ne tient pas la route, comme toute bonne planification militaire qui, comme le dit le fameux adage, ne survit pas à la première rencontre avec l'ennemi. Bon, qu'on se rassure, nous ne sommes pas en train de nous tirer dessus à la rédaction des Souris Vertes, tout au plus terminons nous notre bataille de polochons un peu plus échevelés et essouflés.
Reprenons donc, car il est temps de recopier, sans reversement de droits d'auteur (auteuse ?) et sans vergogne les six grands principes de l'économie symbiotique qui doivent désormais guider notre pensée et notre action politique quotidienne. Il s'agit donc de construire des systèmes qui :
Autant dire qu'on est loin du compte, et qu'il va sans doute falloir un peu plus que la publication de "l'économie symbiotique"pour nous faire changer de trajectoire. Cela dit, bien plus que ces grands principes qui restent somme toute un peu trop généraux à notre goût, nous avons été bien plus intéressé par un petit diagramme qui explique, dans une société fondée symbiotiquement, les interactions entre le monde vivant, un système industriel toujours en place et la société humaine elle-même. Pour ne pas abuser, nous n'allons pas reproduire le schéma en question, mais nous en dévoilons la substance ; il faut pour cela distinguer trois types d'écosystèmes :
Numérique, loup y es-tu ?
Bien, on parle on parle, mais où le numérique dans tout ça ? Eh bien, à vrai dire, pour aussi intéressants que soient tous les propos que nous avons rapportés jusqu'à présent, nous n'aurions probablement pas consacré de petite recension à notre lecture du jour, si elle ne donnait pas une place de choix, et avec force détails, aux nouvelles technologies dans cette belle économie symbiotique à venir. Enthousiasmée par les possibilités de partage de savoir au niveau planétaire permis par les réseaux de communication modernes, de création et d'invention rendus possibles au plus grand nombre par les fablabs ou les imprimantes 3D, notre auteure(auteur?) en fait le pilier même des fameux écosystèmes sociaux, qui sont en fait davantage des flux d'échange d'information sous forme de petits octets que de vrais écosystèmes matériels.
Il faut reconnaître ici un réel effort, bien rafraîchissant pour les souris vertes qui n'arrêtent pas de mettre ce sujet sur la table dans un silence débatoire assourdissant, pour penser sérieusement et jusqu'au bout les conséquences d'une économie fondée sur des technologies numériques dont il faudrait pérenniser la production et l'utilisation sur le long terme. Extraction de métaux, de terres rares, obsolescence programmée, Isabelle Delannoy ne s'abrite pas derrière son petit doigt et essaie de répondre à tous ces problèmes qui menacent l'industrie numérique actuelle de périr sous le poids de ses propres déchets électroniques et de sa dévastation environnementale silencieuse.
Cependant, vu l'ampleur desdits problèmes, sans compter leur nécessaire extension à de nombreuses régions du monde non encore colonisées par ces outils numériques indispensables, puisqu'il est nécessaire que tout le monde soit relié par ces réseaux d'échange mondiaux et équipés de sa petite panoplie numérique pour que l'économie symbiotique puisse symbioser comme il se doit, nous sommes très dubitatifs aux souris vertes sur les propositions qui sont avancées. Par exemple, le recyclage des métaux, comme nous l'a bien montré "l'âge des Low Tech", un autre excellent ouvrage commenté ici-même précédemment, ne peut se faire à l'infini, mais au mieux sur quelques cycles vu les pertes inévitables, même sur les appareils les mieux conçus en vue d'être recyclés. On a donc du mal à voir comment une super filière de recyclage des métaux rares pourrait nous sauver d'une pénurie fatale de petits processeurs dans quelques dizaines de générations.
Bon, mais est-ce qu'on est d'accord, alors, vraiment ?
Argh et triple ugh, notre plan initial vient encore d'en prendre un coup dans l'aile, mais bon nous étions de toute manière résigné à son inconsistance congénitale. Ca nous apprendra à annoncer notre plan, tiens, on aurait mieux fait de se taire que d'appliquer ces bons principes d'écolier scrupuleux, voire franchement fayot.
Alors, nous avons essayé de présenter succintement les propos de notre bel ouvrage, mais nos fidèles lecteurs se doutent bien qu'il y a fennec sous cactus, voire souris sous buisson, car on aura plus vite fait d'attendre le jour du jugement dernier plutôt que le jour où les souris vertes n'auront aucune remarque critique à faire sur des idées offrant pourtant toutes les garanties de sérieux et de bon sens du cru. Eh oui, que voulez-vous, nous aimons la discussion, voire parfois la polémique la plus vile, on ne se refait pas. Polémiquons donc, prestement mais sans excès.
Nous avons en vérité deux points fondamentaux de désaccord, avec les parti-pris de l'écrivain (écrivaine ?). Tout d'abord et premièrement, nous considérons qu'il est dangereux de remplacer un optimisme et une confiance béats dans l'efficacité technique des réalisations artificielles, autrement dit le discours scientifico-totalitaire de notre belle modernité actuelle, par un optimisme en miroir sur l'efficacité des processus naturels. Certes, la nature fait fort bien les choses, ça n'est pas les souris qui vont me contredire, mais elle bien loin d'atteindre les critères d'efficacité et d'optimisation que l'espèce humaine s'est mise en devoir d'exiger dans tous les domaines.
Non, vraiment, les processus naturels ne sont pas des outils super optimaux qu'il suffirait d'exploiter, substituant àr nos rayons laser ultra-fins ou nos navettes spatiales du compostage super efficient ou de la photosynthèse dernière génération. La nature, enfin la vie en générale, ne cherche pas l'efficacité à tout crin, et les processus naturels ne sont pas exempts de perte, de déchet, d'érosion des ressources, enfin du moins aux échelles de temps et de matière qui nous concernent. Aussi, il nous paraît essentiel de nous préparer psychologiquement à ce que, même dans une société symbiotique idéale et parfaitement transitionnée écologiquement, aucun cycle de matière ne soit parfaitement refermable, et aucune ressource intégralement renouvelable sur la longue durée.
L'action de l'humanité, et du reste des vivants, ne pourra jamais être parfaitement neutre de ce point de vue, aussi nous pensons aux souris vertes qu'il serait temps d'en prendre notre parti une fois pour toutes, ce qui aurait pour conséquence qu'en plus de la recherche nécessaire de systèmes cycliques de consommation et production, il faudrait également s'attacher à réduire l'échelle de ces systèmes, pour que les pertes inévitables restent négligeables et nous promettent encore quelques ères géologiques de survie sans avoir à nous entretuer sérieusement pour les maigres ressources encore disponibles.
Notre deuxième point d'achoppement concerne, sans surprise, l'utilisation extensive de la panoplie numérique actuelle dans notre future économie symbiotique. Honnêtement, bien qu'elle nous permette de gagner notre croûte à la sueur de nos extrémités digitales, nous avons tendance à considérer l'informatisation galopante de la société comme un phénomène transitoire qui finira par se dégonfler, d'une part à cause de sa profonde inutilité intrinsèque (avons-nous réellement besoin que des machines effectuent des actions ou nous communiquent des données que nous sommes parfaitement capables de produire de manière autonome ?), et surtout de par son coût en ressources exhorbitant par rapport au service rendu.
Evidemment, les services rendus par les outils numériques ne sont pas tous superflus, même s'ils sont tous dispensables, comme en attestent les générations qui nous ont précédé sur la planète et qui ont, on se demande comment, réussi à faire leur chemin sans tout ce fourbi. Maintenant que nous les possédons, il n'est sans doute pas question de les mettre totalement de côté, mais comme la plupart des enthousiastes du numérique au service de l'écologie, notre auteur (autrice ?) ne questionne aucune des applications qui sont faites de ces nouvelles technologies, comme si elles étaient toutes légitimes et donc naturellement destinées à être pérennisées des siècles durant à travers toute l'humanité, dans un système économique qui intègrerait pleinement le droit pour tous de jouer à Lance Ton Pingouin en réseau mondial. En ce qui nous concerne, aux Souris Vertes, nous militons activement pour dégonfler la baudruche avant de poser la question de comment il faudrait faire pour l'inclure dans notre belle construction de la société durable de demain.
Lire ou ne pas lire, telle est la question
Bon, il est vrai qu'aux Souris Vertes, il nous est arrivé de parler de livres dont nous ne recommandions pas franchement la lecture, un comble tout de même quand ceux-ci ne nous ont rien demandé. Mais cette fois-ci, nous allons clairement et sans ambage recommander à tous ceux qui le peuvent et le souhaitent de lire "L'économie symbiotique", si si. Nous avons beau émettre de sérieuses réserves sur l'enthousiasme insouciant avec lequel l'auteure nous convie à intégrer les technologies numériques au coeur même de sa société de demain, il n'en reste pas moins que l'effort pour tenter de penser, au-delà de notre science économique moribonde, qui égrenne en boucle les relevés de la bourse à longueur d'antenne, une pensée économique qui ne soit pas en contradiction directe avec tous les principes écologiques et de préservation du vivant, mérite d'être salué bien bas.
Si nous ne sommes pas certain que les grands principes de l'économie symbiotique qui sont exposés suffiront à nous construire une société durable et équilibrée, il paraît important que ces notions émergent puissamment et distinctement dans l'espace public pour qu'elles puissent être débattues comme elles le méritent. Le cadre conceptuel proposé a le double mérite de sortir l'action politique au service de l'écologie de la multiplication de micro-actions qui parfois n'entretiennent aucune cohérence entre elles, voire se contredisent l'une l'autre, et d'offrir une alternative, y compris en terme de vocabulaire, à la théorie économique standard en grave danger de fossilisation terminale sur ses propres positions de principe, fût-ce au prix de laisser mourir l'entièreté des espèces vivant sur la planète, humains compris.
Bref, amis lecteurs, lisez sans tarder "l'économie symbiotique" d'Isabelle Delannoy, puis repassez l'ouvrage à vos voisins, vos souris, vos amis, et même vos ennemis !
"Un bébé moineau
Saute avec curiosité
Pour regarder mon coup de pinceau"
Mizuhara Shuoshi (1892-1981)
"Placardée sur la porte d'entrée
La photo
Du chat qui n'est jamais revenu"
Midoriro no Mausu (la Souris Verte)
"Elles sont amaigries
Les mains qu’il joint
Lui pour qui je joins les miennes"
Yamaguchi Seishi (1901-1994)
Suite de notre palpitant dossier, nous prenons un peu de hauteur aujourd'hui jusqu'à nous élever dans la stratosphère de la pensée militante, pour dénoncer un fait social proprement scandaleux, inique et révoltant, rien de moins. A n'en pas douter, aucun domaine de l'activité humaine ne saurait être épargné par le phénomène moderne de la sous-traitance, qui sous ses dehors débonnaires d'efficacité industrielle et de ravissement béat du consommateur devant l'écrasement sans fin des prix, cache dans son arrière-boutique les violations de droits humains et de l'environnement qui permettent qu'un produit que personne ne saurait fabriquer de ses seules mains en moins de quelques décennies soit offert contre une poignée d'euros.
Fort heureusement éloignés de ces sombres vicissitudes, nos chers lecteurs-programmeurs n'en sont pas encore rendus à faire travailler des enfants ou à pulvériser des tonnes de produits toxiques pour gagner leur pain à la sueur de la main sur le clavier. Ouf. On notera cependant que la situation sociale dans les métiers de l'informatique n'est pas exempte des meilleures pratiques de précarisation ordinaire, avec de gentilles sociétés informatiques qui se dotent de conventions sociales dignes d'un roman de Dickens, et entretiennent une pratique décomplexée de l'exploitation du jeune diplômé à faire pâlir de jalousie les agences d'intérim. Le recours croissant à de la sous-traitance dans des pays à bas coût, qu'il faut bien aider les pauvres, pour de la production de code ou pour de l'assistance informatique à distance, achève de nous peindre un monde de l'informatique où il fait bon faire carrière.
Mais foin de tout cela, car je me fais rappeler à l'ordre par les souris qui se désolent de mes disgressions sur ces réalités sordides, alors que le sujet de notre article est d'un tout autre ordre, et qu'il serait temps de retrouver l'humeur pimpante et légère qui sied à un article écrit par de mignonnes petites souris vertes. De quoi parlons-nous réellement aujourd'hui, d'ailleurs ? Ah oui, c'est vrai, nous devions lancer un appel solennel et unanime à faire-le-soi-même son propre code avec ses petits doigts potelés, au lieu que de sans arrêt le déléguer à autrui qui l'avions écrit pour nous. Bon, cette introduction étant décidément sans espoir, et devant l'air navré des souris qui voient leur beau propos partir en sucette verbale, changeons vite de paragraphe pour nous racheter une conduite et un style, et rentrer dans le vif du sujet. En avant, marche !
Surtout ne fais rien, je m'en occupe pour toi
Cette belle proposition est le mantra de l'informatique moderne. Tout est donc organisé pour qu'aujourd'hui le développeur écrive de moins en moins de code, et passe donc ses journées à se gratter la tête pour comprendre comment réutiliser du code écrit par d'autres, ou à comprendre comment appeler le gentil service web qui est censé lui répondre en une nano seconde ce qu'il aurait mis trois jours à calculer par lui-même. Ce qui lui prendra parfois 5 jours d'analyse, allez comprendre.
Les promesses implicites qui justifient la multiplication de ces pratiques sont les suivantes :
- ceci permet de gagner du temps et de ne pas "réinventer la roue" à chaque petit problème qu'on rencontre
- ceci permet de bénéficier de code efficace, robuste et ultra-validé
- ceci permet de faire du code plus simple à maintenir sur la durée : le Gentil Développeur dont je reprends le code maintient sa petite fonctionnalité de son côté, je n'ai qu'à maintenir les 3 lignes de code qui l'appellent du mien, et en plus je bénéficie de toutes les avancées de son travail gratuitement et sans supplément. Le rêve !
Alors effectivement, si tout ceci était vrai partout et en toutes circonstances, l'équipe des Souris Vertes serait depuis longtemps en train de s'égayer dans les bois plutôt que d'écrire cet article inutile. Malheureusement, comme souvent ces promesses n'engagent que ceux qui y croient, et la réalité quotidienne de la tâche ingrate que l'on appelle "intégration" en informatique, par opposition au développement pur, et qui est un mot délicat pour signifier faire-rentrer-au-chausse-pied-ce -code-pas-de-moi-et-qui-ne-fait-pas-vraiment-ce-que-je-veux, est toute autre.
Permettons nous donc de reprendre un par un les points que nous avons cités, pour en dévoiler la face lunaire sombre et inquiétante.
Promesse 1 : plus de moins de temps
Promesse 2 : on ne va pas réinventer la roue, allons donc
En ce qui concerne ce fameux adage que j'ai moi-même entendu tant de fois s'agissant de produire du code informatique, eh bien personnellement aux souris vertes on ne voit pas trop le problème. Quand bien même on écarterait le fait que bien souvent, c'est une roue carrée ou carrément crevée qu'on essaie de vous refourguer discrètement, il est toujours plus épanouissant pour une personne de savoir inventer une roue par elle-même (vous sauriez le faire, vous ?) que de regarder quelqu'un d'autre le faire à sa place. A vrai dire, quand on regarde la société dans son ensemble, on voit vite que la plupart des gens passent précisément le plus clair de leur temps de travail à faire des choses redondantes ou superflues, la seule manière possible de garantir qu'autant de gens doivent s'astreindre à pointer 40 heures par semaine alors que des millions de machines font le plus gros du travail à notre place. Le chef de projet qui vous enjoint d'arrêter de programmer vous-même votre petite fonction ne passe-t-il pas son temps à faire exactement la même chose que des milliers d'autres personnes dans le monde sur des projets similaires ? Est-ce qu'on ne pourrait pas factoriser un peu sa fonction inutile, au lieu d'essayer de toujours factoriser le travail du développeur ?
Promesse 3 : testé et approuvé, puis retesté et réapprouvé
Ah, alors là oui, en effet, voici un argument de poids (boum). Quand on sait que tester du code est souvent bien plus long que de l'écrire, et même souvent inversement proportionnellement plus pénible, puisque 30 secondes de négligence d'un développeur peuvent coûter des journées entières de recherche de petite bête dans les rouages, on ne peut qu'être sensible à cette alléchante proposition. Et bien souvent elle sera honorée, si si, à condition tout au moins que l'on se tourne vers du code issu de projets sérieux et qui tiennent la route, car aujourd'hui le premier venu pouvant mettre à disposition de l'univers le moindre fichier qu'il vient d'écrire en 4 secondes sur un coin de table, la circonspection devra être de mise si l'on ne souhaite pas se faire refourguer de la vulgaire camelote encore plus buguée qu'un système d'exploitation grand public dont nous tairons pudiquement le nom.
Promesse 4 : plus rapide que l'éclair, et sans les brûlures
Ah c'est ici que le bât blesse, qu'il érafle, égratigne voire meurtit profondément notre petit programmeur confiant. Il est évident qu'avec tout le temps investi par d'autres sur ce code que j'essaie de reprendre, il va être d'une efficacité redoutable, bien plus rapide que ce que j'aurais pu écrire avec mes dix doigts tout seul dans ma cave.
Malheureusement, lorsqu'il (ou ils, parfois un petit code cache une armée de programmeurs tapis derrière les tapis...de souris) a écrit son code magique, notre ami anonyme n'avait aucune idée du contexte dans lequel vous alliez vouloir vous en servir. Autrement dit, à moins que vous ne repreniez un morceau de code qui fasse exactement, mot pour mot et à la virgule près ce que vous souhaitiez, eh bien il sera sous-optimal pour votre besoin. Très souvent, le problème vient justement du fait que le programme veut traiter tous les cas qu'il imagine que les gens vont rencontrer, donc il devient générique, complexe et bourré de traitements inutiles pour l'utilisation très limitée que vous vouliez en faire.
Supposons par exemple que vous aimeriez trouver une petite librairie qui permette d'appliquer une rotation sur une image au format JPEG (je ne vous demanderai pas pourquoi vous cherchez quelque chose d'aussi tordu, à chacun ses loisirs). Il est probable que vous allez trouver tout un tas de librairies de traitement d'image qui permettent de faire plein de belles choses, dont justement la rotation. Et probablement elles traiteront tous les formats d'images disponibles dans l'univers. C'est très bien, seulement la rotation que vous souhaitiez appliquer consiste peut-être en 5 lignes de code, quand vous allez reprendre des dizaines de milliers de lignes de code qui ne vous serviront à rien, et appliquer une méthode dont vous ne maîtrisez pas les performances et la consommation de ressources. Faut-il alors utiliser la Super Librairie ? Nous laissons cette discussion pour le dernier paragraphe passionnant de cet article.
Gardons tout de même bien en tête que le seul code vraiment optimal ne peut être écrit que par quelqu'un qui connaît toutes les contraintes et le contexte d'exécution, autrement dit vous, cher programmeur-lecteur. Et il y a dans la jungle informatique des bêtes féroces qu'il faudra absolument éviter de croiser, car elles vont plomber votre empreinte écologique programmatique à jamais, j'ai nommé les Gros Frameworks Qui Font le Café (alors qu'en plus en général on voulait seulement un petit chocolat). Ces bases de code tentaculaires sont généralement des monstres écrits pour garantir que le programmeur qui chausse du 47 ne programme pas trop Avec Ses Pieds, et donc lui imposer plein de contraintes et d'outils tout faits, résultat c'est le framework lui-même qui se charge de mettre les performances par terre au lieu du développeur qu'on pressentait peu scrupuleux.
De deux choses l'une : soit vous vous dites que vous savez programmer, et vous n'avez pas besoin d'un framework De La Mort. Même si vous programmez en équipe, deux ou trois conventions décidées ensemble suffiront à garder la cohérence de votre projet, sachant une fois encore que le framework n'a aucune idée de ce que vous allez programmer et donc ne vous aidera pas franchement à structurer le code intelligemment. Soit vous pensez que vous programmez comme un manche, et ce n'est pas le plus beau framework de la terre qui va vous sauver ; dans ce cas restez loin du clavier et allez plutôt faire un peu de jardinage, vous ferez moins de mal à la planète.
Promesse 5 : il n'y a plus qu'à le regarder grandir
Voilà, vous avez repris le petit, ou gros, ou Super Gros, bout de code qui vous manquait, et maintenant vous êtes sûr qu'en plus vous êtes tranquille pour les 10 prochaines années, le projet va suivre les évolutions et vous bénéficierez des nouveautés neuves gratuitement et sans aucun effort. Hum. Ceci, encore une fois, est vrai dans le monde enchanteur de Oui-Oui, mais un peu moins dans la forêt vierge des projets informatiques modernes. Car en effet, il n'est pas rare de rencontrer l'un des trois événements qui déciment nos attentes en la matière :
- les gens désertent, le projet s'arrête, plus d'évolution de rien du tout, vous voilà marron si jamais les besoins continuent d'évoluer (comme une évolution du standard JPEG pour reprendre notre petit exemple, même si c'est tout de même assez peu probable).
- pire, les gens se disputent et le projet continue, mais un autre groupe décide de faire un nouveau développement (ce qu'on appelle un branchement, ou un fork, "Si t'es pas content tu forkes", comme on dit dans le milieu). Que faire ? Qui a raison ? Qui est vilain ? Un vrai casse-tête.
- le pire du pire, tout d'un coup le ou les programmeurs décident que rien ne va plus et changent tout le fonctionnement de leur code, aucune compatibilité gardée, bref votre intégration part illico à la poubelle, et il vous faut remettre le métier sur son ouvrage à un moment où vous auriez bien d'autres choses à faire. Ah mais vraiment je vous jure.
Il faut donc un minimum de circonspection quand on choisit d'intégrer du code de projets externes, même s'ils présentent toutes les garanties de sérieux et d'intégrité, comme en atteste la destinée chaotique de projets open-source phares comme OpenOffice, Mysql, ou Gnome. Et on pourrait multiplier les exemples à l'envi.
Coder ou ne pas coder, telle est la question
"Dilemme de la proie
Fuir
Ou se cacher ?"
Midoriro no Mausu (la Souris Verte)
Bien bien, rendus à ce point de notre discussion, il est temps de se demander sans détour : faut-il, oui ou zut, utiliser du code écrit par d'autres, intégrer des applications tierces, utiliser des librairies externes ? Alors ? Les souris ? Ah, je vois qu'on a une réponse à ma droite : oui et non. Euh, super, merci les souris vraiment. Qu'est-ce que je vais écrire aux lecteurs qui défaillent d'impatience, avec ça ? D'accord, on me précise la réponse, on peut réutiliser du code dans les cas suivants :
- le projet donne les garanties de sérieux et de stabilité qui ne nous demanderont pas d'y remettre un jeton toutes les 2 semaines
- le code n'est pas trop complexe à utiliser, et est suffisamment documenté pour notre usage
- notre besoin de performance n'est pas énorme, en particulier nous ne souhaitons pas faire 10 millions de rotations d'images JPEG par seconde avec la librairie Lambda que nous avons trouvée
- le code que nous avons trouvé constitue une fonctionnalité simple et bien délimitée, il ne cherchera pas à faire le café à notre place
Il faut surtout savoir doser son effort : inutile de mettre de l'enjeu à recoder tout un truc compliqué s'il existe déjà par ailleurs et que vous n'en faites qu'une utilisation très anecdotique. Il existe même quelques cas où, très honnêtement, il serait suicidaire de se lancer dans une réimplémentation personnelle de certains algorithmes, sauf si vous aimez vous lancer des défis : toutes les librairies cryptographiques, les prises en charge de protocoles tordus dont la définition fait 2500 pages, etc.
En revanche, il reste un cas où il faudra presque toujours y aller par vos propres petits moyens personnels et à la lampe torche, c'est si votre code est destiné à être utilisé de manière intensive et qu'il constitue le maillon faible des performances de toute votre application. Comme dit précédemment, si vous devez implémenter 10 millions de rotations d'images JPEG par seconde, il n'y a pas, il va falloir vous retrousser les manches, et faire votre code de manipulation d'images aux petits oignons pour que pas un octet ne dépasse du processeur. Mais, franchement, n'est-ce pas ce qui rend la programmation si passionnante ? Qui pourrait préférer passer ses journées à réutiliser des API GoogleBook toutes faites au lieu de répondre à cet appel du monde sauvage de la programmation débridée ?
Bien programmer sa conclusion
Vous l'avez compris, aux Souris Vertes nous sommes loin de trancher systématiquement en faveur du code tout-fait-tout-prêt à être enfourné au micro-ondes, ou du code super custom fait par nos petits doigts agiles. N'en déplaise aux tenants de la solution de facilité de ne pas se poser de questions, il faudra toujours se la poser, la question, éventuellement revenir sur ses propres choix, et user de tact et de raffinement pour construire le meilleur compromis possible sans sacrifier la banquise au passage. En particulier, essayer d'enrayer un peu le report systématique de certains framework ou librairies ultra-gourmands mais que tout le monde se refile comme si c'était l'évangile ferait du bien aux ours polaires.
A vous de jouer maintenant ! Cela dit, si vous restez sur votre faim de vrais conseils de programmation concrets qui vous parlent de votre quotidien au moins autant que l'édition régionale du journal télévisé, ne vous éloignez pas trop, car lui suite de notre dossier promet de décoller vers des sommets vertigineux en la matière. On se retrouve dès que vous aurez retrouvé votre plus belle combinaison spatiale, et qu'on aura de notre côté fini de tailler nos crayons de couleur. A suivre !