60 votes

Fits on a floppy - a manifesto for small software

22 comments

  1. gingerbeardman
    Link
    Today I shipped 20 apps and a screensaver, and 18 of the 21 items are small enough to fit on a floppy disk. So I thought it would be fun to make this approach to software development into a manifesto!

    Today I shipped 20 apps and a screensaver, and 18 of the 21 items are small enough to fit on a floppy disk.

    So I thought it would be fun to make this approach to software development into a manifesto!

    20 votes
  2. [6]
    shoelace
    Link
    I like this manifesto a lot, short and simple, and a cause I admire in a world of hopelessly bloated software! I have an odd request: many Web 1.0-style "small web" sites which embrace technical...

    I like this manifesto a lot, short and simple, and a cause I admire in a world of hopelessly bloated software!

    I have an odd request: many Web 1.0-style "small web" sites which embrace technical simplicity – and which I therefore think your manifesto might have a decent level of ideological overlap with – still embrace these 88x31 animated Gif icons that were all the rage on Geocities and such a couple of decades ago. Would you be willing to make an "official" 'fits on a floppy' icon in this format? It would be really cool to have one which, when clicked, links to your manifesto!

    Even though of course anyone could make one for this purpose, I feel like the creator should get right of first refusal at making such a thing!

    15 votes
    1. [5]
      gingerbeardman
      Link Parent
      Fun idea! I'll put it on my list. Back in the day (~1996/7) I created some of those for the burgeoning emulation scene using, if memory serves, Microsoft GIF Animator....

      Fun idea! I'll put it on my list. Back in the day (~1996/7) I created some of those for the burgeoning emulation scene using, if memory serves, Microsoft GIF Animator. https://en.wikipedia.org/wiki/Microsoft_GIF_Animator

      6 votes
      1. [3]
        wysiwyg
        Link Parent
        I remember making edgy animated GIFs in junior high '98 with these software, fun times! Do you mind if I try making an icon too? I'd love to explore the idea.

        I remember making edgy animated GIFs in junior high '98 with these software, fun times!
        Do you mind if I try making an icon too? I'd love to explore the idea.

        2 votes
        1. [2]
          gingerbeardman
          Link Parent
          Sure! Though I can't promise I will use it. Here are some of my old ones: https://www.gingerbeardman.com/archive/pompeypirates/lgd.gif https://www.gingerbeardman.com/archive/pompeypirates/bee.gif...
          1. wysiwyg
            Link Parent
            those are pretty cool!!! I miss the wild west times of the internet, geocities, webrings, tripod sites...

            those are pretty cool!!! I miss the wild west times of the internet, geocities, webrings, tripod sites...

            1 vote
      2. virtualbub
        Link Parent
        I remember using Jasc Animation Shop 3 (I think it was 3) around 2000 or so. Honestly, even to this day I imagine it's better than most software specifically for animated GIFs. It was easy to use...

        I remember using Jasc Animation Shop 3 (I think it was 3) around 2000 or so. Honestly, even to this day I imagine it's better than most software specifically for animated GIFs. It was easy to use and actually gave you a lot of control! I feel like the only thing it's missing in a modern context is support for modern video formats for importing (obviously) and the color/dithering options were very limited.

        1 vote
  3. [2]
    bayne
    Link
    I've tangentially thought about this recently. Although a smaller binary does not necessarily mean lower requirements, it is a good eval I feel. With agentic coding lowering software dev costs, I...

    I've tangentially thought about this recently. Although a smaller binary does not necessarily mean lower requirements, it is a good eval I feel.

    With agentic coding lowering software dev costs, I think open-source developer effort should be directing their agent focus on optimization and minimizing bloat. We've always had this mindset that hardware outpaces software but I think we are at the opposite point now. We will have shortages of hardware, energy, and compute in general, so let's tweak the other side of the equation. Make existing hardware more capable via software.

    I'm thinking exploiting efficiency gains from specificity of applications. There will be more software overall but the coding agents would make it easier to execute.

    The externalities are also great: less power consumption, less e-waste, more jobs (IT is one function, not THE function of an org), and less tech mega corps (cost barrier of entry for in-house dev is lowered)

    Just need better open weight models that can run on consumer hardware and we are free finally

    9 votes
    1. gingerbeardman
      (edited )
      Link Parent
      I hope people and/or machines start doing it. It's not that difficult once you decide you want to do it. What I would say is that it should be a relatively easy transfer of knowledge from "which...

      I hope people and/or machines start doing it. It's not that difficult once you decide you want to do it. What I would say is that it should be a relatively easy transfer of knowledge from "which package can do that" to "which system frameworks can do that". Anybody or anything can glean that easily from the docs.

      The single biggest win with me creating apps to replace some old cruft in my login items was that my computer boots to desktop in about half the time.

      7 votes
  4. [3]
    Barney
    Link
    I like this a lot! I've long been a proponent of small software. There are 0 reasons for apps to be multiple hundred megabytes! However, this particular line got me thinking: What do we call...

    I like this a lot! I've long been a proponent of small software. There are 0 reasons for apps to be multiple hundred megabytes!

    However, this particular line got me thinking:

    Native only. No dependency bloat [...]

    What do we call native? What libraries on the system can you rely on? For GUI stuff, I suppose on iOS you can expect the UI libraries to be available everywhere, so I suppose those don't count?

    What if I'm targeting the Gnome distribution on Linux, which comes with the Gnome UI framework (GTK/Adwaita), can I omit those in my size calculation, since they're not part of my binary, they're on the system already?

    What if I'm using SQLite in my app? The library is available on virtually every system, but its .so file is larger than a floppy already.

    I would like some clarification :P I would love to add the Fits on a floppy label to my apps, but want to be sure that I'm using it correctly.

    4 votes
    1. [2]
      gingerbeardman
      Link Parent
      It's up to you, I guess. As soon as you start using dependencies you're unlikely to fit on a floppy. On macOS and iOS in almost all my apps I use only system frameworks, ie. Apple frameworks. Your...

      It's up to you, I guess. As soon as you start using dependencies you're unlikely to fit on a floppy. On macOS and iOS in almost all my apps I use only system frameworks, ie. Apple frameworks. Your final binary is what you are measuring. If you have to ship anything with your app then it counts, if you don't then it doesn't. Don't overthink it, try to fit on a floppy and go from there. And most of all, have fun!

      4 votes
      1. Barney
        Link Parent
        Thanks! For iOS it's a bit easier since there's at least a framework you can rely on. For linux, pretty much nothing is guaranteed to be on the system and there's no real OS-wide standard, so I...

        Thanks! For iOS it's a bit easier since there's at least a framework you can rely on. For linux, pretty much nothing is guaranteed to be on the system and there's no real OS-wide standard, so I was wondering where the line is drawn.

        Really cool idea! Cheers!

        2 votes
  5. [2]
    Grayscail
    Link
    I dont really care about file size, per se, but I like the idea of having your code being a complete repository that doesnt rely on fetching external sources or libraries. I want a single zip file...

    I dont really care about file size, per se, but I like the idea of having your code being a complete repository that doesnt rely on fetching external sources or libraries. I want a single zip file that I can run GCC or whatever and thats all I need. If I have a laptop with no internet access or I need an airgapped system, I want the source to be still usable.

    3 votes
    1. gingerbeardman
      Link Parent
      I hear you. There are valid reasons for using frameworks and dependencies. For example I use a web server dependency in my web server management in my app. But I think because the are so ready to...

      I hear you. There are valid reasons for using frameworks and dependencies. For example I use a web server dependency in my web server management in my app. But I think because the are so ready to add and use they are being overused.

  6. [4]
    d32
    Link
    Why the apple bias? Small Linux or Android apps don't count?

    Why the apple bias? Small Linux or Android apps don't count?

    2 votes
    1. [3]
      gingerbeardman
      Link Parent
      It's called specialism. I picked Apple 25 years ago and have developing for their technology ever since. I have made the odd Android and Linux thing, but they never made any money. Given that this...

      It's called specialism. I picked Apple 25 years ago and have developing for their technology ever since. I have made the odd Android and Linux thing, but they never made any money. Given that this is my job, that's a pretty important thing.

      8 votes
      1. [2]
        d32
        Link Parent
        I didn't mean you - you are free to choose your biases based on any rational, commercial and whatever other reason yourself. I was just surprised to see "a manifesto for small software" - title...

        I didn't mean you - you are free to choose your biases based on any rational, commercial and whatever other reason yourself. I was just surprised to see "a manifesto for small software" - title sounding quite general - focusing strictly on apple.

        5 votes
  7. [2]
    kacey
    Link
    (a propos of nothing, this revived an old memory of cramming more than 1.44mb onto a floppy -- thank you for that 😊)

    (a propos of nothing, this revived an old memory of cramming more than 1.44mb onto a floppy -- thank you for that 😊)

    2 votes
    1. gingerbeardman
      (edited )
      Link Parent
      Yes! I used to format with 80 tracks and 10 sectors on Atari ST to get ~800 KB an extra 80 KB over the standard 720 KB (80x2x9x512).

      Yes! I used to format with 80 tracks and 10 sectors on Atari ST to get ~800 KB an extra 80 KB over the standard 720 KB (80x2x9x512).

      1 vote
  8. [2]
    ntngps
    Link
    Every byte matters! Thanks for this. It's so hard to make something great in a world where pretty much everyone will settle for "good enough".

    Every byte matters! Thanks for this. It's so hard to make something great in a world where pretty much everyone will settle for "good enough".

    1 vote
    1. gingerbeardman
      Link Parent
      Right, it's a hard constraint to push for if people don't care one way or the other.

      Right, it's a hard constraint to push for if people don't care one way or the other.

      1 vote