Pour une équipe de développement Web, l’optimisation du code s’apparente souvent à une simple bonne pratique. La puissance machine est telle qu’en dehors de traitements bien particulier, un code non optimisé est à peine perceptible pour l’utilisateur.

Ce n’était pas le cas quand j’ai commencé le développement il y a bientôt 25 ans.

La « jeune » génération de développeurs ne connait plus SQL et le fonctionnement de base des bases de données alors qu’on n’a jamais manipulé autant de data !

Je suis toujours surpris qu’on me regarde avec des yeux ronds quand je parle de 3FN ou de jointures externes…

Je vous rassure tout de suite, je ne vais pas vous chanter la vieille rengaine « c’était mieux avant ». Je ne veux pas non plus tomber dans la généralisation abusive(1). Ce que je vous raconte là n’est que le fruit de mes observations personnelles. C’est ce que je constate dans la plupart des équipes projet avec lesquelles je travaille.

Les frameworks font tout le boulot et à bien des égards, c’est une très bonne chose ! Ça a énormément d’avantages et ce n’est pas pour rien qu’on en est arrivé à cette manière de développer.

Pourtant en termes d’éco-conception(2), ça pose quand même un certain nombre de questions…

Peut-on vraiment optimiser si on ne sait pas ce qui se joue derrière l’appel d’une fonction ?

Le numérique tel que nous le connaissons actuellement repose sur l’utilisation de machines performantes, renouvelées régulièrement. Or, on le sait désormais sans ambiguïté, la plus grosse part de l’empreinte environnementale est imputable à la fabrication des terminaux.(3)

Le volume de données stockées, la densité des échanges sur les réseaux, les traitements supplémentaires demandés aux machines, sont autant de facteurs de consommation de ressources, donc d’énergie et d’obsolescence ressentie pour les possesseurs de matériel aux performances limitées.

Et si on repensait notre façon de concevoir nos sites et nos applis pour transformer les contraintes techniques en contrainte créative ?

Face aux enjeux auxquels doit faire face l’humanité, il est peut-être venu le temps de lancer des projets innovants en s’imposant d’être compatibles avec des terminaux légers, anciens, recyclés ou alternatifs ?

A titre d’exemple, j’adore l’initiative du projet Limites Numériques qui propose des formats de dataviz ultra légers et drôlement efficaces : Des dataviz en glyphes et emojis (notion.site).

En tant que concepteur et développeur d’applications, je trouve cette manière de penser hyper ludique !

En parlant de ludique, regardons un peu dans le rétro de l’histoire du jeu vidéo :

« Au début de l’histoire des jeux vidéos, les développeurs ont dû faire preuve de créativité pour répondre aux limitations techniques et technologiques de leur support. Comment faire mieux avec peu était un véritable challenge dans les années 70–80 où il fallait faire rentrer un jeu sur quelques méga ou kilo octets ou encore plonger le joueur dans un univers riche le tout dans un écran en 56 couleurs d’une centaine de pixel de large. » (source Inspirothèque des limites numériques(4))

Le roi des jeux vidéo, c’est bien sûr Mario !

L’optimisation de la mémoire était un tel défi pour l’équipe de réalisation qu’elle en a fait un véritable jeu. On ne peut qu’imaginer à quel point ce projet devait être stimulant pour les développeurs ! Remettons-nous dans le contexte de l’époque : Mario c’était un concept complètement nouveau pour lequel il fallait pousser la machine dans ses derniers retranchements.

« Super Mario Bros. was developed for a cartridge with 256 kilobits (32KiB) of program code and data and 64 kilobits (8KiB) of sprite and background graphics.[24] Due to this storage limitation, the designers happily considered their aggressive search for space-saving opportunities to be akin to their own fun television game show competition. » (source Wikipedia(5))

Comme beaucoup de monde, j’ai passé énormément de temps sur ce jeu sans même remarquer toutes les petites astuces des développeurs. Je vous en donne quelques exemples :

  • Les nuages et les buissons sont les mêmes sprites simplement recolorisés.
  • L’effet sonore joué quand Mario est blessé est le même que lorsqu’il rentre dans un tuyau.
  • Enfin, aviez-vous remarqué que pour l’animation des Goomba, le jeu n’utilisait qu’une unique frame ? Il s’agit d’une seule image statique retournée verticalement.
Même Luigi est un Mario éco-conçu, le même, en plus vert !

Évidemment, la problématique des développeurs n’était pas l’éco-conception, mais ils ont su réaliser un logiciel exigeant sur des machines à la puissance limitée.

Les scientifiques s’accordent tous à dire qu’une croissance infinie est impossible dans un monde aux ressources finies. C’est de la physique élémentaire et ça a été largement diffusé dès 1972 et le rapport Meadows.

50 ans plus tard, la tension sur les ressources naturelles, dont l’industrie numérique est une grosse consommatrice, se fait de plus en plus forte.

« On va extraire autant de métaux dans les trente prochaines années que ce que l’humanité a extrait jusqu’à présent. »
alerte la géologue Marieke Van Lichtervelde dans un article pour Libé(6).

On s’oriente tout droit vers des pénuries de certains métaux et donc vers une décroissance de puissance de nos terminaux dans les décennies à venir.

Mais restons optimistes (comme les développeurs de Mario) !

Il ne faut pas voir cette décroissance comme un élément négatif contre lequel il faudrait se battre mais plutôt comme une opportunité pour innover.

Commençons par nous inspirer de ce que nos aînés faisaient face au même genre de défis. En piochant dans les dernières innovations technologiques et en appliquant les recettes des anciens, on a un terrain de jeu exceptionnel.

Les ingénieurs sont joueurs. Trouver des solutions simples à des problèmes complexes c’est tout ce qu’on adore ! Ce n’est pas un retour à la bougie comme certains pourraient le penser.

Soyons inventifs ! Embrassons la low-tech et la décroissance pour concevoir des solutions d’avenir.

Itsumi Mario !

Sources

Photo de Izabelly Marques sur Unsplash

Vous avez besoin d’être accompagnés ?

Nos équipes sont à l’écoute !