Thinking About the Surface Neo and Duo Developer Stories (Premium)

Image credit: Clint Rutkas

Weeks before the October Microsoft hardware event, we speculated about a dual-screen Surface device and a Microsoft phone. Now that we know these two devices are, in fact, happening—they’re called Surface Neo and Surface Duo, respectively—we can move on and speculate about something equally important: What’s the developer story? Or, maybe stories, since Neo runs on Windows 10 and Duo runs on Android.

According to the Microsoft officials I conversed with at last week’s events, the software giant will go public with its plans for developers “in the next few weeks.” More formally, Microsoft wrote in its blog post about Windows 10X and the “dual-screen PCs” it targets that it would “be engaging with our app developer ecosystem … in the coming months.” I don’t believe it’s made a similar public comment about the Android-based Surface Duo.

So, let’s step back a bit and frame this discussion. As you may recall, Build 2019 was personally notable for two reasons: We were told—yes, we, it wasn’t just me—by very highly-placed Microsoft decision-makers that “UWP was dead” (their words) and was actively pushing a new smartphone past those who felt that ship had sailed. Since both of these tidbits were—still are—quite incendiary, I decided I would proceed carefully and get the community ready for these coming changes.

But before any of that had happened, I had written that “I think it may be game over for Microsoft’s Universal Windows Platform (UWP) apps platform” and I wondered what this meant for the Microsoft Store. At Build, Microsoft provided some clarity to these issues: UWP was dead, I was told, and Microsoft would no longer require developers to only deliver packaged Store apps via the Store; they would be free to distribute those apps via the web, like normal desktop application too. The Store isn’t/wasn’t “dead,” but it was no longer the focus. Just like UWP. So that’s what I wrote.

But Microsoft was less clear about UWP publicly, and while I’m sure they have their reasons, confusion has reigned ever since. I’ve also come under fire from UWP advocates in the developer space, and, I’d imagine, from some Windows enthusiasts who probably don’t even understand what’s really happening. Not helping matters, Microsoft has indicated—sometimes vaguely, sometimes not—that future Windows capabilities will be coming to UWP (as well as to other frameworks), and that this must mean, Paul, that UWP is not dead!

So, let’s address that bit.

Aside from the fact that I’m the messenger here and not the inventor of the “UWP is dead” message, here’s my take on what this really means: UWP is dead in the sense that it is no longer the focus of Windows 10/Windows application development from Microsoft’s perspective. After years of trying to ram Modern/Universal/whatever apps down developer’s craws, Microsoft has finally caved to reality, first in steps and then in a big way. The new reality is that Microsoft finally acknowledged that developers want choices. So Microsoft brought back WinForms and Windows Presentation Foundation (WPF) from the dead, and they have made them first-class citizens alongside UWP.

Under this new plan, UWP doesn’t just disappear; it can’t: UWP is the basis for all kinds of apps. But because Microsoft (stupidly or not) only brought some Windows capabilities to UWP for several years, it must now take the time to make those capabilities available to other frameworks. This takes numerous forms, but one example is XAML Islands, by which developers can now use UWP controls inside non-UWP (e.g. WPF, Windows Forms, and C++ Win32) applications. This is so new it requires Windows 10 version 1903.

So when you see UWP in an architectural drawing and assume I must have just made up the whole “UWP is dead” thing, please remember two things. I didn’t invent it. And Microsoft’s own actions point to this more heterogeneous future than just UWP and just the Store.

Speaking of architectural drawings, because Windows 10X—the new version of Windows 10 that will be included with the Surface Neo—is literally just Windows 10, it will naturally provide access to everything that normal Windows 10 offers. This means UWP, web, and Win32, according to Mary Jo Foley’s drawing. But also other frameworks that work on top of Win32, like WinForms and WPF. So I expect that we’ll see new versions of the Windows 10 20H1/20H2 SDK appear in pre-release form that provides new APIs that specifically target Windows 10X’s (for now) unique capabilities. In fact, I bet that starts happening soon.

Foley, for her part, is pointing readers to the Microsoft 365 Developer platform, which was first mentioned at Build 2019 as well and is the name for the overreaching developer platform that spans both Windows 10 and Office 365, plus Azure Active Directory and, perhaps, Microsoft’s device management services. This is all based on the Microsoft Graph, of course, plus new pieces like the Fluid Framework, Microsoft’s conversation engine, and much more. It sounds like a mess.

Put simply, I think the Surface Neo developer story is pretty well-understood. It’s the same Windows 10 developer story that emerged, if fitfully, out of Build 2019.

Surface Duo is, of course, another story.

The emotional, knee-jerk reaction from some Windows developers and enthusiasts was to pan the product for being based on Android and to demand that Microsoft declare a mulligan and base that device on Windows 10X instead. I don’t get that, for reasons I’ve already expressed. But it’s fair to say that the developer story here is a bit of a mystery.

But only a bit.

Microsoft already offers its developer base familiar Xamarin capabilities for bringing their apps and code bases to Android (and to iOS, too). Microsoft even offers a Microsoft 365 Developer platform-based solution called Project Rome that is a “device-independent platform for building people-centric experiences that span all devices,” including Android (and iOS).

Outside of Redmond, Google has already added support for dual- and folding-screen devices to Android, and Microsoft has said that it is “co-engineering” Duo with Google, so perhaps more APIs/capabilities are coming in Android 11 next year. Between Microsoft’s and Google’s already-understood efforts, I suspect we see the soul, if not the entirety, of the Duo developer story right there.

We’ll know the details soon enough. After all, this is exactly why Microsoft announced these devices now, as I had speculated before the event: It needs time to build capabilities into Windows (and, possibly Android) and to alert its developer base what’s happening. Once that happens, interested devs can get started targeting these futuristic dual-screen devices.

As important to me, there’s no need for hurt feelings or anxiety about the failed platforms and strategies of the past. Yes, I may be a bit too blunt for those who would prefer a more passive-aggressive approach. But I feel that my role is to be honest and set expectations accordingly. And that’s what I’ve done, what I tried to do at least, with both UWP and Microsoft’s new phone. If this ruffled a few feathers, and clearly it did, then I can only wonder what the hell is wrong with you. Kidding. I apologize. Some people clearly need a bit of sugar with the medicine. As clearly, I’m not that guy. And all I can do is keep trying.

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott