It has been about a half-year since Microsoft hosted the Build 2011 conference, and I thought it was a good time to see how what was introduced there may have changed the direction of development in the Microsoft developer community. Specifically, the question is how Metro on Windows 8 is influencing things and whether or not it will blaze a path with wide and rapid adoption. This is a difficult question to answer without the benefit of hindsight in any case, but impossible without assessing the landscape that Windows 8 Metro-style applications will be fitting into (and in some areas competing against).
Success for Metro-style Windows 8 applications will hinge largely on developer attitudes. If there are enough compelling applications, this will enhance the desirability of the platform for end users. There is a chicken-and-egg relationship here that depends to a large extent on the opinions of developers in the months before and after the launch of Windows 8.
Scott Golightly, a Microsoft regional director and well-known speaker in the Microsoft developer community, noted that “If there is slow uptake on Windows 8, it could deter developers from creating applications for a platform where the potential customer base is smaller than other competing platforms. I am seeing a lot of individual developers that are excited about the possibility of creating new applications, but in general, IT departments and larger groups I have talked to feel that they already have enough work to do that they will not be adopting Windows 8 the day it ships.”
To echo the latter part of those sentiments, most developers I talk to have been inundated with wave after wave of new options in the ways they go about trying to accomplish their tasks. These repeated sea changes have bred a more cautious, even cynical community, even among those that have historically played the role of fanboys for Microsoft and others. I still regularly hear conversations on the value of migrating away from relatively ancient technologies such as Visual Basic 6.0 in favor of .NET, which reminds us that everyone does not automatically adopt the new thing just because it shows up.
When I see a new technology, my first reaction is cautious optimism. This attitude has kept me working with new technologies on a fairly continuous basis, but true success comes not from winning the early adopters. True success comes from the early adopters convincing the masses that the technology in question is the solution to a problem worthy of the effort to upgrade skills, upgrade code and risk careers. This is a multi-faceted problem that needs to be looked at from a variety of angles. For that reason, I have recruited a cast of thought leaders, including Golightly, to offer their opinions on the topic, lest my opinion weigh too heavily on the analysis here.
#!
OS adoption
In spite of the inevitable conjecture surrounding any new release of Windows as to whether the masses might pass on it, the consensus seems to be that, as is typical, Windows 8 will enjoy widespread adoption over time. That last part is critical to the perception of success for Windows 8 and Metro by extension. (Windows Vista is not generally viewed as a success, but it still sold millions of copies.)
In talking to Richard Campbell, principal at Campbell & Associates and cohost of the weekly Internet talk show “.NET Rocks!”, he prefaced by reminding me that, like me, his focus with the technology is on server-centric enterprise applications. From that perspective, he said, “My customers are just migrating to Windows 7 now, they won’t be on Windows 8 in general for a while yet. I am currently in discussions with a few enterprise customers about piloting tablets in the enterprise, and Windows 8 is at the top of their list.”
That’s a bit of a mixed message for Metro adoption. It is a positive sign that Metro on Windows 8 is factoring into plans even for organizations that are still bringing Windows 7 online. This indicates it has captured attention. On the flip side, these are likely long-term plans and are unlikely to bolster the first year of Windows 8 sales or the numbers of Metro apps available. Perhaps the enterprise is the wrong place to look for help in this endeavor, but there has been no lack of attention for the iPad in the enterprises I deal with regularly. Microsoft has to fight Apple on all fronts in this coming tablet war. Metro is the weapon that will decide things.
One possible scenario is that Windows 8 is widely adopted, but a deluge of Metro-style apps does not materialize. I do not think this is the future we will see. By bringing the Metro interface to Windows proper, there is a path toward unification of client interface across phones, tablets and possibly even desktops. The problem with Windows 8 on the desktop is that Metro seems to get in the way more than anything else. Matching my own experience, I have heard many people remark that the form factor of desktops is wrong for touch to be the primary interface.
Perhaps this is an indicator that Microsoft is betting on the desktop playing a much smaller role in the future, though I doubt that is an overt strategy, given that this is something Microsoft tends to deny in public forums, with CEO Steve Ballmer often citing huge adoption numbers and even Windows division president Steven Sinofsky touting the millions of Windows 7 licenses sold in the very first session at the Build Conference. It is a given that Metro-style applications cannot succeed without Windows 8 enjoying the kind of success seen with Windows 7. Thanks to the added potential of tablets shoring up the numbers, this seems to be a minor obstacle.
ARMed and dangerous
The promise of Windows 8 support on ARM devices has turned into a bit of a double-edged sword for Microsoft. At first it was fabulous news since it opened Windows up to portable devices, which had always been outside the operating system’s reach. Now, it seems that these ARM devices are almost exclusively the domain of Metro-style applications with a very limited desktop, and even the ability for the desktop version of the browser to support plug-ins such as Flash will not be included.
This could mean that these devices will act as not only a hedge for Metro, but will also serve as a bellwether for Metro adoption. If affordable and compelling Windows 8 ARM devices take a big chunk of the tablet market, then that is not only huge for Windows 8, but will also be a shot in the arm (no pun intended this time) for Metro development since that is exactly where the effort and restrictions of Metro development will pay benefits.
This is by no means a done deal. Unlike the Xbox, Microsoft is not making the hardware, and that means the tablet manufacturers could fumble. There needs to be a killer device for the masses rather than one that just appeals to techies. This is perhaps where Microsoft is most out of its element. Even with the Xbox, it is a technical community that the company serves from developer tools to server operating systems.
Like Windows Phone 7, Windows 8 Metro apps are going for the consumer space, and must compete and win there to be truly successful. If someone marketed an iPad-like, Windows 8 ARM-based device, I think I would find it much more appealing than the iPad itself, but I am not really the target market. My parents, kids and non-technical friends are the real prize in this contest for hearts and minds. Meanwhile, ARM support is already playing a role in some organization’s development plans.
No one buys a device because they are excited to use the operating system—not normal people, at least. This means that the App Store will be vital to Microsoft’s efforts. Getting it right does not ensure success, but getting it wrong will likely assure failure.
A recent interview of Angry Birds developer Peter Vesterbacka in Discover Magazine (January/February 2012, p. 74) called out how vital the App Store has become. In the article, he said, “Only with the iPhone and the App Store could Angry Birds be so successful. A lot of games we made before the iPhone were good games, but the market was not there. It was really difficult to get distribution if you were a small company in the times before the App Store.”
To this same point, Campbell said, “The combination of Windows 8 and the new Windows application marketplace represents a huge opportunity for small teams of freelance developers to build applications and put them into the marketplace for sale. It’s a new gold rush!”
This is the dream that motivates those of us preparing applications for the launch and soon after. I am working on a Metro-style application for the launch that integrates with social media systems and enables collaboration with the requisite cloud storage back end. While my team’s expectations are realistic, there is of course some of the hope for a breakout success fueling our motivations. Unlike many in this space, we are starting with the Metro interface, so our app will be available on Windows Phone and Windows-based tablets before we eventually port it to other platforms such as iOS and Droid.
There are several aspects to the app store that I care about as a developer offering an application. The first is the ease with which my customers will be able to find my app. Thus far this area seems well handled. Users will be able to search for apps by category or keyword, and even do searches from inside any other Metro application, thanks to the Search Charm. On the Windows Store blog for developers, a great deal of information has been made available, including insights into the design goals and how those goals are being realized in the implementation through such things as the navigation and search methods.
As a longtime iPhone and iPad user myself, I see a number of improvements over the Apple implementation of the app store: most importantly, the fact that Microsoft is not requiring an iTunes-style client, which seems to be the chief complaint among iDevice users. There also have been well-received demonstrations, including one in Las Vegas at the Computer Electronics Show in January.
Another aspect to the store developers will care about is how easy Microsoft will make it for an application to be deployed to the store, which also includes the requirements for it to be deployed. Unlike Apple, rather than just specify the rules and regulations that app developers must follow, Microsoft has provided a full-featured framework in the form of WinRT. WinRT embodies the design principles required for an app to be acceptable in the Microsoft app store. In past articles here, we have discussed critical elements of WinRT, such as asynchronous methods. In order for a touch interface app to feel right, the interface must always be fluid and responsive.
Learning from past experiences where mistakes made by developers have reflected badly on Microsoft (such as security), WinRT has left virtually nothing to chance. The framework itself enforces the standards. I am sure some creative developers will manage to use the tools to build something that is not acceptable to the store, but I expect that will be uncommon. This is a far cry from how things work with the Apple store, where applications often get rejected after having been on there for many months. At the same time, Metro-style applications can be written with a wider range of languages than have been supported on any previous Microsoft platform or framework.
#!
Corporate Metro apps
How corporations will deploy their own Metro apps without exposing them to the wider world is an important part of the story at release. There is a pleasant twist in the road at this point: Microsoft will enable desktop apps (i.e., non-Metro apps) to be listed and searchable in the app store.
To be listed, the applications will have to pass Microsoft’s Desktop App Certification. If you look at the certification requirements, you will see that most of them are about security and making sure the app does not hurt system performance. The difference in the experience for the user is that downloading the application is not via the Microsoft store, but instead made at the application developer’s website. This is still a huge opportunity, and Microsoft is still playing the all-important role of market maker. I believe the word is not fully out on this last part so I am very interested to see reactions to it.
In a Windows Store for developers blog post, Ted Dworkin, the Microsoft Partner Program manager for the store, explained the options available to corporations wishing to deploy Metro-style apps for their own use. After explaining that corporations can list their apps just like consumer apps, he pointed out that Microsoft will “also offer support for enterprises that want direct control over the deployment of Metro style apps.”
This other option entails pushing the app via a group policy within the corporate domain and managing it via PowerShell commandlets. On balance this is good, but I would say that it is not optimal. I really want my corporate deployments for Metro-style apps to be as easy as consumer-based deployments, but private in a secure way. I imagine a provisioning system where once I deploy my app, I choose to either offer it to the public or provide a list of users who can access it, or perhaps have an option for a shared secret in the form of a password or certificate. This is alluded to somewhat where the blog post states, “Enterprises can choose to limit access to the Windows Store catalog by their employees, or allow access but restrict certain apps.”
Having not yet tried the current company deployment options in the field, I cannot say how far from my preferred experience the corporate deployment experience will be from the ease of the consumer app deployment scenario. However, as described earlier, the rest of the story is pretty amazing.
The introduction of Metro on Windows 8 puts Microsoft in the running to really challenge Apple for the combined tablet and phone space. Microsoft has a strong record of entering markets late, yet still capturing prime-mover position. The strength of this gambit is that you know what the competition offers. You can then innovate while fixing the foibles of your precursors. This trick is hard to do unless you have billions of dollars and an R&D group at your disposal second to none, which of course Microsoft just happens to have.
If the strategy works, then the way I think it will shake out is that we may end up enjoying an arms race between Apple and Microsoft with some volleys fired by Google. Like the massive innovation that resulted from the browser wars, the big winner will ultimately be consumers.
To really understand what it takes for Microsoft to win the battle against Apple and others, I talked to Billy Hollis, partner at Tennessee-based consulting firm Next Version Systems, about Metro. Hollis not only has a great deal of experience with .NET, he is also a recognized expert on user interface design in developer circles. He said, “Metro is a big step for Microsoft to close the gap with the iPad on user experience. It exemplifies some good user experience design principles, such as putting ‘charms’ on the right side—that way, a right-handed person does not block the screen while accessing a charm.”
#!
Native or not
At the end of my discussions with the various people I talked to about where Metro on Windows 8 stands currently, I asked what is to be gained by ignoring Metro. The word “native” kept coming up. Metro-style apps are native apps on Windows 8, thanks to WinRT. Usually native means closer to the metal with fewer limitations, but that is not completely true with Metro since there are innate limits imposed—by design, in fact—on what a program can do when it leverages WinRT.
Campbell said, “There is always a place for native applications: Generic applications play to the lowest common denominator, and Windows 8 has such unique strengths that it would be foolish not to take advantage of the native platform. Besides, the native platform for Windows 8 represents three distinct development approaches, namely .NET, C++ and HTML5.”
When presented with the same query, Golightly commented, “If you have a program or utility that has a use case where the user would typically open that application and stay in it until they have completed the task, then certainly that could be written as a Metro-style application.”
Many of my own clients are wrestling with the Metro development question now. Bruce Backa, president and cofounder of NTP Software, which makes storage management and security products that mostly work on the server-side, described several places where his company intends to provide Metro-style interfaces to the back-end data their products collect and produce, but they are all long-term plans. There is no drive or need in his view to deliver these interfaces at or shortly after the launch, given that most of NTP Software’s clients are large enterprises.
This seems to be a consistent story that confirms that Metro’s success will mostly be decided by the consumer space. Hollis told me that his company is working with two clients on Windows 8/WinRT apps, both for mobile scenarios. He added, “Besides getting long shelf life by doing an application on a new platform instead of platforms with uncertain futures, we hope that the form factors of the Windows 8 devices will suit our needs better than what’s available today. We need high portability and long battery life, and we’re hoping some of the ARM devices will fit our needs.”
The one person who has been most excited about the invigoration of C++ after years of it playing second fiddle to C#, and to a lesser extent VB.NET, is Kate Gregory, partner at Gregory Consulting. She reported that her company is porting its Windows Phone app to Metro currently. I asked if it was converting it to C++, and she said not at first, but there will be evaluations to see what performance might be gained by basing the Windows 8 version on C++ now that the language is a first-class player on the new framework.
Tools support
The challenge ahead for Microsoft has thus far seemed daunting, but tooling is a real strength for Microsoft products, and all signs point to that remaining the case for Metro on Windows 8. No doubt the usual third-party control vendors are ramping up to leverage the new platform. Telerik, for example, confirmed that it is busy preparing offerings for Windows 8 Metro-style development.
Microsoft has spent the time to revisit all the controls it provides standard to ensure they work well with the touch interface while still preserving mouse and keyboard functionality. It has also introduced totally new Metro-supporting controls like the Semantic Zoom and the App Bar. The App Bar is the control that provides the bottom swipe functionality to show your application’s secondary commands, which are available readily, but not always displayed.
This area bears watching since component vendors are liable to save their best announcements for shortly before or at the official launch. I have great confidence that the controls available will make things even easier to accomplish with Metro, provided you have the business case sorted out.
There are many pitfalls to a technology being a breakthrough success, especially in these days of abundant choices. However, Microsoft is not new to this business, and the company appears to have learned from past missteps—and more importantly, from the missteps of others.
Ultimately, I think that Metro on Windows 8 will be a major force, and is worthy of any developer’s time to understand, learn and leverage where it fits. Based on where it does fit into the solutions space, there is still plenty of room for .NET and other technologies to play roles, so for those that feared the world would pass them by, this is not likely the case. At least not yet.
The big question in my mind is what trick Microsoft will pull out to make a Metro-sized move in server development and the other places where Metro does not currently seem to fit. Maybe the topic of a future article…