ARM and Windows 8

Aside from demoing ARM tablets, we know little about what ARM based Windows 8 devices will be like.  John Gruber, over on Daring Fireball has been suggesting that ARM tablets won’t run the windows desktop.  But Gruber’s comments seem less insightful than he usually is with Mac based ponderings – perhaps because he doesn’t  know as much about the architecture and environment of the new Windows 8 sphere.  So here is my take on the matter:

Originally, I guessed that we would only see .net/javascript on ARM.  I was wrong here, MS have already said you’ll get native ARM code for your applications – mainly for power reasons, as far as I can tell (we’re in an interesting situation here – low power is now trumping high performance, and some of the benefits of writing for high memory/disk/hertz systems are now being taken away from us again).  That said, those applications will have to be recompiled – and possibly have certain bugs fixed.

The metro apps you see are actually glorified COM components which offer up a number of interfaces (the contracts we’ve heard so much about, and the most important, but least spoken about contract:  Launch – the contract that causes your app to lauch).  These interact with the new WinRT runtime, which they call through vtable indirection.  Very simple, very clean.  Now, there is no reason why metro apps can’t call the win32 runtime – in fact they can – they just won’t be allowed in the Windows Store unless they do.  And anything which can call win32 can be a desktop app if the desktop exists.  And it does… the Metro UI is actually explorer.exe as far as I can tell – it is, itself, a win32 app using at least some of the desktop’s functionality to do its magic .  So unless Microsoft say “no Win32 tablets” that makes it impossible to say “no desktop apps”.  Personally, I think too many things – even if not metro apps – are going to rely on Win32 for this to be a plausible approach.

Now, there is another issue – people, right now, are talking about ARM servers (withs lots and lots of low power processors in them).  These are going to run win32.  They may not have the desktop (there is lots of talk of servers being only ServerCore these days), but they will also have win32 – nothing else makes any sense for the server – at least not for a long time

So either we will have win32 ARM apps that run on servers but not on tablets – which seems an unlikely restriction to me, we will almost certainly have desktop ARM apps.

(There is one other thing in favour of desktop ARM apps – Visual Studio is a desktop app, and I would seriously expect it to be ported to Windows ARM.  Being able to run your dev environment on your ARM tablet will be a potential major boost for MS developers)

So Desktop ARM apps – what will they be like?  IF MS do their job, mostly unused.  They’ll be there (but most desktop apps won’t be ported), and the consumer or business traveller – the real target for the ARM tablet, either will choose to stick to metro and the web, or will be connecting back to base remotely.

ARM desktop apps will exist – they’ll be available and work – but they won’t be used, and, as such, they won’t be a problem.


You must be logged in to post a comment.