say what you want about it, it works. hardware causes less headaches than software i think. you know the hardware is fine when the system posts, or when you pass memtest86. seems to me there are more layers in software than in hardware, especially on high end systems. i wonder how much cpu power gets squandered on just making every software subsystem plays nice with every other software subsystem. hardware on the other hand is just vast arrays of the same old stuff. same old logic gates over and over again. increase the word size? no problem, just stick 2 32 bit adders together and you got a 64 bit adder. your just making the bus wider. you might get some proprietary hardware (most gpus) but its all made out of the same old transistors, making the same old logic gates on the same old silicon die.
like with fpgas, a single generic logic cell can be connected to large numbers of other completely identical cells in varying ways, allowing you to spin a custom cpu out a generic assembly line part. someone even spun a feature compatible cray-1 on an fpga which could run native cray code. same chip could easily be reconfigured to be feature compatible with a completely different processor architecture, like x86 or arm (granted im not sure these things have enough cells to be configured as cutting edge chips). and this is all from an array of completely identical parts. its a tech i want to get into eventually.
with software you have an os, which by nature of trying to do everything is always gonna be bloatware. you have to supoport hardware with drivers, you need a framework in which everything operates, then you need to provide ui, multitasking, the ability to load software, and to talk on the net. for some reason the bundle an os with a bunch on applications that you could have obtained yourself. why use wordpad when you can get notepad++? when all this is bundled into an operating system, you dont really have control of the layers, you just trust the software to deal with it all for you. your not allowed to get rid of layers you dont want. just by shear brute force of processing power all this bull**** is instantaneous and you dont notice most of the time that its happening. you just have a machine patiently waiting an eternity for input occasionally entertaining itself with the bull**** as usual. you only ever notice it when you absolutely need the whole computer's resources to solve a single complex problem (like encoding a video) and it takes multiple times longer than should be theoretically possible given the speed of the hardware..