I am still waiting to hear back from Microsoft about the performance issues I am having with my Windows 8 application, so that project is unfortunately on hold. In the meantime, I have been reading a lot about Windows 8 and reflecting on what it will mean long term for software developers.
Of interest, Microsoft finally released details on the four versions of Windows 8 that will be available: Windows 8, Windows 8 Pro, Windows 8 Enterprise, and Windows 8 RT (the ARM version for tablets and other mobile applications). The divisions between the standard edition and Pro are roughly the same as they are in Windows 7. The table in the Windows blog lacks details on what exactly comes in the Enterprise version that is not in Pro, and some of the details are a bit murky, but the missing information will interest system administrators, not software developers. For our purposes, we have everything we need to know.
In this post, Windows 8 "tablets" refers to Windows 8 RT on ARM tablets. As has been announced, Windows 8 on x64 devices (including any possible "tablets") will not be under the same limitations and this post is not discussing that version of Windows 8.
By and large, the big concern here is with Windows 8 RT. The one constant in discussions about Windows 8 is that people almost universally despise the Metro UI and the changes made to the legacy desktop for working with a mouse and keyboard. During my use of Windows 8, it has become clear that you will need to master a number of keyboard shortcuts to be successful with it on a non-touch UI, and it is very unpleasant inside a window'ed box like a VM console or a remote desktop session. While I tend to categorize some of the complaints as "folks who can't stand change," there is a lot of merit to many of the things people are saying. It doesn't matter if people are upset because they are unwilling to spend time learning the new UI, or if it truly does not work for them... the damage has been done. Windows Vista did not receive this kind of poor reception until after launch; one can only assume that Windows 8 will have a very tepid initial launch.
Windows 8's ace in the hole has always been the mobile story. A lot of people (especially enterprises) have been holding off on going all-in on iPads and Android tablets because they were hoping to be able to use Windows 8 instead. We've since learned that Windows 8 tablets will not run legacy desktop applications (not a complete surprise) other than what Microsoft makes, and we're now learning from the table in the Windows blog that Windows 8 tablets will not be able to join Active Directory domains. This is a major blow to Microsoft's chances. If a Windows 8 tablet cannot join a domain, and it cannot run existing applications, the only thing separating it from an iPad or Android tablet is that it can run the same Metro applications as x86/x64 Windows 8, and there are no plans for Metro apps to run on earlier versions of Windows. So right now, the only benefit to Windows 8 is compatibility with a single version of Windows (Windows 8) that provides few benefits on desktops and many drawbacks and is clearly disliked.
What does this mean for software developers?If you are a developer of consumer applications, I think Windows 8 will still be of interest. Windows 8 tablets may do well in the consumer space, though with iPad in the mix it is tough to say. Windows 8 Metro apps will have a wide open marketplace, and enough tablet sales with consumers to make Metro applications lucrative even if the overall sales numbers do not impress.
At this point, I think Windows 8 will not have rapid adoption in the enterprise like Windows 7 has enjoyed. Many administrators I talked to stated they will be skipping Windows 8 entirely; the Windows 8 story is just not compelling for businesses. It pains me to say this, but if you are an enterprise developer, you can safely not worry about Windows 8 for the time being. Your best bet is for typical data-driven apps to build websites (with mobile and desktop versions), and native mobile applications for the targets of choice on top of services. This has been my prescription for some time, and it isn't changing. Furthermore, with Windows 8 RT not being able to join Active Directory domains, and requiring applications to be written in a way that is incompatible with their existing code and PCs, there is no reason for enterprises to wait for Windows 8 when they can be buying iPads and Android tablets today.
I am very disappointed with this situation. Up until the versions announcement, Windows 8 was looking like a potential winner for businesses, but without that Active Directory integration on the ARM devices, it is tough to see Windows 8 making big penetration into the enterprises with mobile devices. Given the relatively anemic sales and interest in Android and BlackBerry tablets, it definitely feels like software developers should be looking at iPads first and anything else as a distant second.
As much as it pains me to say this, I plan on getting a hold of the tools for iPad development over the next few months and taking a look at development on that platform.
Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.
Justin James is the Lead Architect for Conigent.