Le green-coding, la programmation éco-responsable
Pour réduire la pollution du numérique
L'enjeu écologique du green coding
Le numérique prend une part de plus en plus importante dans nos vies et son impact environnemental est donc dans une phase de croissance importante. La pollution liée au numérique est majoritairement due à la production des appareils (ordinateurs, serveurs, smartphones…) cependant l’impact de leur utilisation n’est pas négligeable d’un point de vue global et doit donc être pris en compte dans le contexte écologique actuel. Lorsque nous utilisons un appareil électronique, celui-ci consomme de l’énergie électrique contenue dans ses batteries ou provenant du réseau, cette énergie est précieuse et il faut donc l’utiliser le mieux possible. Dans un smartphone, 35% de l’énergie est consommée par le processeur, c’est-à-dire par les calculs servant à faire fonctionner le système et les applications. L’autre grande partie de la consommation est la connexion réseau (50%), ceci correspond à la réception et l’envoi de données. Ces deux parties du système sont souvent liées : une grande quantité de données reçues implique beaucoup de calcul pour le processeur, et inversement une grande quantité de calculs implique beaucoup de données envoyées. Nous déduisons de cette analyse que pour réduire l’énergie consommée par un appareil, il est nécessaire de se pencher sur la consommation de ces deux éléments du système.
Dans un appareil numérique nous pouvons distinguer deux parties : le hardware et le software.
Le hardware est tout ce qui va être matériel, c’est-à-dire les différents composants. Sur ce point seuls les concepteurs et fabricants des composants peuvent réduire physiquement la consommation. Ne faisant pas partie de cette catégorie nous ne nous attarderons pas sur ce point. Il reste alors la partie software, c’est-à-dire les logiciels, applications et toutes parties immatérielles de l’appareil qui lui permettent de fonctionner. Cette partie s’adresse à un plus grand nombre de personnes. En effet le fabricant apporte le système d’exploitation mais de nos jours, nous utilisons de plus en plus d’applications et logiciels créés par des développeurs annexes. Ces derniers cherchent à apporter constamment de nouvelles fonctionnalités et ont donc leur rôle à jouer dans la consommation énergétique des appareils. Ce sont finalement ces logiciels qu’il faut optimiser afin de réduire l’impact écologique du numérique et c’est cette pratique que l’on nomme le “green coding”.
Le green coding : méthodes et outils
L’optimisation est un processus essentiel du développement d’un logiciel pour rendre un produit attrayant et facile d’utilisation. Cela permet d’accélérer les fonctionnalités, diminuer les temps de chargement, avoir une interface intuitive… C’est donc avec les mêmes méthodes que l’on va pouvoir réduire la consommation des programmes, la seule chose différente est l’objectif final. Mais que faut-il vérifier et améliorer ?
Pour beaucoup de programmes c’est jusqu’à 80% des fonctionnalités qui ne sont pas utilisées à un instant donné. La première chose à faire serait de vérifier que seules les fonctionnalités en cours d’utilisation soient exécutées, pour ne pas avoir de pertes d’énergie inutiles. Vous l’aurez compris, le mot d’ordre est optimisation, mais il ne faut pas se contenter de limiter les fonctionnalités, il faut également réduire la taille des images utilisées, réduire le nombre d’interactions avec le réseau ou encore supprimer le contenu superflus d’une page pour aller à l’essentiel. Cela dans l’objectif de diminuer le stockage dynamique, limiter les ressources utilisées par la mémoire et réduire également les informations téléchargées.
Toutes ces solutions ont pour impact de diminuer les ressources utilisées par le logiciel et ainsi augmenter ses performances. Pourquoi n’a-t-on donc pas atteint une sobriété énergétique sur tous les logiciels et pages web ? Cela est dû au fait que ces solutions ne vont pas forcément dans le sens d’une meilleure expérience utilisateur pour les développeurs. Supprimer des éléments et limiter les échanges de données ne facilitent pas forcément l’utilisation, de ce fait l’intérêt économique de ces solutions est limité aux seules économies d’énergie, qui ne profitent pas directement aux développeurs.
L’avenir du green coding ne se situe pas dans le développement de solutions techniques permettant sa réalisation mais sur des mesures permettant de le valoriser ou de l’obliger. Aujourd’hui différents labels existent pour mettre en avant la sobriété énergétique des logiciels et sites web. Choisir un logiciel labellisé permet de s’assurer des dépenses énergétiques réduites et des performances optimales. Il est donc intéressant sur le long terme d’investir dans ce type d’outils car les économies réalisées lors de l’utilisation peuvent compenser un éventuel surcoût à l’achat. Ce n’est donc plus seulement aux développeurs de faire les efforts pour créer ces éco-logiciels mais c’est aussi à l’utilisateur de choisir ces solutions lorsque le choix s’offre à lui.
Par Alexis Ropartz