Windows 8 - after the dust has settled
Written by Mike James   
Saturday, 17 September 2011

A lot of information was released at Build. Now that the event is over and there has been time to experiment with Windows 8 and its new development environment we are in a better position to judge the future.

A lot of information was released at Build; much of it was difficult to piece together and it was even more difficult to judge the impact. As a result some of the things that have been reported, while not being 100% wrong, have been misleading. The situation is much more complicated and much more subtle.


Now that Build is over and there has been time to experiment with Windows 8 and its new development environment, we are in a better position to judge the future. However, this said it also has to be made clear that Windows 8 and the development environment are in the early stages and Microsoft could change its collective mind - assuming that it is actually made up.

The first and most important aspect of the new architecture is that it splits into two parts - Metro and Desktop. Not good names and they might well change, but the overall idea is clear.



On x86 version of Windows 8 Metro, behaves as if it was a modification ot the start button. You click the start button and, instead of a list of programs, you are transported to Metro where there are tiles to get applications started.

A Metro application stays in Metro and uses WinRT as its runtime.

A desktop application flips you back to the desktop where Win32 is is the runtime.

Win32 supports everything you are familiar with including overlapping windows. Metro, on the other hand, doesn't support overlapping windows and is optimized for a mobile/phone like operating mode. If you are familiar with multi-windowed application design then the Metro environment, with its single screen at a time approach, will seem strange and you will be forever trying to reinvent the dialog box. If on the other hand you are used to creating phone apps then the idea of an overlapping window will be something you only just remember.

The best way to describe Metro is that it a mobile operating system sitting next door to a full desktop operating system.

In principle Metro apps are a "start-again" technology and in principle you can't use Win32; and in the same way you can access WinRT from desktop apps. But in practice it seems you can. On x86 hardware there don't seem to be any barriers between the, two but perhaps there will be in the future. Metro apps are supposed to be sandboxed so that they can be safely downloaded from an app store. At the moment this sandbox doesn't look particular tight and Metro apps can access the main file system, for example. You can restrict what resources a Metro app can access using the manifest but at the moment this seems more targeted towards a mobile environment rather than a desktop, but this could change.

Then there is the choice of development language. You can use .NET for Metro and any of the usual .NET languages with XAML as your layout language. This feels a lot like using Silverlight or WPF, but without the overlapping windows and dialog boxes. It is in this sense that Microsoft might be downplaying WPF and Silverlight but not .NET.

This raises the question of why you can also develop using JavaScript and HTML?

On the surface this appears to be a concession to all of the HTML5 programmers out there who can now come to the Windows 8 platform on an equal footing with the .NET and C++ developers. This misses two really important points. The first is that Windows 8 HTML development needs a lot of non-standard JavaScript methods. As soon as you use one of the WinRT JavaScript bindings you have a non-standard HTML application that will only run on Windows 8. So much for standards. It also means that the poor HTML5 developer still has to learn a lot of new stuff.

The second point is that it appears that only the HTML5/JavaScript approach to apps will work on ARM-based mobile devices. It also appears that the .NET languages will not be ported to ARM nor will Win32 or anything like it. What all this means is, that on ARM-based mobile devices, Windows 8 is Metro and nothing but Metro. This fits in with the statement that old Win32 apps won't be available on ARM processors and neither will the desktop.



So Metro is the environment that spans both x86 and Arm hardware. Internet Explorer 10 in its Metro form doesn't support plugins so, as most news commentators have already pointed out, no Flash. However in addition to no Flash we also have no Silverlight to add to the no .NET. If this isn't marginalizing Silverlight and all of the .NET technologies I don't know what is.

How you view all of this depends on whether you see the Metro environment as a sideshow to the desktop or the desktop as a sideshow to Metro.

We have two operating systems stuck together. Clearly, if you want to target all Windows 8 platforms you need to stick with Metro, abandon the Desktop and everything that goes with it - overlapping windows, .NET and Silverlight.


To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Twitter or Facebook or sign up for our weekly newsletter.



Java Version 22 Released

JDK 22 is not a Long Term Support release, but is one of the regular releases that are scheduled to arrive every six months. Still, it has got a lot to show for itself.

Eclipse JKube 1.16 Goes GA

Eclipse JKube makes deploying your Java application to a Kubernetes cluster a breeze. Let's find out what's new.

More News

Last Updated ( Saturday, 17 September 2011 )