Microsoft held its first Build Developers Conference in September 2011. At last week's virtual Build 2020 conference, nearly nine years later, the company was still trying to clean up the mess after an experiment that went horribly wrong.
If you don't remember Build 2011, allow me to refresh your memory: That was when Microsoft released the Developer Preview of Windows 8. It was the first time the outside world had seen the company's vision for a new operating system to run on hardware that was designed to compete with Apple's iPad.
What made Windows 8 different was the promise that it would bridge the two worlds. It would run all your existing Win32 software, but a major selling point of the new OS was its ability to also run so-called modern apps that would either take over the entire screen or could be snapped alongside another app.
The Windows 8 Developer Preview included a roster of these modern apps that had literally been written as "How I spent my summer vacation" projects by Microsoft interns.
And that was just the first of many unforced errors that doomed Windows 8 and condemned the engineers who worked on its successors to years of clean-up duty.
Microsoft's vision was that the two app families would be separate but unequal. Modern apps, running on touch-enabled hardware using the Metro user interface, represented the future and would eventually replace the legacy desktop apps that had been the bedrock of the PC revolution for several decades.
Microsoft's customers said, "Not so fast." Those demo apps were replaced over the next year by more capable (but still underpowered), professionally written apps. After sampling those apps, most customers formed the general perception that their legacy Win32 apps (including Microsoft's own desktop Office apps) were for "real work" while modern apps were wimpy, dumbed-down, and generally not worth the effort.
You don't get a second chance to make a first impression, or so the saying goes. And that first impression stuck.
With the launch of Windows 10 five years ago, Microsoft tried to make those modern apps more palatable by allowing them to run in resizable windows alongside legacy desktop apps, but customers continued to stay away from the Microsoft Store, preferring those desktop apps, like Microsoft Office and Adobe Photoshop and QuickBooks and ... well, you get the idea.
It didn't help that the company kept telling developers to throw away their legacy code and build new apps instead. The Universal Windows Platform (UWP) was a shaky bet to begin with, but it became a complete non-starter once Microsoft gave up its ambitions for mobile devices. How many developers of productivity apps want them to also run on Xbox consoles or in HoloLens headsets?
Which brings us to last week's Project Reunion announcement. Microsoft long ago renamed the Win32 API to just the plain ol' Windows API, and now it's rolling up that API with the UWP API so that developers can add fancy modern features like the Share panel to their desktop apps.
This is one of those ideas that's so obvious you wonder why it didn't happen five years ago, and then you remember that the mobile dream was still alive for Microsoft in 2015. You could also look at Apple, which is creeping along at a glacial pace in its incremental efforts to turn iPad into a replacement for the MacBook, and you realize that trying to unify the mobile-desktop worlds is much harder than it looks.
If you want to see side-by-side examples of how far Microsoft went off the track and how much work it had to do to course-correct, look no further than the default browsers for Windows in 2013 and 2020.
Seven years ago, Windows 8 had two Internet Explorers: the classic legacy desktop app, with support for ancient features like ActiveX, and a full-screen, Metro-enabled version that played well in the Windows 8 sandbox but was just woefully out of place on a desktop PC or a laptop without a touchscreen.
Microsoft even managed to convince Mozilla and Google to develop Metro-style browsers before they pulled the rug out from under everyone.
Fast-forward to 2020 and Microsoft Edge, the new default browser for Windows 10 based on the open source Chromium engine, manages to incorporate those modern features and support touchscreen devices without alienating fans of legacy desktop apps.
There's your proof of concept that the old and new worlds can be united successfully, but there's one piece missing.
Please note that the new Edge is not delivered by way of the Microsoft Store but instead arrives through a very conventional mechanism, as a downloadable Setup file.
That is not a minor detail. Microsoft isn't even trying to ship its new browser or its most lucrative software product (Office/Microsoft 365) through the Store. Those consequential decisions are not a vote of confidence in the Store as a model for delivering packaged apps, especially to consumers and small businesses.
In the GitHub documentation for Project Reunion, Microsoft basically throws up its hands on the question of how new apps will make it to customers' desktops:
Your app does not need to be packaged to use Project Reunion functionality. ... If you have your own installer, we'll have instructions to carry the Project Reunion components with your app and how to install them using some common installers. ... Some parts of Project Reunion work better if your app is a UWP app, or Desktop Bridge, or has identity.
As my colleague Mary Jo Foley noted earlier this year, the Microsoft Store for Business is about to be deprecated, and the future of the Microsoft Store for consumers and SMB is uncertain, as "officials across various teams at the company have been trying to come up with a concerted strategy. ... My contacts say Microsoft is still focused on coming up with approaches via which users could trust, discover and download signed apps without them necessarily being in the Store."
And that's the missing piece of the Project Reunion puzzle. Microsoft's been reasonably successful at building tools that make its developers happy, including a new command-line Windows Package Manager that simplifies the task of standing up a dev workstation.
Helping developers write new apps is one thing. Convincing customers to adopt those new apps as replacements for their legacy desktop apps and Web-based services is a completely different challenge. So far, at least, Microsoft has failed to crack that code.