There’s one great thing about Microsoft products. This is persistency. This means in fact a lot of different things.
Microsoft really seems to protect your investment. Whatever direction the company takes, however you evaluate it, one thing to be certain the company perfects the idea and never drops you alone. This means that whatever programming language or programming paradigm, once set it proves to follow the hardware and platforms for decades. There are no U turns or lack of support, hence in my case it’s almost guaranteed that investment will be worth the effort.
Microsoft really seems to protect compatibility. I mean, I can run Lotus Organizer 6.0 (dated back early 90s) on Windows 3.1, 95, 98, Me, 2K, Vista, 7, 8 and now even Windows 10. Seems to be a general rule for all other types of software, even the finance management apps I’ve developed back in 2000s. Compare this to your OS-Xes, Debians and Ubuntus when trying to run something more complex than a script, preferably something that relies on a rich GUI and several third party libraries.
I had many ups and downs with Microsoft’s stack but whenever I hit rocks with compatibiity, I seem to be falling back onto battle proven platform that provides support for decade old technologies with proven deployment paradigms, device drivers and backward compatible APIs that I only find on Microsoft platform.