Software development

Windows 8 - Why and How?

Windows 8, Microsoft

Windows 8 has been something of a hot potato since the developer preview was released half a year ago. It introduced some rather controversial changes to the cozy operating system most of us have grown up with. Two weeks ago the consumer preview was released, revealing the major changes to a wider audience, and the blogosphere has been totally crazy ever since - both for and against. With yesterday's rumor of a Nokia tablet (presumably running Windows 8) due later this year, we decided it was time to gather an overview of the situation.

We've done some Windows 8 stuff already, and you may have read Timo Tuominen's excellent peek into HTML5 on Windows 8, but we (that is, my esteemed colleague Mr. Timo Hyväoja and myself) thought there's a need for a broader overview on why we think Windows 8 will be a big deal and how you can get on board. So Timo dug up some unused pieces of hardware and installed the consumer preview, and I started skimming through blogs and grilling Timo with all kinds of funny questions. This is where we got so far:

Why is Windows 8 such a big deal?

Cynical answer: because it's Windows. :)

Since we're not all that into being cynical here at Futurice, allow me to introduce a couple of other points:

  • There's a whole lot of Windows machines out there. Soon many of them will be running Windows 8. This is more a question of when rather than if (read: "Because it's Windows").
  • Windows Phone is showing promising signs that consumers like the new Metro style that Windows 8 now introduces in 'heavier' devices.
  • Besides good ol' x86 hardware seen on desktops and laptops, Windows will now run on ARM hardware - i.e. tablets/slates optimized for mobile use. Recent news about the Windows Phone 8 sharing the same kernel with Windows 8 suggest that the device coverage is not going to decrease...
  • Windows Store will bring totally new revenue possibilities for Windows developers, and there are a lot of them.

So, if Windows has been the operating system for desktops and laptops, it is very likely it will be the operating system for all online devices soon. Enough to get your attention? Read on.

What's new?

Windows 8 comes with a number of cool changes, but below we've listed a couple we're really excited about:

Metro changes the way people do stuff on their desktops

The most apparent change of course is the new Metro style with its start screen and tiles that replace the old desktop with the Start button:

win8_homescreenWindows 8 start screen running on an Acer W500 tablet (x86)

You might've already seen the Metro style creep into your Zune player or Xbox 360, but it was really widely introduced with Windows Phone. Guess what? Soon it will be your desktop experience everywhere. While Metro has received mostly good feedback on Windows Phone, on desktop/laptop it has raised quite a lot of concerns - will it scale to easily accommodate all your apps, will you ever get used to the horizontal scrolling with your mouse, and, let's not forget, where's the damn Start button? While admittedly there are some issues left with non-touch devices, we think this is mostly just an initial shock reaction - just like with Windows Vista, it's not all that trivial to successfully get people used to a major change with such a large user base.

ARM support introduces Windows to a lot of (new) hardware

So Metro changes what is shown on the outside. While this is the major change for most consumers, possibly a far more significant change is under the hood: Windows 8 basically means that the ARM processor architecture is now supported besides the standard x86 architecture. This means more affordable hardware and better battery life among other things, both very welcome in mobile surroundings - and with affordable slate (that's 'tablet' in microsoftese) hardware, we're going to be seeing a lot of mobile Windows hardware out there. There are a couple of gotchas and caveats though (see Things to consider, below) but overall this means that the same app will run on a lot of hardware. No wonder it's dubbed WOA! (That's short for Windows on ARM.)

Windows Store brings a whole new software ecosystem to your desktop

In the wake of Apple's App Store et al., Microsoft is jumping on the app bandwagon. Just like Mac App Store brought online app shopping to desktop, Microsoft Store will bring the super-easy app purchasing process to PCs. Microsoft will take a 30 % share of your revenues (or 20 % if your app is selling big) but you won't have to worry about payments, regional taxes or any of the sort - just collect the money. What's different from, say, the Apple App Store is that for in-app purchases you can either use your own payment methods or the Microsoft Store APIs. This might turn out to be an interesting revenue stream for developers... And what's more, developing apps is now easier than ever with HTML5 (see below).

How do you create apps for Windows 8?

Easy, set up the SDK and fire away:

win8_sdkandemuTimo got a new toy. He's running Visual Studio on a Windows 8 tablet. The external display on the right, hooked to the tablet HDMI output, is showing the Visual Studio emulator - showing Timo's real desktop. Confusing? No, streamlined.

As has been the case for a long time, Microsoft development tools are top notch and getting up to speed with development is a breeze. Truth be told, there are still a couple of wrinkles left (especially with Expression Blend, which is used to facilitate designing Metro user interfaces), so there is still work left to be done for the fine people of Redmond, but you would be surprised how fast it is to get started with Windows 8 development.

What's big about Windows 8 is that it introduces a totally new development paradigm that expands the developer community by hordes: in exposing the system to HTML5 + CSS3 + JS via the new WinRT APIs, Microsoft is giving access to native application development for legions of web developers - and this means real desktop applications in the Metro style, not just web stuff. Check out Timo Tuominen's post on Metro on Windows 8 with "Native HTML5" for an quick review. For those not in the know, this essentially just means that application development will be even more streamlined and requires less specialized skills from the developer - in other words, more productivity and shorter time to market.

Besides the new HTML5 + CSS3 + JS path, you can of course develop your app in the tried and tested VB/C#/C++ and XAML way. One thing to say goodbye to, however, is XNA. Developing games, for example, (or anything with heavy graphics) happens now with DirectX - and you have to do it with C++. This is a nuisance to developers who have spent a lot of time on learning XNA, but in the end it should be for the better. Time will tell.

How to distribute the apps, then?

Once your application is ready, though, there's one more proverbial dragon to slay: the distribution. You can of course do it da old skool way and just put your app on your website (or wrap it in a cardboard box if you prefer such antiquities), but if you want to do cool new Metro stuff, or if you want to deploy on Windows tablets, the Microsoft Store is the only route. Get it? The only way to Windows tablets is through the Microsoft Store. This means that your software will have to conform to the Microsoft guidelines, but luckily they are very sensible and for the user's benefit, even if they are a little on the strict side.

Things to consider

We think Windows 8 will be a huge opportunity for software business, but most of all, it will ultimately bring desktop and mobile developers closer together, benefiting everyone. There are a couple of things to watch out for, though:

  • You will have to redesign and redevelop for Metro. If you have an existing concept, it will have to be thought through with a totally new design philosophy, and you will want to support a wide range of display sizes, orientations and modes. But fret not, the tool chain is even more efficient than before, designing scalable UIs with Metro is relatively painless and you can always consider HTML5 if you're worried about the extra expenses. If you're not that interested in Metro, you can run your legacy stuff in the Desktop mode, but why would you? Metro is the future for Windows.
  • If you want to develop for tablets, you will have to be aware of the differences between ARM and x86 hardware. ARM is very lucrative for its better battery life, but the remote management options are far more restricted. Even if this didn't sound like a big deal to you, it might be one for your IT department if you happen to be developing software for enterprise use. You have been warned.
  • Plain old web stuff might get complicated because of the two different Internet Explorer versions. That's right, there's one for the new Metro start screen and one for the legacy Desktop mode, and they're different. The biggest difference is that the Metro version does not have any plugin support (i.e. flash is probably out, for one). Switching between the two modes is quite easy from within Internet Explorer, fortunately.

All things considered, we think it's fair to say that Windows 8 is a big deal, and it will be increasingly so in the near future. We're really excited about it, and will continue our investigation and post our findings here. Stay tuned!