Hardware is cheap. Programmers are not. It makes much more economic sense to have programmers "use layers upon layers" and buy extra CPU, than to have a couple of x86 assembly gurus hand craft every opcode of your application.
Development time may be more expensive than hardware if you're developing internal software for a small-ish company, or something extremely niche, but less so when the bloat saves some time for your relatively small team in exchange for bringing massive pain to the thousands/millions of your users.
I personally refuse to use "bloated" software even when there's no alternative, but it's a drop in the ocean. Some of the folks I know can't take the same stance simply because they don't know that a text messenger doesn't have to eat half of your machine resources and slurp the battery to zero in half an hour of usage. For them it's just something you have to deal with.
Same with programmers.
It doesn’t make sense to make 1billion people buy more hardware bc a small bunch of programmers.
It has nothing to do with handcrafting asm. All the virtualization, virtual machines own little patchy frameworks which are unnecessary, virtual dom, the actual dom. Just to show a some text or a button on the screen which doesn’t adhere the OS Interface guidelines and probably doesn’t support screen readers, color scenes, font changes, dpi changes, proper behavior, keyboard navigation, scriptability.
Yes, I like things and people lean.
I hate this line of reasoning. Yes it is true, as long as you keep things reasonable. But many use this principle to go beyond the reasonable.
Slack probably has cost much more in electricity alone than it would have taken to build a more efficient client.
But seriously, if programmers hadn't several software levels to rely upon, a simple software tool would cost millions and would require an army of engineers or a few years to be completed.
Programmed a scroll bar for an UI toolkit once. That isn't as trivial as it seems and takes a while. A scrollbar...
So you piqued my curiosity. What are some examples of those non-trivial things?
It was implemented in C for a small display for debugging controller for a µC. It did take quite even without any dynamic content for something we take for granted. And in the end it still was pretty clunky.
I believe that browsers still disallow customizing scrollbars and there are countless examples of people having build their own scrollbars to replace them. Many of those are quite wonky, so that calms me down at least.
I guess it's one of those things we take for granted now and thus you think that it can't be that hard to create... and then you try to do so and you realize how complex some things really are.
Thanks for the details!
Programming doesen't exist in a vacuum. It has real business constraints, and you simply cannot make a perfect program. You must make the right compromises in order to be succesfull.