Fits on a Floppy - manifeste pour les petits logiciels
(fitsonafloppy.com)- Le gonflement des logiciels désigne l’évolution qui a fait passer des applications tenant autrefois sur une simple disquette à des logiciels exigeant aujourd’hui des gigaoctets de stockage et de longs temps d’attente
- La disquette 1,44 Mo n’est pas une contrainte ludique, mais un critère de sobriété, fondé sur l’idée qu’un outil à usage unique peut parfaitement rester très petit
- Les petits logiciels visent un téléchargement rapide, une exécution immédiate, une faible consommation de mémoire et de CPU, une meilleure autonomie et la prise en charge des anciens systèmes
- Le texte insiste sur le principe d’utiliser uniquement du natif, d’éviter le gonflement des dépendances, et de faire en sorte que chaque ligne de code ait une raison d’exister
- Le badge Floppy est attribué aux applications dont la taille totale de téléchargement est inférieure à 1,44 Mo, et l’essentiel n’est pas la nostalgie mais une discipline de fabrication qui accorde de l’importance à chaque octet
Les critères des petits logiciels
- Avec le gonflement des logiciels, des applications qui tenaient autrefois sur une simple disquette exigent désormais des gigaoctets de stockage, de longs temps d’attente et une patience excessive
- La disquette 1,44 Mo est utilisée non comme une limite amusante, mais comme un critère de sobriété
- Si des logiciels capables de faire tourner des entreprises entières tenaient autrefois dans ce volume, les outils modernes, ciblés sur un usage unique, peuvent eux aussi rester très petits
- Les petits logiciels visent à se télécharger rapidement, à s’exécuter immédiatement et à réduire les chargements inutiles
- Ils respectent l’appareil de l’utilisateur en incluant une faible consommation de mémoire et de CPU, une meilleure autonomie et la prise en charge des anciens systèmes
- Ils reposent sur le principe d’utiliser uniquement du natif, d’éviter le gonflement des dépendances, et d’exiger que chaque ligne de code ait une raison d’exister
- Un logiciel qui fait bien une seule chose concentre mieux ses fonctionnalités, réduit les bugs et peut durer plus longtemps
Mesure et intention
- Le badge Floppy est attribué aux applications dont la taille totale de téléchargement est inférieure à 1,44 Mo, soit la capacité d’une disquette standard 3,5 pouces
- La taille affichée sur le disque est basée sur la taille du binaire universel rapportée par la plateforme de distribution du développeur
- La taille réellement téléchargée sur l’appareil peut être plus petite que la taille affichée, car le platform thinning ne livre que les éléments nécessaires au matériel visé
- L’essentiel n’est pas la nostalgie de la disquette elle-même, mais une discipline de fabrication selon laquelle chaque octet compte, les contraintes nourrissent la créativité et les logiciels doivent rester légers
- Comme exemple associé, le texte renvoie au billet sur la création du jeu primé de 39 Ko YOYOZO
1 commentaires
Avis sur Lobste.rs
À l’inverse, si l’on fait du lien statique pour la portabilité ou qu’on utilise un langage dont le runtime est moins courant, comme Janet, on dépasse largement ce seuil
Mon projet Decker essaie de réduire les dépendances externes, mais pour la portabilité il dépend de SDL et SDL_image, fournis avec lui. La version Apple Silicon actuelle pèse 6 Mo compressée, dont environ 4,6 Mo pour les dylib SDL et SDL_image. La build web démarre autour de 0,5 Mo si l’on part du principe que l’utilisateur dispose déjà d’un navigateur HTML5 raisonnablement récent, mais si l’on inclut aussi le navigateur, les dépendances montent à plusieurs centaines de Mo
Les fichiers deck bruts pour des applications et bibliothèques utiles peuvent ne faire que quelques dizaines de Ko, si le runtime est déjà là. Love2d est dans une situation comparable, reposant lui aussi sur SDL et plusieurs composants intégrés, avec 10 Mo compressés et 25 Mo décompressés. Avec Love2d, on peut créer des applis utiles de quelques dizaines de Ko avec seulement des scripts Lua et des graphismes vectoriels, mais là encore, c’est uniquement si le runtime est déjà installé
Si les ressources de développement étaient illimitées, éviter la dépendance à SDL serait un objectif élégant, mais pour la plupart des projets basés sur SDL, cela conduirait probablement à abandonner complètement le support des systèmes d’exploitation moins populaires plutôt que de gagner seulement quelques Mo sur l’installateur. Que l’on considère cela comme de la bloatification ou non dépendra du point de vue
Avant, le tout-texte pouvait sembler raisonnable, mais c’est rare aujourd’hui. Dans la liste des motivations avancées, seule la première est directement liée à la taille réelle du binaire brut ; les autres ressemblent davantage à des avantages séparés, agréables à avoir
En plus, ce site lui-même utilise environ 200 000 octets pour transmettre un manifeste de 1 600 octets
https://cdn.fosstodon.org/media_attachments/files/…
Aujourd’hui, les utilisateurs ne remarquent pas si un téléchargement fait 1,44 Mo, 2,88 Mo ou plus, et ils ne perçoivent pas non plus la différence au moment d’exécuter le programme
Il existait bien quelques applications tenant sur une seule disquette, mais la plupart des logiciels sérieux des années 80 et 90 étaient distribués sur plusieurs disquettes. Par exemple, Microsoft Word v2.0 sur 7 disques avec 2 disques supplémentaires, Lotus 1-2-3 sur 13 disquettes, et même Doom était sur 4 disquettes
L’idée de tenir sur une seule disquette n’était pas courante même à l’époque des disquettes, et tout le monde savait que les logiciels plus gros se distribuaient simplement sur plusieurs disquettes