Optimiser, c’est faire plus avec moins, c’est 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 connaitre énormément de détails sur le fonctionnement de l’ordinateur, du compilateur, des bibliothèques logiciels utilisés… mais loin d’être une obsession de puriste, l’optimisation est nécessaire quand on cherche à faire tourner un logiciel efficacement, plus rapidement, pour qu’il soit moins expansif en mémoire, pour le rendre accessible à tous – y compris ceux 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. Améliorer les performances d’un logiciel, c’est permettre de lancer plus de logiciel au sein de la même machine. C’est plus d’onglet dans votre navigateur, c’est plus de calques dans vos logiciels de dessin, c’est plus de pistes dans vos logiciels vidéo… le tout sans changer d’ordinateur.
Envie d’en savoir plus sur la complexité algorithmique?
https://en.wikipedia.org/wiki/Time_complexity
Mais à quoi bon ? Nos ordinateurs ne sont ils pas de plus en plus puissant ?
Pour éviter la pollution. 75% 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 nos logiciels qui fait que l’on en change régulièrement : systèmes d’exploitation se déclarant obsolètes et nouvelles versions nécessitant une machine plus récente, navigateur qui refuse de se mettre à jour car le système d’exploitation est trop vieux ancien, qui n’a pas connu cette situation?
En plus, s’il est fréquent d’entendre dire « Cela va de plus en plus vite« , ce n’est pas tout à fait vrai. Un Apple 2 sorti en 1977 disposait de 4 Ko de RAM. Un Atari ST sorti en 1985 disposait de 512 Ko, soit 128 fois plus. Un PC en 1995 de 32 Mo, soit 31,25 fois plus. En 2005 de 512 Mo, 32 fois plus. En 2015, 4 Go, soit 7,8 fois plus. En 2025, 16 Go, soit 4 fois plus. Certains choses se tassent et si la quantité de RAM ne fait pas tout, la question du renouvellement des ordinateurs n’est plus aussi légitime… et c’est précisément dans ce renouvellement que réside le problème !
D’accord, mais au delà de l’obsolescence, il y aussi de simples pannes, non?
Pas tant que ça. L’immense majorité du matériel est jeté fonctionnel ou comportant des pannes minimes – souvent logicielles – pouvant être réparé facilement – et installer GNU/Linux suffit souvent à les ressusciter. Des exemples? En voici issus de notre laboratoire.

Voici Pentacloide (1998). Il dispose d’un AMD K6 (Concurrent du Intel Pentium 2) allant à 290 MHz et de 128 Mo de RAM. Il dispose de 800 Mo d’espace disque, d’une carte graphique 2D et d’une carte graphique 3D ainsi que d’une carte son. Il tourne sous Microsoft Windows 2000. On peut aller sur internet avec (avec un navigateur spécialisé dans les vieilles machines), il dispose d’un traitement de texte, d’un tableur, d’un logiciel de présentation et de pas mal de jeux vidéo d’époque. Il fonctionne, en somme.

Voici Eliminator (1995), c’est un Thinkpad 760. Il dispose d’un Intel Pentium allant à 90 MHz et de 8 Mo de RAM. Il tourne sous Microsoft Windows 95. Son écran est tombé en panne en 2019 – réparable de ce que l’on sait, mais encore non réparé. Il est relié via sa prise VGA à un écran externe. Pour le reste, il fonctionne. Il n’est pas possible d’aller facilement sur internet avec mais il dispose également d’un traitement de texte, d’un tableur, d’un logiciel de présentation et de pas mal de jeux vidéo d’époque… il est même capable de faire tourner de manière fluide Duke Nukem 3D!

L’électronique ne meurt que si on lui coupe la tête !
En un mot comme en cent : à l’exception de quelques composants sensibles (typiquement les condensateurs et les piles), l’électronique ne meurt pas. Elle est (pratiquement) immortelle – du moins à l’échelle d’un produit de grande consommation : Une carte bien traitée peut tout à fait durer 40 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.
Et cela fait longtemps déjà 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 ?
Optimiser, mais également rester raisonnable dans ce que l’on fabrique ou programme
Bien entendu, 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.
Nous trouverons par exemple dans le renouvellement matériel des absurdités totales comme les écrans 4k sur des écrans de taille moyenne ou réduite – alors que cela ne présente aucun intérêt et provoque une augmentation considérable du travail de la machine; on en trouve même sur des téléphones ! Des années à produire des écrans avec de meilleurs résolutions de manière légitime n’impliquent pas de continuer indéfiniment: aujourd’hui, les écrans affichent les choses tellement finement que Microsoft Windows est en zoom par défaut – ce qui est tout à fait ridicule.
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.
Rejoindre l’EFRITS
https://efrits.fr/contact/
Comments are closed