4 ms·
Minimalism is often a fantasy. If you want to make a great product for the end user you often have to much more engineering work in the backend to give the illu
by gizmo 4y ago
Minimalism is often a fantasy. If you want to make a great product for the end user you often have to much more engineering work in the backend to give the illusion of simplicity. You can click on any link to open a website, but there is a tremendous amount of complexity behind the scenes (DNS, TCP/IP, HTTP, SSL, routing) to make it all work. The abstraction is simple for the user, but complicated in reality. All of these individual technologies can (and perhaps should be) simpler and more minimalistic, but the totality of the stack is inherently complicated because it solves a hard complicated problem.
Suppose you want to make a new graphics app. Do you want users to easily create beautifully typeset documents? Then you'll have to do a ton of schleppy hard work to give the user the option to bend/morph/scale graphics to their taste. A "minimalist" graphics program isn't any good because then the designer won't be able to create what they have in their mind.
Code isn't written for other people. Code is written so the end user ends up with a great product that solves their problems. If you're lucky the code is minimalistic and beautiful, but usually you'll have to struggle through one schleppy problem after another to give users the features and performance they desire.
- fdsafdewe 4y ago>Minimalism is often a fantasy. In the software world, yes. The question we should be asking is "Does this product need a touchscreen / app / web interface?" There is no "minimal" way to invoke the efforts of half of the world's FOSS (and other) software developers so that you can have a "beautifully" animated button to dispense coffee (yes, my workplace has a coffee maker with touchscreen, and I hate it). As a software engineer who personally wrestles with this conundrum on a daily basis, I'd love to set up a "you don't need software" design agency.
- deleted 4y ago[deleted]
- heuermh 4y ago> I'd love to set up a "you don't need software" design agency. Sign me up! If it helps, I have an large collection of antique and vintage knobs, switches, pots, buttons, and sliders. ;)
- deleted 4y ago[deleted]
- valenterry 4y ago> Code isn't written for other people. Code is written so the end user ends up with a great product that solves their problems. Of course it is written for other people, at least if your future self counts as another person. Or is it write-once-never-look-at-it-again code? Then yes, but that's rare.
- bjornsing 4y ago> Minimalism is often a fantasy. True to some extent I guess. But in my experience “hipster perfectionism” is also a fantasy. It’s easy to think that if we make the user experience exactly the users (or in most cases actually some product manager) wants it then we’ll have massive traction. In reality that’s rarely what happens. In many cases I would say nothing at all happens. As an example I ran the analytics group at a moderately successful startup a few years back. The engineering team put in massive effort in a new release that would be so much more polished and easier to use. But when we looked at the numbers a few months later it was impossible to discern any meaningful change around the deploy date. I didn’t say anything about this to the higher ups of course, and neither did anybody else.
- gizmo 4y agoAbsolutely. No way to tell in advance if a big new release is going to work, and it's all too easy to make a product better in 10 unique ways that just don't matter. You can't A/B test yourself out a local maximum, and some point you have to go for a big new release despite the risk.
- robinsonb5 4y agoMinimalism 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.