Windows 8 is now upon us. It is everywhere. It is on tablets, smartphones, laptops and PCs (Fig. 1). It might even give a boost to Ultrabooks.
The difference between Windows 8 and past Windows consumer platforms like Windows 7 is the user interface. This difference is immediately apparent because Windows 8 user interface (Fig. 2) replaces the desktop and infamous Start button with an array of colorful tiles that can be even be animated.
Microsoft originally called its new interface Metro but it has since shied away from it. Rumors about legal issues have arisen but many still refer to the interface as the Metro style. These days Microsoft refers to the interface for Windows Store apps or Windows 8 apps.
The user interface works best with touch enabled devices like smartphones, tablets and all-in-one PCs. The tiles are large and easy to activate via a finger touch even on smaller smartphone screens. A finger swipe slides more tiles onto the screen. This is familiar to smartphone or tablet users but a bit more of a challenge for WIMP (window, icon, mouse and pointer) users. Keyboard jockey's like me find it frustrating at least until the magic key combinations are rediscovered. John Dvorak thinks the interface resembles a slot machine (see Windows 8 Looks Suspiciously Like a Slot Machine).
Windows has run on a range of non-x86 platforms in the past from the DEC Alpha to Intel's Itanium. Windows NT also ran on MIPS, PowerPC and Arm platforms. Windows CE and smartphone variants ran on non-x86 platforms and found a home in embedded devices as well.
Windows 8 targets x86 platforms as did Windows 7 but Windows RT is a version of Windows 8 that runs on Arm platforms. It also powers Microsoft's own tablet, Windows Surface (Fig. 3). Windows Surface is a tablet with a keyboard. That is not a new idea but a useful one.
Unlike Windows CE, Windows RT code has more than just Windows 8 underpinnings. Windows RT is Windows 8 sharing the user interface but native code applications will be unique to each platform. Unlike Android or Apple tablet platforms, Windows RT has a version of Microsoft Office.
Just to add to the complexity of the Windows 8 environment, Windows 8 tablets look and act like Microsoft Surface for Window RT except that the former are x86-based systems (see Tablets Eclipse The PC Market). These x86-based tablets utilize Intel's new Z2760 Atom, code named Clover Trail. The dual core, 64-bit chips intend to take on Arm- and MIPS-based tablets. The big difference between Microsoft's x86 and Arm solutions is the ability of the latter to run PC applications on a tablet. This feature alone garners a following.
Metro will have the most impact on users but Windows 8 is a massive change under the hood that affects developers. For programmers, Windows RT has the same interface as Windows 8 so from a programmer's perspective there is one target. There are differences between Windows RT on a tablet and Windows 8 on a PC because the platforms are not identical but these tend to be minor differences rather than major architectural features.
The underlying operating system support is called Windows Runtime, also known as WinRT (Fig. 4). The RT in WinRT is unrelated to Windows RT, the Arm-version of Windows 8. The RT in the Windows RT designation means nothing in particular.
C, C++, C# and Visual Basic remain Microsoft's major programming languages as noted by the WinRT support but Windows 8 supports every major and most minor programming languages. JavaScript and HTML are also front and center. HTML5 (see Understanding HTML5) is important to Microsoft and it is one of the technologies that spans operating systems and hardware platforms.
WinRT is certainly the most functional, secure and power efficient iteration of Windows thus far. It is designed to provide developers with a single API target regardless of the underlying hardware or programming language employed.
I remember Win16, COM (Component Object Model) and .NET, all older technologies introduced with various Windows iterations. I will not even attempt to talk about managed code and Java-like runtimes. Microsoft has a history of supporting many old interfaces on new platforms. This is true for Windows 8 allowing some but not all existing x86 applications to run on x86 Windows 8 hardware. Most applications will have to be recompiled and probably redesigned to take advantage of Windows RT platforms.
Windows 8 employs a new version of COM addressing many of the shortcomings of the original. For example, all objects must now implement the IInspectable interface in addition to the existing IUnknown interface. This allows object introspection and is very handy when dealing with a wide range of objects.
Security is built into COM and access control lists (ACL) provide a mechanism for delivering varying levels of access. The ACL architecture is actually exposed at a higher level in that applications on Windows RT now run in a sandbox by default. The sandbox isolates applications allowing access to services only via ACL control. Access to device services like sensors, contact lists, etc. Users of Android and Apple smartphones will already be familiar with the list of access controls associated with applications presented during application installation from the matching app store.
Another change for Windows RT applications is that direct communication between applications is not possible. Instead, there is a communication channel system based on contracts and extensions. I will not try to explain this in detail as this technology and Windows 8/RT in general will be generating hoards of books and articles detailing aspects like this. The contract and extension approach allows the operating system to manage interprocess application communication and in theory make the overall system more secure. The possible downside for some developers is that applications will be tied very tightly to Microsoft and Windows 8. That is actually not much of a change from Windows 7 but it should be a consideration for new developers looking at Windows 8 for the first time.
Microsoft would like everyone to view Windows 8 as a continuum that spans a wide range of hardware. This is true if you take two steps back but closer examination reveals the differences. It will take time to determine what impact these differences will have from a developer and consumer perspective. The big challenge is that users are likely to have need to use more than one platform.
I'll be doing more on Windows 8 in the future. In the meantime, Peter Bright did an in depth look at WinRT (see Turning to the past to power Windows' future: An in-depth look at WinRT) that you might find useful.