As everyone is probably aware by now, Microsoft made a Developer Preview of Windows 8 available last week during their Build 2011 event. Microsoft has clearly learnt a lot from Apple and Google about hosting such events, even stretching to a Google style hardware give away for lucky attendees (grrr!). The keynote and workshop presentations are thick with enthusiastic evangelising of the ‘new’ (some previously available) technologies included in the platform, and I admit to being swept along with their enthusiasm.
I think the Metro platform is a good idea for Windows, even more so as a new API is available that sidesteps some of the monolithic Win32 code. Microsoft might have a chance of actually catching up (and even passing) Apple/Google in the ‘slate’ (note not-pad) race, although hardware/software price is likely to be a limiting factor for the initial year after the OS is released. Windows is one of those things you ‘just upgrade’, only occasionally is a release so bad you give it a break, people even upgraded to Vista before discovering it was just a little bit slow (much slower than the prior beta releases).
As a developer I’ve enthusiastically watched the announcements regarding the Windows Store, the Xbox Live integration (which I’m sure was already available on Windows but maybe it was all a dream?), and the accessible Metro platform, but as I’ve watched and researched the example code doubts have started to slip in.
I hope I’m not breaking any license agreement by discussing this and it seems to me other people are being pretty vocal on Microsoft’s feedback pages about topics raised so my current concerns are…
The Store – This is seems to be a closed space, where approval is required. Ok, I guess this is a good idea, because who can find anything useful on an Android device? It’s pretty hard to be seen. But equally, I see the same problem on my Windows 7 phone. The Xbox Live labelled content gets centre stage, promoted heavily by Microsoft and drowning other content. Indie developers even have to resort to including an ‘Xbox Live’ like banner in their app icon, in the hope of getting taken more seriously.
Related to this is the issue of getting apps into the Metro interface. As a ‘Windows’ OS I’d assumed you could install your software, like you’ve been able to do for decades now, and it’d appear on your ‘start menu’, now the Metro interface. It seems this might not be the case, at least if you’ve created a Metro specific app. My understanding is Metro apps will only be available via the store, with developers able to ‘sideload’ their apps.
App Development and Deployment – This brings the worry of a Windows Phone style app limit, where currently only 10 developer apps can be deployed – it’s a real pain. Often I’ll have several experiments on the go, in addition to my active titles in development, and I have to delete unfinished tests to try something else. This’d be too much to take if it was applied for Metro on Windows also. Then there’s App approval, currently Windows Phone Apps (plus Xbox Community Apps) are submitted through a portal at create.msdn.com. It’s not the most stable window on Microsoft and my experience has been prone to technical errors (including issuing 3 rather than 10 app deployments to Windows Phone), delays in responses for support or rapid pruning of forums.
C++What? – Taking a look at some of the Metro sample code, I had to do a double-take to check that I’d actually downloaded the C++ versions of the apps. What I seemed to be looking at was C#!? Given I have limited spare time to keep up to date, I’d assumed that the official specification of C++ had been seriously updated and it was probably time for me to get an up to date book (something less that 10+ years old). But having checked out more of the content on the Build 2011 site, it seems clear from the many upset community posts that Microsoft has been language building again, seemingly creating their own C++# or C## (doesn’t that already exist?). It’s not clear at this point how much of a pain this is going to be to interface ‘plain’ C++ code with, but I’m sure if something’s simple to do, this won’t be… (Yes, I’m a half-empty type of guy).
Xbox Live – I’m sure the Xbox live API has been available on Windows for a while, even with the ability to play against X360 players? Wasn’t there a FPS, which no one bought except me, that let you do this? Still we seem to be being told that this is available for the first time (maybe the first time in Metro?). I thought this ‘first time’ might indicate that it’ll be an open API for the first time, so excitement was high, until I got to the end of the presentation on the topic, when it because clear this was the same story as usual, only certain games will be allowed access to the technology. To get into the club you need to engage Microsoft’s interest, but I’ve already discovered over many years, not being based in the U.S.A. makes your chances very slim. Where apps outside the U.S.A. have been accepted, especially regarding Windows Phone, these seem to have been prior proven apps from other platforms, or apps developed within Microsoft’s group of companies. So there ends this excitement, unless I move to the U.S.A., San Francisco to be specific.
I’ve installed the Windows 8 Preview on three machines, my aging gaming rig, my not so old gaming laptop and my really old and actually dead before last Saturday x32 bit only XPS M1710 laptop (I finally attempted the GPU in the oven trick – and it worked). It ran well on all the platforms, although I had to do some trickery and use a hacked Windows 7 display driver to get GPU acceleration on the M1710. The only problem I encountered, which I would have realised if I’d read everything posted on the preview distribution page, was that you can’t build Metro apps on the x32 version of Windows 8, even if you install the Pro version of Visual Studio, which is a bit of a pain and I hope just a temporary issue due to the current distribution disk images. Still I hope to use this machine as a remote debug target, assuming it’ll be allowed to launch the Metro apps sent from an x64 machine.
So to conclude, I am still very interested and excited about the possibilities, but I’m worried this could still become a U.S.A. only club, as feels the case on Microsoft’s other stores platforms. The development experience could be ruined if they impose silly app deployment limits (an attempt to stop piracy, which probably won’t I expect) and issues of compatibility caused by ‘new’ versions of C++. The store could be swamped with Official Microsoft Approved Apps, drowning others, making developing content pointless.
Let’s hope Microsoft listen to the community, as they currently present themselves as doing, and make a few tweaks before release.
A free Samsung Windows 8 slate would be deeply appreciated, thank you.