because they do not have to maintain compatibility with thousands of programs that are GPL.
But they have to make sure that popular programs, which often
do the wrong thing still work in newer windows versions.
This is the reason programs become "incompatible"- They change some undocumented or broken behaviour in some obscure DLL, and then suddenly they discover that company X's popular, thousand dollar application, Y was depending on
undocumented behaviour.
This is like when programs would assume that a handle was a 2-byte integer. They would litterally declare their handle variables as a short. the accepted method was to use the appropriate typedefs in windows.h- and they found out why when they tried to port their applications to windows 95.
Half the work of making a program "compatible" with a newer version of windows- in fact half of the investigation to find to cause, is done by MS, NOT the company who created to program.
So don't say that MS doesn't make any effort to keep programs compatible. Somehow I think stepping through the dissassembly for DOOM to make it run on windows 95 (this is MS, NOT ID software- ID software had the money from their sales and probably didn't give a rat's *censored*).
http://blogs.msdn.com/oldnewthing/This is why they create APIs rather then just spell out what behaviour should occur. this way, if they want to change the behaviour, they change the API, and then all the programs that were written correctly to use the API rather then make assumptions about the location of folders and registry keys will use the new method without recompiling a DLL.
Besides- Linux doesn't maintain very good compatibility between distributions. Half the time you have to make sure your kernel is correct, your compiling with the proper version of GCC, your not using some switch that bugs out with the newest version of the C precompiler.
All the while reseting a password on this supposedly "secure" operating system consists of simply deleting a file. I can totally see why security zealots love linux so much.