3 ms·
Minimalism isn't always about eliminating or avoiding complexity - though sometimes it is; sometimes it's about having the discipline to avoid wastefulness. Ex
by robinsonb5 4y ago
Minimalism isn't always about eliminating or avoiding complexity - though sometimes it is; sometimes it's about having the discipline to avoid wastefulness.
External constraints can be the driving force here - I have a project which involves firmware running on a soft CPU in an FPGA. I'm targetting several different devices, but the project will no longer fit the smallest device if my firmware (code, working RAM and stack combined) goes over 12 kilobytes. In the middle of working on this project I took delivery of a new workgroup printer at work, the remote monitoring software for which was a 1.5 gigabyte download. And apparently we live in a world that sees nothing wrong with that!
- dale_glass 4y agoOther options were tried and rejected, or aren't viable. Eg, you have this 1.5GB of stuff, what's there? Probably: 1. Graphics and videos. Nice, high res, smooth animations showing how to operate the printer. 2. Frameworks. Because Qt libraries don't come with Windows. 3. Various dependencies In turn, each of those explodes due to human needs and convenience. Eg, you have an animation that says "Press here" in text. You sell the printer internationally. You'll probably have 20 different versions of it in every supported language. A large amount of complexity works down to human convenience -- Unicode requires large fonts and complex software Some is because the platform is what it is. Windows doesn't have a package manager, so it can't pull in libqt5 for you when you try to install an app -- so it has to come with the app. We've also agreed that every app shall bundle its own dependencies, because DLL hell was really hell, and trying to have one system-wide copy wasn't working.
- ferbivore 4y agoOn the contrary, it seems like you'd have to try very hard to ship 1.5 GiB of software. For example, Calibre is around 350 MiB. It embeds Qt, Chromium, Python and ICU, is fully localised, and has rather a lot of functionality. Video content can be fairly large, but a high-quality 1080p encode is around 500 KiB/s. Can you really pack an hour of instructional videos into some printer software? I can think of a couple ways that you could cross the 1 GiB mark, but none that would involve sane engineering choices or "trying and rejecting" other options.
- robinsonb5 4y agoTo be fair, bundling a Java Runtime Environment will give you a decent head start... Having to ship instructional assets in multiple (human) languages is a fair point, and one I hadn't considered - though in this particular case there are no movies or animations that I've seen. Most of Dale's points are correct, though - but that doesn't make it a sane state of affairs, and it saddens me that we just accept it with a sense of dejected resignation instead of trying to do better. I had (obviously naively!) expected the the microchip shortage to prompt a massive drive to extract every bit of value from the ones already in service.