"Software for windows platforms tend to be developed with easy ram upgrades considered more favourable than efficient code. Maybe with Macs there's more of an attitude to make it work on the kit that came out of the box"
I don't think it's a case of Apple trying harder to make software work on old hardware. They are primarily a hardware company. If anything making people upgrade more often would be good for their business.
Like OS X, Linux runs on old hardware. I think that's because it's well programmed.
Microsoft has always written bloated software. For example, compare the number of system calls made to serve up one static html on IIS:
and the same thing done by Apache:
Also consider that many applications run faster under Wine than they do in Windows, and that Samba has historically given better performance serving files than native Windows.
Åpple uses Carbon and Cocoa to build OS X . How many platforms and languages does Microsoft use? The more complicated you make things the more likely there are to be failures, and the more "workarounds" that have to be added to address faults.
One other big factor, I think, is Microsoft's staff retention. MS keeps their staff employed even when they are rubbish programmers or have barely any work to do. I've heard first hand from developers sent to coding conferences who log in at the conference, go shopping all day, then log out at the end.
This is an enlightening read: