Optimiser, c'est faire plus avec moins, rendre plus efficace, ne pas gâcher — ou moins. C'est une discipline qui consiste à ajuster son code, ses choix techniques, ses structures de données ou ses algorithmes pour obtenir un résultat plus rapide, plus léger, plus fluide ou simplement plus élégant. C'est une discipline difficile que nous considérons pleinement dans notre école.
L'optimisation exige de connaître énormément de détails sur le fonctionnement de l'ordinateur, du compilateur et des bibliothèques logicielles utilisées. Loin d'être une obsession de puriste, elle est nécessaire quand on cherche à faire tourner un logiciel efficacement, plus rapidement, avec moins de mémoire, pour le rendre accessible à tous — y compris aux personnes ayant des ordinateurs plus anciens — ou pour prolonger la vie d'un système.
Améliorer les performances d'un logiciel permet de gérer plus de clients sur un même serveur. C'est permettre de lancer plus de logiciels au sein de la même machine. C'est plus d'onglets dans votre navigateur, plus de calques dans vos logiciels de dessin, plus de pistes dans vos logiciels vidéo, le tout sans changer d'ordinateur.
Nos ordinateurs ne sont-ils pas de plus en plus puissants ?
Pour éviter la pollution. Une très grande partie de l'empreinte écologique du numérique a sa source dans le matériel. Or, nos ordinateurs sont extrêmement efficaces depuis des années déjà. Ce sont souvent nos logiciels qui font que l'on en change régulièrement : systèmes d'exploitation déclarés obsolètes, nouvelles versions nécessitant une machine plus récente, navigateurs refusant de se mettre à jour parce que le système est trop vieux.
En plus, s'il est fréquent d'entendre que « cela va de plus en plus vite », ce n'est pas tout à fait vrai. Un Apple II sorti en 1977 disposait de 4 Ko de RAM. Un Atari ST sorti en 1985 disposait de 512 Ko. Un PC de 1995 disposait souvent de 32 Mo. En 2005, 512 Mo. En 2015, 4 Go. En 2025, 16 Go. Certaines progressions se tassent, et la question du renouvellement des ordinateurs n'est plus aussi légitime.
C'est précisément dans ce renouvellement que réside le problème.
L'immense majorité du matériel est jetée alors qu'elle est fonctionnelle ou ne comporte que des pannes minimes, souvent logicielles, réparables facilement. Installer GNU/Linux suffit souvent à ressusciter des machines.
Pentacloide, par exemple, est une machine de 1998. Elle dispose d'un AMD K6 à 290 MHz, de 128 Mo de RAM, de 800 Mo d'espace disque, d'une carte graphique 2D, d'une carte graphique 3D et d'une carte son. Elle tourne sous Windows 2000. On peut aller sur internet avec un navigateur spécialisé dans les vieilles machines, utiliser un traitement de texte, un tableur, un logiciel de présentation et beaucoup de jeux vidéo d'époque. Elle fonctionne.
Eliminator, de 1995, est un ThinkPad 760. Il dispose d'un Intel Pentium à 90 MHz et de 8 Mo de RAM. Il tourne sous Windows 95. Son écran est tombé en panne en 2019, réparable de ce que l'on sait, et il est relié via VGA à un écran externe. Pour le reste, il fonctionne. Il est même capable de faire tourner Duke Nukem 3D de manière fluide.
À l'exception de quelques composants sensibles, typiquement les condensateurs et les piles, l'électronique ne meurt pas. Elle est pratiquement immortelle à l'échelle d'un produit de grande consommation : une carte bien traitée peut durer quarante ans.
Ce qui la condamne, ce sont les logiciels qui refusent de fonctionner avec elle. Ce sont les dépendances accumulées, outils sur outils, abstractions sur abstractions, qui créent une charge si lourde qu'elle rend le matériel obsolète.
Cela fait longtemps que la légitimité de ce cycle mérite d'être remise en question.
Pensez-vous que les logiciels d'aujourd'hui offrent mille fois plus de fonctionnalités ? Alors pourquoi consomment-ils mille fois plus de ressources ?
Rendre efficace ne serait pas une démarche écologique si nous ne nous interrogions pas aussi sur l'intérêt de ce que nous faisons. Certaines choses ne doivent pas être faites.
On trouve par exemple, dans le renouvellement matériel, des absurdités comme des écrans 4K sur des écrans de taille moyenne ou réduite. Cela ne présente aucun intérêt réel et provoque une augmentation considérable du travail de la machine. On en trouve même sur des téléphones. Après des années légitimes de progression de la résolution, continuer indéfiniment n'a plus toujours de sens : aujourd'hui, les écrans affichent les choses tellement finement que les systèmes doivent zoomer par défaut.
Au niveau philosophique, nous sensibilisons nos élèves afin d'éviter ce genre de gâchis. Il est inutile de réaliser un logiciel de la manière la plus légère possible si sa tâche première est déraisonnablement dispendieuse. Il ne faut simplement pas réaliser ce logiciel, ou trouver un autre moyen de rendre le service.
Source initiale : ancien article WordPress