We are just a few hours away from Build 2014, and the most important set of reveals for Microsoft’s Operating System business in a decade. Yes, more important than Windows 8. Or Windows Phone 7. Or whatever other seemingly, at the time, critical reveals Microsoft has had. The reason for that is simple, the Operating System business at Microsoft continues to struggle. Sure it had a temporary reprieve with Windows 7, in what now looks like a “dead cat bounce”. But otherwise Microsoft’s relevance for software that powers hardware has been, at best, in a holding pattern for a decade.

What gets announced and talked about this week won’t be the launch of totally revamped products that change the world but rather products that tell us if Microsoft is getting its OS mojo back. Hopefully we will learn where Microsoft sees its core Desktop OS efforts going the next few years, the very thing it all but mortally wounded with the release of Windows 8. This is about more than just some continuing tweaks to make Windows 8.x more appealing to desktop users, it is about sending them a message that they are important and will have optimized support going forward. And it is about reassuring Win32 and a.NET developers that they have a bright future as well.

Next up is eliminating the arbitrary discrepancy between Windows for Tablets and Windows for Phones. Of the three major ecosystems only Microsoft has this disparity. iOS and Android are the same, and most importantly have the same development model, on all slate form-factor devices. On Windows the discrepancy has caused the app stores for both Windows and Windows Phone to stall. Many apps are available on one platform but not the other as developers are forced to choose between supporting one #3 platform or having two separate efforts for two #3 platforms. This has been devastating. Based on leaks it appears certain that after this week developers will be able to focus on one app for both the phone and the tablet (and of course, all Windows form factors).

At the same time its critical that Microsoft bring its app model to parity with iOS and Android, eliminating barriers that have caused leading edge apps to skip the platform. It can no longer be the case that underlying platform capabilities are blocked by the lack of support in the new APIs. We can’t have the most interesting new app categories skipping Windows devices because, after all the evangelism is done, they simply can’t get their app to work on Windows. Nor can we have the situation where some of Microsoft’s own properties find it easier to implement new features on Android or iOS than on Windows.

It is also time that Microsoft dropped the excuse that it is playing catch-up in the mobile OS space. If Windows Phone can’t be competitive at the user feature level in 2014 then it just never will be. Oh I’m not saying it needs to leapfrog Android and iOS and leave them behind, as if it ever could really do that. I’m saying that as users we have to be able to see Windows Phone as every bit as leading edge as Android and iOS. It needs to be at parity on everything that is important to users, and continue to innovate in ways that set it apart. Windows Phone 8.1 must be the end of the line on “catch-up” if Microsoft wants end-users and developers to commit to the platform.

Following on from last week’s clear focus on the cloud we need to see how Windows is going to be the best OS to power cloud-connected devices over the next decade. We simply need to walk away from Build 2014 believing this. As a user of the entire Microsoft ecosystem I see and enjoy the promise on a regular basis. But if I were a 100% Apple user or 100% Google user then my experience wouldn’t be much different. I think this is a tall order for Microsoft as the world, and especially developers, have to believe two things. The first is that in a 100% Microsoft ecosystem Windows-powered devices have to offer a better cloud-connected experience than in 100% Apple or Google worlds. The second is that Microsoft has to show why Windows-powered devices will be the best end-points in a heterogeneous environment. And they have to do that despite Apple and Google not playing nice. Apple is not a surprise since with the exception of iTunes they ignore the Windows platform. Google is a bigger problem as they have explicitly avoided legitimizing Microsoft’s Phone and Tablet offerings with Windows Store apps.

Lastly, the “Internet of Things” is the next frontier for the OS business and Microsoft has been fairly absent in letting us know how they plan to address that market. Keep in mind that this is another area where Microsoft was early, way too early. Now it is faced with the problem of being leapfrogged by the competition, and Google in particular. Microsoft can not let this happen. It must give its remaining development community a reason to stick with it as this new gold rush begins.

Fortunately through leaks and through what little information it has released, like the schedule of Build sessions, we know that Microsoft will be addressing most if not all of these areas. Will it be enough? Will the messages resonate with the believers and bring some non-believers back? The technical details are one thing, what Microsoft executives say during the keynotes are far more important. If they paint a picture of a Windows world that users and developers really want to play in then a revival of the Windows business is possible. If they fail to excite then they probably relegate it to a legacy business. Either way Microsoft will survive and prosper. But its future is a lot brighter if at the end of this week the key stakeholders are a lot more positive about the future of Windows than they were at the end of last week.

20 Responses to Let the Build 2014 games begin!

“…it is about sending them a message that they are important and will have optimized support going forward. And it is about reassuring Win32 and a.NET developers that they have a bright future as well.”

Hal-lelujah! As a developer that still believes the desktop (not the web, not WinRT) is the best place for our flagship app, this is what I want to hear today. I’m not hostile towards advances, I just want to know that Microsoft has my back on the desktop. However, considering there are only two sessions (one a panel discussion) directed at desktop developers, I have my doubts. Granted, there are lots of technologies with healthy futures that are getting limited air time (e.g. SQL Server), but desktop development is clearly not going to be a major theme. That said, if I could get clear assurances in the keynotes that continued investment in desktop apps is warranted, more than just an off-hand comment, then I’d be happy.

Well, they actually talked about the desktop, so I was pleased about that. The brokered contract (not sure I have the terminology right) makes it easier to call existing code from a modern app, and advances in that area will apparently continue, which is good. Although, that requires side-loading, which none of my small business clients would be able to do. I was also glad to hear from Satya himself. So some good stuff, but it is obviously all geared towards getting more developers and users on to the modern platform. Any thoughts that the desktop would experience some level of resurgence at Microsoft are gone. In spite of much outright hostility towards Windows 8, Microsoft isn’t changing their strategy at all, just making it a bit more palatable.

There were more direct “No” answers in the Channel 9 live interviews when asked if the desktop was being phased out. Although, the answers were kinda laughed out as if the question wasn’t legitimate. In reality, Microsoft doesn’t decide when the desktop goes away, its customers do. Still, it doesn’t appear to be any more than a legacy environment to Microsoft at this point.

I would never expect Microsoft to shift focus, as in away from WinRT and Store apps, back to Win32. They are for all kinds of good reasons the way to the future. What I expected, and seem to have gotten, was a move away from “let’s all jump off the cliff together” that was represented by Windows 8 and rejected by users. Now users, and developers obviously, will move to a blended and eventually new world at their own pace. Yes Microsoft will encourage that move in numerous ways, but it won’t try to force everyone to just jump.

Look how many years it took for people to migrate from MSDOS apps and a preference for the command line through to using Windows but running a mix od MSDOS and Windows apps and still occasionally using the command line, to running only Win32 apps and still resorting to a command line for occasional system management tasks? We’re in that kind of evolution. Oh, and many of us still launch CMD occasionally!

And I would certainly not be one to suggest that Microsoft shift primary focus away from mobile. That’s where Microsoft is behind and certainly needs to invest heavily. What I’m asking is that they not do to the desktop what they did with IE 6, which was basically to say, “We’re done! We’ve moved on! We’re not investing in IE anymore!” Until somebody made a better browser, and then suddenly they realized they needed to ramp back up.

Can Microsoft really not spare a dozen developers and a half-dozen testers to continue to make meaningful investments in the desktop development platform, the platform behind the cash cow that is generating the profits that Microsoft is using to catch up in mobile? The desktop has 10 years of life left. The only viable application framework for doing native code development for the Windows desktop is MFC, which pre-dates the Internet. WPF is dead cool, but it has no immediate-mode graphics, and C# takes the “safety” side of the performance/safety trade-off that is perhaps great for enterprise developers but not for ISV’s writing, oh, I don’t know, scientific visualization software. All I want is the same dev platform that Metro/Modern/8/Store app devs have now (XAML + native C++ + DirectX) made available on the desktop. After they do that, they can mothball the thing.

I just finished watching the Windows Desktop Panel at BUILD (http://channel9.msdn.com/Events/Build/2014/2-563). There are some continued investments in WPF, but it was stated that it is basically a mature technology (i.e. in maintenance mode) and in the same state as WinForms, so don’t expect much. That’s understandable. I figure that as long as the desktop is around, my Win32 app will continue to run. If the desktop development stacks are in maintenance mode, is the same true of the desktop itself? We saw WinRT apps running on the desktop. Does that mean that it will be a target environment moving forward, or is that just a stopgap measure until they can drop the desktop? It’s hard to get a clear read.

When I think back to MSDOS, it stopped being acceptable in the marketplace long before it stopped functioning, at least from my point of view (and yes, I know folks still maintaining DOS apps). That was a different Microsoft, and I don’t know if I have the same confidence they can clearly see the needs of their customers vs. their own agenda to push this new platform. Overall, there have been tidbits here and there that make me feel better than I did a couple of days ago, but the desktop is the one place where Microsoft still rules the world, and there ought not be any question.

In contrast, I think the ASP.NET guys killed it. Even if I was a Web Forms developer, I’d still have a lot of confidence that ASP.NET as a platform is here to stay.

I watched the panel discussion as well. I was somewhat encouraged, on two fronts. First, “XAML/C++” was mentioned and it sounded like many in the audience were in favor. I’m frankly not sure whether a “XAML/C++” effort would be considered an extension of WPF or some new thing.
Another very interesting thing one of the panelists said was, paraphrasing, “We’ve been very focused on the consumer side and therefore mobile devices, and we’ve been neglecting the desktop, and we need to go back and think about the desktop.” This is encouraging.
Yet another thing discussed was, for a 30″ monitor, even in a WinRT world, wouldn’t you want overlapping windows? I’m not sure if they said this, but it is then a natural extension that if different apps can be in separate overlapping windows, why couldn’t a single app itself have multiple overlapping windows? A discussion like that sounds like a re-invention of the desktop under the auspices of WinRT. If WinRT evolves in that way, I could see eventually porting our application to that model. There is a lot to be said for WinRT’s sandboxed automated distribution model that can overcome the objections IT departments have to installed software today.
It sounds to me like Microsoft, or at least this panel, thinks that spending the $10 million is worthwhile ;-).

In an interview with Mary Jo Foley, Terry Myerson made what I feel is a more definitive statement about the desktop than at BUILD. Still light on details of course, but somewhat comforting:

“MYERSON: We actually value using the desktop. I feel highly productive using it. It’s very familiar to me. We plan — (as) we talked about at the Build conference — to bring modern apps to the desktop. We are going to have machines that have a great desktop experience…

Well, if “desktop” is “absolutely core” to Windows, how about not abandoning the desktop development platform? Apple is not telling developers of Mac desktop applications, “Rewrite your Cocoa application in iOS and we’ll let iOS apps run on your Mac desktop in a window! Aren’t we wonderful!?!?!?!?!”
If Myerson is saying that the desktop of the future is windowed Metro/Modern/8/Store apps, the desktop has a dim future. For us to port our million-lines-of-code desktop application to Metro, it’s going to be incredibly expensive and it will have reduced functionality. I’ve got to go change everything to be async? I can’t load a JVM anymore? Can I embed OpenGL? What’s the ROI going to be? Windows RT has a long way to go before we could port our application to something that has anywhere near current levels of functionality. Also, Windows RT is a mobile app development environment. If we were going to “go mobile” with our application (which we actually already did), at this point we would build an iOS or Android viewer app or something (we have an iOS app). There would be zero support for writing an RT or Universal app with current market share levels.
Microsoft needs to continue moving the current desktop application development platform forward until such time as the replacement for it has a reasonable upgrade path. We’re not there.

Microsoft gets a C- from me for today’s series of keynotes. On the plus side, there is Windows Phone 8.1, which seems to be hitting the sweet spot. But as far as something major that would turn the app parity tide for phones or tablets, I didn’t see it. Universal Windows App is great for folks who are already inclined to make a Metro/Modern/8/Store app, but it doesn’t help somebody who already has an Android app. I was really hoping for an announcement around open source Android akin to what is going on with Nokia X. Didn’t happen.
And, like Joel, I am a desktop guy, and there was neither joy nor love on that front. Universal Windows App brings tablet and phone together. The desktop is out in the cold. There was that stuff about porting LOB apps to side-loaded Metro apps. But LOB apps are just toy apps anyway. Though its the only type of desktop app that Microsoft seems to care about anymore, because Microsoft cares about losing the enterprise, but they don’t care about losing ISVs whose applications don’t make sense as Metro/Modern/8/Store apps. There are like 3 sessions that have anything to do with the desktop scheduled for //build/. One is about porting to Metro/Modern/8/Store. One is a “panel discussion” of Microsoft folks who seem to have been left to go down with the desktop ship. The last one is about desktop enhancements in Windows 8.1 Update, which seem piddlier than piddly, but what would you expect in essentially a maintenance release?
Maybe the panel discussion will surprise me, but I’ve learned to keep expectations low.

Not going to mention names, but the one I work on is in the statistical and scientific visualization area. We’re growing 20% per year selling our software to companies whose names you would recognize, and not a single one is asking us to port our software to Metro/Modern/8/Store. They are all running Windows 7 at best. We can output HTML5 for distributing results generated on the desktop to mobile devices, browsers, etc.

But what about applications like Photoshop? Video editing tools? Visual Studio? When is Microsoft going to stop shipping a desktop version of Office, has that been announced? I don’t think so.

We’re not going to make the massive investment required to reengineer our application for Metro/Modern/8/Store until 1) our customers start asking for it, and 2) the facilities are available in Metro/Modern/8/Store that would allow us to create a satisfactory experience. In the meantime, we need a desktop dev platform that is continuing to advance, not one that is stuck in 2008 (at best) or 1992.

So what you are saying is that there are niches, particularly things that fall into a broader area I’d call “workstation-oriented” apps that are on the extreme trailing edge of movement away from the old model and it will be a long time until every niche can or would want to move. Fine. But what are, in specifics, the things that you need to increase your sales and improve the usage experience for your customers? And is there a consensus on the top priorities here from a substantial number of developers and customers for their apps?

Microsoft showed off a Store version of Office at Build. Until it ships we won’t know how much of the Office business it can subsume, but I am betting that desktop Office will be with us for years to come. The question then is, what features are the Office team asking for in Windows? I will bet you the requests, particularly as far as the desktop user experience goes, are extremely minimal. They are perhaps ZERO. Why? Well amongst other reasons because they know they’ll need to keep supporting Windows 7 for another release cycle or two and that limits how dramatic any change in the product family can be. And if they do want features it is to support underlying initiatives like better data protection, which are not desktop issues per se.

Visual Studio is running towards a cloud-centric model. What that means for the user interface I am not sure, but again I doubt they are begging Windows for new desktop user experience features. They also control most of their own experiences since the a.NET team, including WPF, are part of their world.

PhotoShop and similar apps are an interesting niche. There the question becomes what could make the Windows platform superior to OS X (and to a much lesser extent Linux) for professional and serious amateur photographers, designers, and graphic artists. This was a huge area of investment 5 years ago but I don’t know how Microsoft feels about the area these days. It largely abdicated the market above the OS to Adobe. So the question is, when Adobe CEO Shantanu Narayen meets with Satya (or Steve before him) is he presenting a list of must have and desired improvements for the desktop environment? And if so, what is Microsoft doing about them. My guess is that if Adobe, or a similarly large ISV, asks for things they can get quite a bit of what they want. That has certainly traditionally been the case.

BTW, it may actually be that Microsoft’s own apps (Office, Visual Studio) and players like Adobe are what stand in the way of giving you what you want. They could all be telling the Windows team that they would never use a XAML + Native C++ + DirectX stack, for example.

Note I’m not saying that Microsoft should ignore desktop development, but for them to make investments they need to be getting a good consensus of input from a substantial stakeholder base. We are seeing movement out of Microsoft in response to the needs of the LOB app community and others (e.g., new version of DirectX). If the workstation app community wants more love then it has to speak loudly and with somewhat of a consistent voice. I’m not sure if, or how well, it is doing that.

And, btw, your resource estimates are a fraction of what it would cost to do what you suggest. Even beyond the question of your development resource numbers you leave out documentation, marketing support, training, and technical support requirements. All told a revised development stack for the desktop environment likely is a 10s of millions of dollars per year level of investment. And that’s money that has to come out of some other potential effort. And that doesn’t happen until it rises to the top of the priority list, which cycles back to how well the workstation app community makes its case.