I'm still trying to figure out how/why this makes sense as a goal. Building an application that runs across multiple platforms in congruent spaces makes sense: iOS and Android and Windows Phone. When you move to running the same application across Laptop vs. Phone style platforms, even on modern hardware, you're looking at capabilities and resources that are radically different. I can see wanting to share certain common code, but a library system ala npm, bundler, cpan, etc., would handle that better than sharing a common code base/project. What am I missing?
Think of the set of applications that can also be implemented as responsive web applications.
Now you'll be able to implement them with a native experience, without significantly increasing your costs.
What about games? I've got a load of games on the iPad, why can't I play them on my (hypothetical) touch-enabled MacBook Pro?
Why do I have to pay twice for everything?
This is just what Sony have done with Cross-Play - customers love being able to buy a game once and then be able to play it on their PS3, PS4 and Vita.
Microsoft apps are written using the MVVM (Model View, View-Model) framework. The idea here is that you would share almost all of your model code, and really only rewrite the view layer (XAML) per platform. You're also allowed to share the exact same views across platforms, but it's unlikely that will be a good experience for users, given the differences: screen sizes, input modalities, etc.
How is this really different from what exists today? You can write in C# for pretty much every MS platform already. If you're smart you're already writing your business logic with as little dependencies as possible on view specific logic so it's more testable, portable, etc.
Not sure if you have tried doing this. In practice, it's quite painful as you need to have a separate visual studio project file for each platform (phone vs tablet).
Further, the Phone implementation of WinRT is a subset of the tablet's, so sticking to the WinRT API alone isn't enough. Complicating matters further, the phone lets you actually use a Win32 subset which is not allowed on tablet.
This (appears to atleast) unify everything towards more of a write once, run on all windows platforms world.
The other key is that for people who have invested in other platforms, they know that they can get more bang for their buck on MS by buying one app everywhere. That would be a big deal for me if I ever come home to Windows.
You could say the same for a 4.3 inch phone vs. a 10 inch 2.5k, and, soon, 12 inch 4k Android tablet. And if you want radically different capabilities, phones have SIMs that are assumed to be single-owner while most Android tablets are multi-user. Processors range from 800Mhz single-processor with mediocre bus performance, to quad-core 2.3 Ghz. There really isn't any interactive software you wouldn't run on a mobile device, and if you grok Fragment on Android, you can write for any device geometry from a single code-base.
The true boundary between mobile and desktop computing is numeric computation. You don't want to mine bitcoin or your stock market rocket science on a mobile device, mainly due to burning through the battery in a trice.
It never made sense for things called Windows not to have a unified pool of apps. This is a significant improvement.
What about things like Keyboard and Mouse vs. Touch? Network Quality (Persistent highspeed connection vs. intermittent limited quality)? Available storage space (You can consider most desktop machines (1/4 terrabyte or better) unlimited in comparison to mobile devices? Multiple Large displays (not on all I know) vs. single small display? There's alot more there than numeric computation abilities alone to take into consideration.
There are reasons to sit in front of a couple large non-touch displays attached to an uncompromising $5000+ computer. But that's for the <5% that need that and they know who they are.
The other 95% will benefit from being freed from their veal cubicles and looking up at human faces while walking around.
As for mouse vs touch etc. I agree, I think. Microsoft should have made a touch OS that isn't Windows. They might get Windows fully evolved to span that gap about the time Android takes away the enterprise business.
You aren't quite seeing the full picture and including some interesting additional bits. The 'experience' of an app across devices - like WhatsApp portable (and then some) - is feasible with what they put in the keynote and what the lesser Scotts did later. It's never been a better time to be a .net/C# dev.
They put on display some pretty great tooling for sharing common code across platforms and tuning the experience per UI. With decent cloud integration, there's a smoother on ramp for C# devs to get to wide audience apps with less dev resource than most any other dev env I can think of.
Microsoft has been trying to run Windows on tablets since 2001, if not earlier. To me, this really is to bridge the phone/tablet barrier (previously you had two or even three separate apps, since tablets ran either Windows RT (ARM) or Windows 8 (x86)).