Cette version du Bloc-notes de Windows ne pèse que 2,5 Ko, sans IA ni fonction superflue

Cette version du Bloc-notes de Windows ne pèse que 2,5 Ko, sans IA ni fonction superflue

Un ancien ingénieur de Microsoft a recréé le Bloc-notes de Windows en 2 794 octets. Une prouesse technique qui ridiculise l'embonpoint du logiciel moderne en envoyant un message fort à l'industrie du logiciel.

Tout le monde connaît le Bloc-notes de Windows – NotePad pour les anglophones –, ce petit éditeur de texte livré en standard avec le système depuis des lustres, qui servait ) l'origine à créer ou à modifier des fichiers de texte pur, sans enrichissement ni mise en page. Un outil minimaliste, maos essentiel, comme on en trouve dans tous les systèmes d'exploitation. 

Seulement voilà, depuis la disparition de WordPad, le petit traitement de texte fourni avec Windows, que Microsoft a enterré l'an dernier pour des raisons incompréhensibles, le Bloc-notes s'est enrichi et alourdi de diverses fonctions. La version actuelle pour Windows 11 embarque ainsi des onglets, la gestion de tableaux, des outils de mise en forme, et même un module Copilot : autant d'ajouts que personne n'avait réclamés et qui ont engraissé inutilement cette application minimaliste, au grand désarroi des utilisateurs "traditionnels" – et sans en faire pour autant un véritable traitement de texte.

TinyRetroPad : un Bloc-notes minimaliste vraiment optimisé

Dave Plummer, un développeur expérimenté, s'est dit qu'il était temps de rappeler ce que Notepad était censé faire à l'origine : ouvrir un fichier texte, le modifier, l'enregistrer. Rien de plus. Le résultat s'appelle TinyRetroPad, une version allégée et optimisée qui tient dans 2,5 Ko – 2 794 octets très exactement –, soit l'équivalent d'un SMS.

Plummer n'est pas un développeur lambda venu critiquer Microsoft de l'extérieur. C'est ancien ingénieur de l'entreprise. C'est d'ailleurs lui qui a créé le Gestionnaire des tâches de Windows, ainsi que plusieurs autres utilitaires qui font encore partie du système d'exploitation aujourd'hui. Son projet n'est pas une curiosité nostalgique : c'est une démonstration délibérée, publiée sur GitHub sous licence Apache 2.0, avec le code source complet.

TinyRetroPad : de l'assembleur, pas du JavaScript

La clé de cet exploit tient à un choix radical : TinyRetroPad est écrit en assembleur x86, directement compilé avec MASM 14 et compressé à la construction avec l'outil Crinkler. L'assembleur est le langage le plus proche du processeur qui soit, juste au-dessus du langage machine  – chaque instruction correspond à une opération machine précise, sans couche d'abstraction, sans framework, sans bibliothèque tierce.

La quasi-totalité des logiciels modernes sont écrits dans des langages de haut niveau – C#, Python, JavaScript, Swift – qui délèguent l'essentiel du travail à des bibliothèques d'exécution et des frameworks pesant plusieurs centaines de mégaoctets. L'approche de Plummer consiste à n'utiliser que les composants Windows déjà présents en mémoire, notamment le contrôle RICHEDIT50W fourni nativement par le système, évitant d'embarquer le moindre code redondant.

© Dave Plummer

TinyRetroPad est l'équivalent du Bloc-notes de Windows XP, avec une interface minimaliste à l'ancienne et juste les  fonctions essentielles : menus Fichier, Édition, Format, Affichage et Aide, boîtes de dialogue Ouvrir, Enregistrer, Enregistrer sous, Imprimer, Chercher, Remplacer, Aller à, réglage de police, retour à la ligne, horodatage, numéros de ligne optionnels et mode sombre. Toutes les commandes clavier de l'ancien Notepad sont reproduites.

TinyRetroPad : un exemple à méditer et à suivre

Ce que pointe Plummer va au-delà du Bloc-notes. Dans une vidéo publiée en marge du projet, il décrit le principe qui guidait les développeurs Windows dans les années 1990 : Notepad servait au texte brut, WordPad au texte enrichi. Chaque outil avait un périmètre précis, et le débordement de l'un dans l'autre était considéré comme une faute professionnelle. Ce principe a depuis disparu.

L'industrie du logiciel repose aujourd'hui sur une logique inverse : les frameworks s'empilent, les dépendances se multiplient, les bibliothèques chargées pour afficher un bouton pèsent parfois plus lourd que le système d'exploitation qui les exécute. Un projet Electron classique – l'environnement utilisé par des applications comme VS Code, Discord ou Slack – embarque un navigateur Chromium complet simplement pour afficher une interface, ce qui explique pourquoi ces applications consomment plusieurs centaines de mégaoctets au repos.

La puissance des machines actuelles masque ces abus : les utilisateurs tolèrent la lenteur parce qu'ils ont suffisamment de RAM et de puissance processeur, les développeurs ignorent le gaspillage parce que le compilateur compense leurs approximations.

TinyRetroPad ne propose pas de remonter le temps. Il rappelle simplement qu'optimiser devrait simplement être la règle. Et que s'appuyer sur d'énormes briques logicielles en comptant sur la puissance des machines actuelles pour compenser la lourdeur et la lenteur n'est qu'une façon de masquer une paresse intellectuelle et une incompétence en matière de développement d'application. 

Écrire un code compact et optimisé n'est pas une contrainte d'une autre époque : c'est une compétence, un choix, et une forme de respect envers les utilisateurs. La leçon que Microsoft devrait tirer de ce projet n'est pas qu'il faut supprimer les fonctions modernes de Windows, mais qu'il faut savoir quand laisser un outil tranquille : et que la simplicité est elle-même une fonction et une qualité. On ne peu que saluer Plummer pour cette magnifique démonstration qui devrait servir d'exemple à l'industrie logicielle.