The last few years have been trying times for Microsoft. Late to jump on the web bandwagon, they've never owned that platform the way they owned the desktop. Internet Explorer remains a decidedly un-sexy choice for web browsing, and Microsoft might never recover from the black eye that was Vista. Office now faces some really credible online competition, and Bing is still light years behind Google in the search engine war.
But the most unkindest cut of all has to be watching Apple ascend to become the world's most valuable company. I mean, it wasn't enough to watch the Mac chip away at Windows (many Windows developers, in fact, claim that Macbooks are the best portable Windows development boxes). The iPod never even flinched when the Zune came along, and the iPhone, of course, completely decimated Windows Mobile, which was already under heavy pressure from Palm. The coup de grâce might just be the iPad, which now has some declaring the death of the traditional PC. While it remains to be seen if (or when) PC's are really dead, there's no denying that there's already been a noticeable impact on PC sales, and it's very possible that this was a factor in HP's decision to get out of the PC business this week.
Will the last one to leave Redmond...
So is that really the end for Microsoft?
Not necessarily. I don't think we're ever going to see the heady days of near-monopoly that Microsoft enjoyed in the early 90's, but Microsoft is still huge, they make a lot of money, and you can still find their software on most business computers. The Xbox is doing well, Bing refuses to give up, and the newly-reborn Windows Phone 7 seems to be winning fans every day. Microsoft's Skype acquisition could give WP7 another shot in the arm.
But there's no mistaking the fact that "business as usual" isn't getting the job done for Microsoft. The Windows folks are now hard at work on Windows 8, but early discussions about HTML5 support in Windows 8 has caused quite a lot of anxiety among Silverlight developers, who fear they're now stuck on a legacy platform.
Mark my words: If Microsoft's Windows 8 strategy causes more developers to flee to the iOS or Android platforms, you can go ahead and cue the fat lady. You see, since the very earliest days of Windows, it's been the growth and productivity of Microsoft's development platform that's attracted developers, who built the applications, which attracted the users. Ballmer had it right way back in 2000 - they're in big trouble without "developers, developers, developers."
What developers want
Despite the momentum of iOS and Android, neither of these platforms can touch Visual Studio for developer productivity. All things being equal, this should make Visual Studio the automatic winner, and when Windows ruled the desktop, it was. Now that Windows is no longer the gorilla it once was, though, VS can't win on productivity because you can't use Visual Studio to produce apps that run on all the devices you want to support.
That's the "aha" moment.
Forget Windows vs. WPF vs. Silverlight. Visual Studio needs to support development of applications that run on all those platforms, plus iOS, plus Android. There's no reason Microsoft can't deliver this functionality in Visual Studio, and nothing short of this will be remotely close to good enough.
Don't take my word for it
About a week ago, Charlie Kindel announced that he was leaving Microsoft to go do his own thing. Charlie was the GM of the Windows Phone Developer Ecosystem, and before that, he led the Windows Home Server team. Although this background admittedly makes Charlie a little biased, in an interview on Geekwire, Todd Bishop asked Charlie an interesting question about mobile platform development:
If you build an app for your new company, which mobile platform will you target first?
Kindel: Hypothetically, if my new company were to build mobile apps, we’d target WP7 first. You know the old saying “Code Talks”: I know I can build a beautiful and functional WP7 app in a fraction of the time it would take to build an iOS or Android app. Startups are about executing quickly. But I’m sure we’d quickly take what we learned there and apply it on all the popular devices.
Right there, you have the value proposition for a cross-platform development tool, because although I think Charlie is right about the productivity gains on Visual Studio, I'm skeptical that most startups are really going to target WP7 ahead of iOS or Android. In fact, we're now on the verge of HTML5 being that go-to platform, and right now, HTML5 development tools are so immature that Visual Studio just doesn't have a productivity edge vs. anything else.
This is a big image problem for Microsoft now, and as more business apps need to target multiple platforms, it's going to start costing Microsoft more market share and more profits from its last real stronghold: businesses.
So, what do I want to see?
Ok, here's the todo list, Microsoft:
- It's beyond ridiculous that WPF and Silverlight continue to be separate. I understand that you can do more stuff on the desktop than you can do when you're deployed as an internet app. Fine. You don't need a whole other client framework for that. Stop it. Now. Thank you.
- I want to use the VS2010 layout tools I'd use for Silverlight development to build an HTML5 application.
- While we're at it, I want to deploy the same application to the Windows desktop (or tablet) or a Silverlight client, or an HTML 5 client, or even a native iOS or Android client. All of these clients use declarative, hierarchical UI layout frameworks, and all of them can support some form of .Net via mono.
- Xbox, too -- HTML5 would be fine, but I want to run the same apps there, too.
- If you can't (or won't) make Silverlight cross-platform on the client, then can it and double down on HTML5.
- End the fractured development tool practices that have plagued Microsoft. Silverlight vs. WPF is the classic example, but there have been countless examples of competing data access technologies and other frameworks, too. It feels confused and disjointed, and it's not helping.
With these things in place, Microsoft would have a real shot at being the premier development platform for business applications for another generation. I know that the position in the past has been to tie Microsoft development to Microsoft deployment platforms, but that fight is lost, and it's time to garrison the last thing that Microsoft still does better than anyone else on the planet.
With developers in-hand, there's no reason Microsoft can't fight to take back OS platforms on phones, tablets, and so on, but if they lose the battle for developers, the flow of apps will dry up, and there will literally be no way for stop the hemorrhaging.
- Is "Jupiter" the Future of Windows...PC, Phone &Tablet? (techcrunch.com)
- Web Vs. Native Development: There's No Winner (informationweek.com)