Fits on a Floppy - Ein Manifest für kleine Software
(fitsonafloppy.com)- Software-Bloat beschreibt die Entwicklung, dass Apps, die früher auf eine einzelne Floppy passten, heute Gigabytes an Speicherplatz und lange Wartezeiten verlangen
- Die 1,44-MB-Diskette ist keine scherzhafte Beschränkung, sondern ein Maßstab für Zurückhaltung und die Annahme, dass sich auch Werkzeuge mit nur einem klaren Zweck klein genug bauen lassen
- Kleine Software zielt auf schnelles Herunterladen, sofortiges Starten, geringe Speicher- und CPU-Nutzung, lange Akkulaufzeit und Unterstützung für ältere Systeme
- Betont wird das Prinzip, nur Native-Technologien zu verwenden, aufgeblähte Abhängigkeiten zu vermeiden und dafür zu sorgen, dass jeder Code seine Existenzberechtigung hat
- Das Floppy-Badge wird an Apps vergeben, deren gesamte Downloadgröße unter 1,44 MB liegt; entscheidend ist nicht Nostalgie, sondern eine Haltung beim Entwickeln, die jedes Byte wertschätzt
Maßstab für kleine Software
- Durch Software-Bloat verlangen Apps, die früher auf eine einzelne Floppy-Disk passten, heute Gigabytes an Speicherplatz, lange Wartezeiten und übermäßige Geduld
- Die 1,44-MB-Diskette dient nicht als scherzhafte Begrenzung, sondern als Maßstab für Zurückhaltung
- Wenn früher Software, die ganze Unternehmen betrieb, in diese Größe passte, dann können auch moderne, fokussierte Werkzeuge mit einem einzigen Zweck klein genug gebaut werden
- Kleine Software soll schnell heruntergeladen werden können, sofort starten und unnötige Ladezeiten verringern
- Sie respektiert die Geräte der Nutzerinnen und Nutzer durch geringen Speicher- und CPU-Verbrauch, längere Akkulaufzeit und Unterstützung älterer Systeme
- Es wird betont, nur Native-Technologien zu verwenden, Dependency-Bloat zu vermeiden und sicherzustellen, dass jeder Code einen Grund für seine Existenz hat
- Software, die eine Sache gut macht, hat fokussiertere Funktionen, weniger Bugs und kann länger Bestand haben
Messmethode und Absicht
- Das Floppy-Badge wird an Apps vergeben, deren gesamte Downloadgröße unter 1,44 MB liegt, also unter der Kapazität einer standardmäßigen 3,5-Zoll-Diskette
- Die auf der Diskette angegebene Größe basiert auf der von der Distributionsplattform des Entwicklers gemeldeten Universal-Binary-Größe
- Die tatsächlich auf das Gerät heruntergeladene Größe kann durch Platform Thinning kleiner sein als die angezeigte Größe, weil nur die für die jeweilige Hardware nötigen Bestandteile ausgeliefert werden
- Entscheidend ist nicht die Nostalgie für die Floppy-Disk selbst, sondern eine Haltung beim Entwickeln, in der jedes Byte zählt, Einschränkungen Kreativität erzeugen und Software leichtgewichtig sein sollte
- Als Beispiel ist der Bericht zur Produktion des preisgekrönten 39-KB-Spiels YOYOZO verlinkt
1 Kommentare
Lobste.rs-Kommentare
Wenn man dagegen für Portabilität statisch linkt oder eine Sprache mit weniger verbreiteter Runtime wie Janet verwendet, überschreitet man diese Grenze schnell
Mein Projekt Decker versucht, externe Abhängigkeiten zu minimieren, hängt für die Portabilität aber von SDL und SDL_image ab und liefert sie mit aus. Das aktuelle Apple-Silicon-Release ist komprimiert 6 MB groß, davon sind etwa 4,6 MB die SDL- und SDL_image-dylibs. Der Web-Build startet bei etwa 0,5 MB, unter der Annahme, dass der Benutzer bereits einen hinreichend modernen HTML5-Browser hat, aber wenn man den Browser selbst mitzählt, liegen die Abhängigkeiten bei mehreren hundert MB
Die Rohdateien von decks mit nützlichen Anwendungen und Bibliotheken können wenn die Runtime bereits vorhanden ist auf einige zehn KB begrenzt sein. Love2d ist ein ähnlicher Fall, da es auf SDL und mehreren eingebauten Komponenten aufsetzt, und ist komprimiert 10 MB, entpackt 25 MB groß. Auf Love2d kann man mit nur Lua-Skripten und Vektorgrafik nützliche Apps mit einigen zehn KB bauen, aber auch das gilt nur, wenn die Runtime schon vorhanden ist
Wenn Entwicklungsressourcen unbegrenzt wären, wäre es ein schönes Ziel, die SDL-Abhängigkeit zu vermeiden. Bei den meisten SDL-basierten Projekten würde das jedoch wahrscheinlich bedeuten, die Unterstützung weniger populärer Betriebssysteme ganz aufzugeben, statt nur ein paar MB beim Installer zu sparen. Ob man das als Bloat ansieht, ist wohl eine Frage der Perspektive
Früher war nur Text noch eine vernünftige Lösung, heute ist das selten. Von der genannten Motivationsliste ist nur der erste Punkt direkt mit der tatsächlichen Rohgröße einer Binärdatei verbunden, der Rest sind eher separate Vorteile, die nett zu haben sind
Außerdem verwendet die Seite selbst etwa 200.000 Bytes, um ein 1.600-Byte-Manifest zu übertragen
https://cdn.fosstodon.org/media_attachments/files/…
Nutzer heute merken nicht, ob ein Download 1,44 MB, 2,88 MB oder größer ist, und beim Ausführen der Datei spüren sie ebenfalls keinen Unterschied
Es gab Anwendungen, die auf eine einzelne Diskette passten, aber die meiste ernsthafte Software der 80er und 90er wurde auf mehrere Disketten verteilt. Zum Beispiel Microsoft Word v2.0 auf 7 Disketten mit 2 Zusatzdisketten, Lotus 1-2-3 auf 13 Disketten, und selbst Doom war auf 4 Disketten
Die Idee, dass etwas auf eine einzige Diskette passt, war selbst in der Disketten-Ära nicht allgemein üblich, und jeder wusste, dass man größere Software eben auf mehreren Disketten auslieferte