The whole "homogenize mobile and desktop" line of thought is what gave us garbage like Windows 8. Targeting all devices means you have to follow the lowest common denominator. That, or implement platform-specific code, which is basically what you'd be doing for any cross-platform program to begin with.
This is the biggest cock up of the all. Our enterprise workstations are on win7, and it will take several committees and quite a lot of time and money for a new O/S to be tested with all the applications in use, before preparing to test, train and upgrade thousands of staff and thousands of workstations.
Now there is growing interest in having certain key staff and data services going mobile with tablets and phones, but at this stage windows 8.1 is the approved platform for achieving that. Apparently there are parts of the development cycle for 8.1 which I cannot perform on win7, you have to have 8.1 components installed. On top of that, us in development cannot see the point in fapping around with 8.1 now, and would prefer to use one platform that covers all needs, which logically would be windows 10, but I can't see that being adopted for several years, given the total cost to the business that would be involved.
I am most likely being short-sighted and have not investigated too many options just yet, but microsoft seem to have really fucked up the entire development scene for large enterprises, shattering faith and confidence in the great .Net solution which was once supposed to end all disparity, and scattered development tools, frameworks and learning requirements across a range of platforms. We will indeed be stuck catering to the lowest common denominator, which microsoft do not seem to appreciate as they seem to believe businesses are happy throwing away all their currently running software and replacing the lot, every time they decide to mess things around.