This may be kind of an ambiguous question, or might take more explanation than anyone is willing to provide, so don't feel obligated to respond.
I've been using Windows since Version 3.11 came out, but I've never really thought about it from a programming viewpoint. My main Windows development application has been Visual Basic, starting with Version 4. It seems to me that Visual Basic allows one to kind of stay at a distance from the OS, and, until recently, still allowed building applications that would work with the latest Windows versions.
I've reached a point now where I would like to start working on programs that are a little closer to the OS level, which means that I will need to change programming applications. That brings up some questions about compatibility.
When I did programming for a living, compatibility was not an issue because all the clients I worked for had uniform systems (Same OS, and pretty much the same hardware) for my applications to run on. I knew what the system specifications were, and made sure I made sure that I did the programming on systems that were similar to the client's.
Now that I am thinking about moving forward, or maybe backward a little, I've started wondering about the compatibility issues. I'm aware of the obvious ones, like the Windows versions that were built on the NT platform as opposed to the ones that weren't. I think that started with the Windows 3 series, but I'm not sure. As well as I can remember, Win 95 was the last non-NT based version.
Looking at the present, though, something a little different seems to be happening. Windows 7 and 8 are considerably different from 2k, XP and Vista. As I understand it, Windows 7 was the first true 64 bit OS (If you got the right version.) that Microft produced for general sale, and I can understand why that change would have an effect on what applications would run on it.
Now we get to the question. Wasn't it possible to develop a 64 bit OS version that was transparently backwards compatible with 32 bit applications? When I asked myself that question, I realized that I really don't know what the major differences are between the 32 and 64 bit OSes.
I realize that an answer to this will not easily fit in a nutshell, but I would really appreciate it if someone who knows more about OSes than I do would take the time to let me know what the major differences are. The differences that are making it difficult to run 32 bit, and even 16 software on Windows 7 and 8.