Fits on a Floppy - Manifiesto por el software pequeño
(fitsonafloppy.com)- La hinchazón del software es el cambio por el cual apps que antes cabían en un solo disquete ahora exigen gigabytes de almacenamiento y largos tiempos de espera
- El disquete de 1.44MB no es un límite juguetón, sino un criterio de moderación y la premisa de que incluso una herramienta de propósito único puede hacerse lo suficientemente pequeña
- El software pequeño busca descargas rápidas y ejecución inmediata, bajo uso de memoria y CPU, mayor duración de batería y soporte para sistemas antiguos
- Enfatiza el principio de usar solo nativo, evitar la hinchazón por dependencias y que todo el código debe tener una razón de existir
- La insignia Floppy se coloca en apps cuyo tamaño total de descarga es menor a 1.44MB, y el punto clave no es la nostalgia sino una actitud de desarrollo que valora cada byte
Criterios del software pequeño
- Debido a la hinchazón del software, apps que antes cabían en un solo disquete ahora requieren gigabytes de almacenamiento, largos tiempos de espera y una paciencia excesiva
- El disquete de 1.44MB se usa no como una limitación en broma, sino como un criterio de moderación
- Si antes software capaz de operar negocios completos cabía en ese tamaño, entonces las herramientas modernas, enfocadas y de propósito único, también pueden ser lo suficientemente pequeñas
- El software pequeño apunta a descargarse rápido, ejecutarse de inmediato y reducir las cargas innecesarias
- Respeta el dispositivo del usuario al incluir bajo uso de memoria y CPU, mayor duración de batería y compatibilidad con sistemas antiguos
- Debe usar solo nativo, evitar la hinchazón de dependencias y asegurar que todo el código tenga una razón de existir
- El software que hace bien una sola cosa puede tener funciones más enfocadas, menos errores y durar más tiempo
Forma de medición e intención
- La insignia Floppy se coloca en apps cuyo tamaño total de descarga es menor a 1.44MB, la capacidad estándar de un disquete de 3.5 pulgadas
- El tamaño mostrado en el disco se basa en el tamaño del binario universal reportado por la plataforma de distribución del desarrollador
- El tamaño real descargado al dispositivo puede ser menor que el tamaño mostrado, porque el platform thinning entrega solo las partes necesarias para el hardware específico
- El punto central no es la nostalgia por el disquete en sí, sino una actitud de desarrollo donde cada byte importa, las restricciones generan creatividad y el software debe ser ligero
- Como ejemplo relacionado, se enlaza la historia de desarrollo del premiado juego de 39KB YOYOZO
1 comentarios
Comentarios en Lobste.rs
En cambio, si haces enlace estático por portabilidad o usas un lenguaje con un runtime menos común, como Janet, te pasas de este criterio con facilidad
Mi proyecto Decker intenta reducir las dependencias externas, pero por portabilidad depende de SDL y SDL_image y los distribuye juntos. La release actual para Apple Silicon pesa 6 MB comprimida, de los cuales unos 4.6 MB son los dylib de SDL y SDL_image. La build web arranca en alrededor de 0.5 MB bajo la suposición de que el usuario ya tiene un navegador HTML5 razonablemente moderno, pero si incluyes el navegador, la dependencia pasa a ser de cientos de MB
Los archivos deck en bruto de aplicaciones y librerías útiles pueden quedarse en decenas de KB si el runtime ya existe. Love2d está en una situación parecida, montado sobre SDL y varios componentes integrados, y pesa 10 MB comprimido, 25 MB descomprimido. Sobre Love2d puedes hacer aplicaciones útiles de decenas de KB usando solo scripts Lua y gráficos vectoriales, pero, de nuevo, eso es solo si el runtime ya está ahí
Si los recursos de desarrollo fueran ilimitados, evitar la dependencia de SDL sería una meta genial, pero en la mayoría de los proyectos basados en SDL eso probablemente significaría renunciar por completo al soporte para sistemas operativos menos populares a cambio de ahorrar unos pocos MB en el instalador. Que eso cuente como hinchazón o no depende del punto de vista
Antes era razonable hacer las cosas solo con texto, pero hoy eso es raro. De la lista de motivaciones propuesta, solo la primera se conecta de forma directa con el tamaño real del binario en bruto; las demás son más bien ventajas separadas que estaría bien tener
Además, ese mismo sitio usa unos 200,000 bytes para entregar un manifiesto de 1,600 bytes
https://cdn.fosstodon.org/media_attachments/files/…
Hoy en día el usuario no nota si la descarga pesa 1.44 MB, 2.88 MB o más, y tampoco percibe diferencia al ejecutar el binario
Sí había aplicaciones de un solo disquete, pero la mayoría del software serio de los 80 y 90 se distribuía en varios discos. Por ejemplo, Microsoft Word v2.0 en 7 discos con 2 discos suplementarios, Lotus 1-2-3 en 13 disquetes, e incluso Doom venía en 4 disquetes
La idea de que algo cabe en un solo disquete no era algo común ni siquiera en la era del disquete, y todo el mundo entendía que el software más grande simplemente se distribuía en varios discos