Hardware should be designed with software failure in mind, and in fact should survive being attacked by software deliberately written for the purpose of damaging the hardware.
Assuming the software is going to play 'nice' is assuming that there will be no bugs, that there never will be a successful exploit and so on.
Leaving it in the sun where it gets really hot can cause hardware damage.
Sitting on your phone can cause hardware damage.
Leaving headphones plugged in and in your pocket causes hardware damage (learned that firsthand).
They still warranty all of that stuff, and they are far more likely to cause damage than the "this driver is so bad it actually fried my CPU" idea.
1) I buy a macbook pro (covered under warranty, etc)
2) I install software that disables the fans
3) I update the firmware to disable the automatic shut-down when overheating (or move it so it only happens at an even higher temperature)
4) I run high-cpu software until the machine crashes
5) I repeatedly do this for months on end
I'm pretty sure that machine will be toast soon enough. Is it fair that I should then take it to Apple and ask for a new machine "because it's under warranty"?
Designing good hardware is hard, but it definitely can be done and a few ntcs and a crowbar are not going to break the bank.
You make a great point about why passively cooled systems are better though :)
Just my 2c.
Q: How many programmers does it take to change a lightbulb?
A: It can't be done, it's a hardware problem.
The implication of the joke is that if anything is 'hardware' you are not supposed to be either able to 'fix' it or 'break' it using just software.
Hardware is taken as a 'given', no matter how crappy the software you run on it, no matter how malicious your intent, the hardware is supposed to survive.
If you decided to try all possible pieces of software you could possibly run on your machine by simply enumerating them (yes, that's going to take a while) then you should not have to do a full hardware integrity test after every run.
Most devices you can render into useful bricks if you mess up their software.
At least like this you have the option to go back to 'factory settings' (ie, a blank start) and you can expect to get your device back to the way it was when you bought it.
In fact, back in the day it was possible to damage your keyboard through software. That must have been fun. Not.
The flash RAM and the li-ion battery can actually be physically harmed by incorrectly functioning software!
Long ago, there was a computer that had its databus wired up in such a way that reading from a '0' location in the ROM eventually fried the processor. They saved on a single buffer chip that would have avoided this and the design was 'fixed' in the next release.
Software should not ever be able to 'damage' hardware beyond slightly accelerated wear, such as when ordering a harddrive to repeatedly seek across the whole drive and so on. Tricks like that should not result in stuff burning up or dying, if it does that is just bad design.
The wear on the flash ram is just whatever it would be if you packed that number of writes in to a much longer amount of time and the li-ion battery discharge would simply mean that you get the same number of cycles but over a shorter life-span.
That doesn't count as 'physical harm', after all, then normal use also causes 'physical harm', it just takes longer.
The reason that happened was because they didn't have a 'safe range' on the frequency that drove the CRT, driving it too slow would burn up one of the coils in the high voltage circuitry that drives the coils to do the deflection.
Never monitors have been designed to shut down when presented with an out-of-range synch signal, and digital ones will display a message to that effect.