Last week, I wrote an opinion piece for The Guardian expressing concern that Microsoft's new Universal Windows Platform (UWP) APIs comprised a first step toward locking down the currently open consumer PC ecosystem.
Phil Spencer, the head of Xbox at Microsoft, responding on Twitter, said, "UWP is a fully open ecosystem, available to every developer, and can be supported by any store."
Journalist Keith Stuart at The Guardian wrote a follow-up article quoting Kevin Gallo, the corporate VP for Windows, saying, "The Universal Windows Platform is a fully open ecosystem, available to every developer, that can be supported by any store. We continue to make improvements for developers; for example, in the Windows 10 November Update, we enabled people to easily side-load apps by default, with no UX required."
Microsoft's participation in this debate has been courteous, level-headed, and free from corporate PR-speak. And its statements lead directly to the question at the heart of this matter: What is an open ecosystem?
In this piece, I will describe the history of UWP and the state of the UWP implementation as it exists today, for the purpose of analyzing whether it does indeed comprise an open ecosystem. And then I'll propose concrete changes that would, in my opinion, make it so, and enable users, developers, and publishers to trust it as a future basis for PC applications.
History of UWPThe UWP application programming interfaces (APIs) trace their roots back to the WinRT APIs on Windows 8 and Windows Phone 8. On Windows 10, the UWP APIs exists side-by-side with the more widely used win32 APIs that have been with us since the Windows NT days.
Broadly speaking, UWP aims to solve the problem of sandboxing and application security that has led to the wider occurrence of malware on Windows than, say, iOS.
The win32 APIs are difficult to secure because they are both extraordinarily broad in extent and extraordinarily constrained by the backward-compatibility requirements of hundreds of thousands of PC programs that consumers and businesses use. The APIs that AutoCAD uses in powering great industrial design applications, for example, are also what malware leverages to take over a user's PC.
By creating UWP, a new set of Windows APIs aimed primarily at consumer applications, Microsoft is starting from a simpler foundation and adopting a modern capabilities-based security model that is easier to secure and to trust. Should a given app be able to access the microphone? Access the file system's root directory? Install device drivers? These are problems that UWP and iOS similarly solve.
iOS is a secure operating system because Apple built a simple set of APIs that are sandboxed by a modern capabilities-based security model, unhindered by backward-compatibility concerns. That Apple manages iOS as a closed platform is an independent design choice that is very much subsidiary to the inherent technical security features of the platform.
This core technical idea behind UWP is a good one, and one that many industry participants would like to support were its positive benefits decoupled from the present design decisions constraining the UWP ecosystem.
UWP at Windows 10 LaunchWindows 10 was released to manufacturing on July 15, 2015. This release fully supported UWP applications and their installation through the Windows Store. However, to run UWP applications from arbitrary third-party sources, a user had to navigate through the menu tree Start → Settings → Update & Security → For Developers, turn on "Developer Mode" …
and then click through a warning screen.
The process by which developers create UWP apps, and users install them, on Windows 10 is described in Microsoft's "Packaging UWP Apps" technical documentation, which at the time of writing says:
"With UWP app packages, you cannot simply install an app to your device like Desktop apps. Typically, you download these apps from the Store and that is how they are installed on your device. But you can sideload apps to your device without submitting them to the Store […] The following list provides requirements for sideloading your app […] You must enable your device for development."
Microsoft's original policy intent on UWP is covered in another Guardian article quoting an unnamed Microsoft spokesman:
"Any developer can create UWP games using tools available at http://dev.microsoft.com, and load those apps on their computer or send them to others to side-load. To widely distribute UWP apps, developers currently have to register to sell through the Windows Store and follow the store guidelines to make their app available. However, there is no approval process to obtain development tools or develop UWP apps."
UWP TodayAs of Windows 10 update 1511 released in November 2015, the default setting for UWP app installation was changed as follows:
Does this new change mean that UWP is an open ecosystem? Let's take a look at what it means for developers, specifically: If you apply to become a Microsoft Registered Developer, and Microsoft accepts you, then you take a UWP app you have compiled and submit it to Microsoft. If Microsoft chooses to accept the app, then it will digitally sign the app using its DRM and return it to the developer, at which point the developer can distribute it to users, and users can manually install and run it on any machine with default Windows 10 Settings.
Is this open? You be the judge.
It's certainly a departure from the win32 precedent, in which any developer can compile a program, put it on a web site, and any user can install or run it by downloading and clicking on it.
If the goal is to enable users to securely identify the origin of a program (a worthy goal), then a centralized Microsoft approval process is unnecessary. In win32, any developer can obtain a digital certificate from a Certificate Authority, using the same open ecosystem that the web itself uses for digital signatures in the https protocol. This approach scales securely to millions of websites around the world and to countless win32 applications today.
It is true that Microsoft's process for developers registering and submitting applications for certification are, today, unintrusive compared to platforms like Xbox or even iOS. But to make Microsoft the sole arbiter of which developers and apps are allowed on the Windows platform is a dramatic change in status quo. Once Microsoft is in that position, there is no limit to the power they can wield over all of us in the future.
What is an open ecosystem?In an open ecosystem, developers and publishers are free to create and release software without the certification or approval of an operating system vendor. Users are free to consume any content they choose, from any individual or company. And all parties are free to engage in commerce directly with each other, without one corporation intermediating all transactions.
The Web is an open ecosystem. Anybody can register a domain and run a website which anyone in the free world can visit. Linux is an open ecosystem. The win32 APIs forming the foundation of major applications and games for Windows do, today, comprise an open ecosystem.
Software, and the content it contains, is a mode of human expression on par with speech itself, and the imposition of any centralized certification or censorship authority is of grave concern to the future of public discourse.
Toward an open UWP ecosystemIn an open UWP ecosystem, all sources of software would exist on equal footing — Microsoft's Store, Valve's Steam service, Adobe Creative Cloud, and the numerous developer web sites that provide software. And Windows would provide all developers with equal access to the Operating System features and services that are available to Windows Store itself in managing UWP applications.
Concretely, this requires that any Windows 10 or later PC with default settings:
This approach would give UWP all of the benefits of win32 as an open ecosystem and preserve the attributes that make PC the world's most widely used open platform.
Of course, every maker of every store is free to curate their shops however they like, and if they choose, then to require a certification process that considers quality or content. Microsoft in operating the Windows Store has the right to do this, but not the right to impose its certification regime on software obtained outside of its store.
The Microsoft commitmentFinally, I believe that Microsoft needs to make a clear, CEO-level commitment to the industry on the open future of the PC and UWP, if it does indeed intend for there to be an open future. Lacking that, I believe it would be foolish for the world's major developers and publishers to adopt this new technology based on mere assumptions about plans that Microsoft has not itself stated with technical clarity.
The past decade of Microsoft's churn in strategies and executives has seen the release of a major platform that prevented apps from connecting to non-Microsoft services on the Internet (Xbox 360), new PC app formats that were by default closed to non-Microsoft-approved apps (WinRT in Windows 8 and UWP in Windows 10), and a Microsoft-branded Windows PC (Surface RT) that were closed to all win32 apps except Microsoft Office. It is a rational industry response to have a degree of distrust over Microsoft's intentions.
Clear Microsoft statements and actions on UWP could mark the return of developer and publisher trust in Microsoft, which has a proud legacy founded in the early days of Windows based on great development tools and a great open ecosystem. We should hope for good news from Microsoft's Build Conference for developers on March 30.
Tim Sweneey is the CEO of Epic Games, the makers of blockbusters such as Gears of War and the Unreal Engine development toolset.
Source: Epic's Tim Sweeney: Here's how to keep Windows an open platform
No comments:
Post a Comment