Why Windows 8 needs architectural hygiene for WOA

Windows on ARM is more restricted than Windows on Intel. That's a good thing, even if it may be a little painful for power users and those whose IT departments are ten years behind the times.
Written by Simon Bisson, Contributor and  Mary Branscombe, Contributor

Windows on ARM is more restricted than Windows on Intel. That's a good thing, even if it may be a little painful for power users and those whose IT departments are ten years behind the times. It's a good thing because WinRT isn't really all about the shiny new Metro interface developers will be seeing their apps show up in. It's about architectural hygiene. It's replacing the ten or twenty ways developers might have found to enumerate a list in Windows with just one, and the right one at that. It's enforcing a higher standard of programming quality.

Prescriptive? Oh yes. And if you ever wonder whether Microsoft is right to take the opportunity to get a little prescriptive about what developers can do, may I recommend you read Microsoftie Raymond Chen's superb blog, The Old New Thing? Check out the PDFs of bonus chapters from his last book as well; one on backwards compatibility when Windows changes behaviours no program should depend on and the other an ironic guide to writing applications that will always crash. The combination of ignorance and sheer inventiveness in the programming he documents is breathtaking (and very funny if you didn't have to deal with it). My favourite is the code that enumerated a list by stopping the count one element further along every time and going back to the beginning and starting again. Imagine counting a queue of people. One. One, two. One, two, three. Oh dear.

There are some amazingly creative programmers, creating some superb applications. I've relied on ClipMate for over a decade; it keeps a record of everything that goes into the clipboard and lets me go back and find things I copied yesterday (or five minutes ago before I got distracted). I don't want to give up the rich tapestry of wonderful tools we have on Windows, and on x86 systems we don't have to. But we can't afford the past sins of programmers on WOA. We can't afford developers like the one who commented on the Building Windows WOA post to say that he hadn't bothered to make his Metro application cope with getting suspended and that was somehow Microsoft's problem, either. Developers can't just say that it's the responsibility of the user to evaluate whether a program causes problems and if it does, to uninstall it. This isn't the wild west of development any more; PCs are tools that people rely on for everything from amusement to earning a living to far more serious things and they have to just work.

I don't want background services that slow my system down. I don't want the dozen context menu extensions that have somehow managed to cruft up my system because software installed them without asking. And I don't want to have to dig into the registry or a tweaking tool to get rid of them by hand. I want Windows to protect me from some of these abuses of power by developers.

And I want to introduce a few concepts of basic physics to all the people who are saying both that they want an ARM Windows PC for the long battery life and that locking down the desktop on WOA to just Office and the Windows utilities is a bad thing. See this? This is your cake. You can either have it or you can eat it - but not both.

Put all those Windows desktop apps you want on WOA and you'll get a slow system with a short battery life - just like the tablet PCs you haven't been buying for the last eight years. Windows cannot miraculously make applications efficient and miserly with power (and touch friendly). It is not magic and it does not come with a pony.

ARM systems have good battery life, if they don't have long-running background tasks and services that wake them up all the time. The Windows desktop is full of anything-goes, service-heavy, chatty insomniac programs that could drive the battery life of an ARM system into the ground. Let alone that it's a different set of instructions and a processor that, in terms of pure horsepower, is more comparable to an Atom (an efficient multicore Atom, but still an Atom) than a Core i7.

ARM is a fantastic processor but it's not the place I'd choose to do my high performance desktop computing. It's exactly what I want for a super-portable PC that runs for hours or weeks and doesn't get bitrot. It has to have Office, because it's not a PC if it doesn't have Office, but it has to have a version of Office that's been thoroughly rewritten to have that level of architectural hygiene so that it doesn't slow down or clog up the system.

Couldn't other developers do the hard work of rewriting and retuning their apps so they're not process hogs or battery killers (or just plain rude about using resources)? If they can, I'm not going to just trust them because they say so, so who would check the new code to make sure it's good enough? It would be as political and potentially restrictive and resource intensive as any other app store. And if they're going to go to all that effort, why not do it in WinRT and get the modern, unambiguous APIs and the extra benefits like search contracts? At that point you're arguing more about the Metro interface than the architecture. There are valid arguments to have there, but dragging all the problems of the desktop onto a processor architecture that's not well suited to coping with them isn't the right answer.

Mary Branscombe

Editorial standards