X
Tech

The Day The Web Won

"Resistance is futile" intoned Star Trek's Borg as they absorbed everything and everyone into their hive mind collective. That's true for the web, and one of the largest developer platforms in the world has suddenly become part of its growing collective.
Written by Simon Bisson, Contributor and  Mary Branscombe, Contributor

"Resistance is futile" intoned Star Trek's Borg as they absorbed everything and everyone into their hive mind collective. That's true for the web, and one of the largest developer platforms in the world has suddenly become part of its growing collective.

That's because, as we've suspected since MIX in March, that the Web and Web technologies are at the heart of Microsoft's next generation operating system. That immersive, fast and fluid Metro user interface? It's all web technologies – from the HTML/JavaScript/CSS tiles running on a new version of the Internet Explorer rendering engine and the Chakra JavaScript engine, to the Silverlight user interfaces of Metro applications. Those grid and flexbox CSS functions that Microsoft added to IE 10? They're used to lay out the Windows Start Screen, along with CSS media queries to handle rotation and different screen sizes – so the same code scales the start page from netbooks to wide screen media centre TV screens.

Drill down into Microsoft's new Windows developer stack and the web goes a lot further in than an HTML and JavaScript UI layer in Windows 8's Metro apps. It’s also at the heart of the development model – whether you’re building native, managed or web applications. The architecture of the WinRT APIs is one that's ideal for web-style applications, with well-defined structures and limited extensibility. Applications can only communicate by pre-defined system-level contracts, and as much as possible is asynchronous.

Of course, thinking more about WinRT and its implicit process isolation and controlled communication channels, there's a parallel with trends in silicon architectures and the move to massive parallelization using NUMA along with lower power architectures, with inter-CPU communications channeled via Transputer-like direct memory access – architectures that seem ideal for WinRT, which more than ever seems a software architecture for the long time, and intended to replace the venerable Win32. And that throughput computing model is one that works as well for servers as for clients, especially cloud servers with millions of users…

The Windows 8 development architecture also makes its web heritage clear in the design patterns it embodies - specifically the common web pattern of model/view/controller. No matter whether you're writing native C++ applications, managed C#, or dynamic JavaScript/HTML, you're implementing the MVC pattern - something Microsoft has been nudging developers towards over the last few years with the WPF tooling in .NET and the arrival of ASP.NET MVC and the Razor syntax in its web platform.

At a higher level, the Windows 8 developer tools are web focused. While there are improved design and layout features in Visual Studio 11, designers will be pleased to see that the preferred design tool for Metro is an updated version of Microsoft's Expression Blend – with HTML and CSS tooling as well as Silverlight's XAML. Perhaps here the best parallel is Microsoft's Windows Phone platform, where Silverlight applications run outside the browser, with APIs that link directly with the hardware. In Windows 8 those APIs (at least for Metro applications) are WinRT, and they reflect from their native C++ into whatever language or technology you're using – including as JavaScript APIs for HTML applications.

Windows 8's controls are all web technologies as well, with the same controls available to HTML 5 applications or to Silverlight – and with the HTML controls written using JavaScript's strict options. Process isolation, web controls, HTML and Silverlight – the Windows 8 Metro UI sounds more and more like a browser every time I think about it. It’s just one without any obvious chrome, a huge canvas for your code.

If it wasn’t for the old Windows desktop for those legacy Win32 applications there'd be people comparing it to Google's ChromeOS. It’s WinRT that really makes the difference, giving Windows 8 applications access to the OS and to device hardware, something that ChromeOS goes a long way to preventing. Perhaps then it's closer to RIM's BlackBerry PlayBook and the Flex APIs that expose QNX to Flash developers and AIR.

Of course all those analogies only describe aspects of Windows 8 – which is, despite its roots in the web very much its own thing. And that's just the way things should be.

Simon Bisson

Editorial standards