Windows 8: The Legacy-less Windows We’ve Been Waiting for

Four years ago, July 2007, Microsoft released the first few tidbits of information about Windows 7. Vista had just been shipped, and it wasn’t received well – both by critics and the marketplace. During these days, I argued that for Windows 7, Microsoft ought to scrap the Vista userland, and build an entirely new interface and userland on top of Windows NT, while maintaining a ‘classic’ Windows version on the side for business and other reluctant folk who want to see the ‘new’ Windows mature a little bit first. While they didn’t do this with Windows 7, they are doing exactly this with Windows 8. Ladies and gentlemen, Windows 8 is the first ‘cut the legacy’-release we’ve all been waiting for – and Microsoft couldn’t have picked a better time.

The plan that I proposed for Windows 7 went something like this: maintain the Windows NT kernel and related subsystems, ditch the Vista userland and interface, build a new userland and interface on top, and implement a virtual machine (or something to that effect) for backwards compatibility. At the same time, maintain a ‘classic’ version of Windows for reluctant users and the business world, who will generally want to wait until the ‘new’ Windows has become more mature and the applications they need have been ported.

While I proposed this plan for Windows 7, I always ended the several articles on this topic with the disclaimer that while I would like to see this plan implemented for Windows 7, it wasn’t very likely. I was right – the time wasn’t ripe. Well, it would seem that it is now, as several pieces of the puzzle have fallen into place: MinWin, the new userland and interface, relegate backwards compatibility to a virtual machine or something similar, and maintain a ‘classic’ version of Windows.

MinWin The Mystical Unicorn

Back in those days, barely anything was known about Vista’s successor. All we knew was that Vista was a pain in the butt – it was slower than XP, lacked a lot of polish, and yet, you had to pay the full price for it. At the same time, however, it had new features up the wazzoo, and basically every subsystem was rewritten from scratch. New audio and graphics stacks, new printing subsystem, new networking stack, and a whole lot more.

Soon after Vista was released, we also learned that Microsoft had started a project called ‘MinWin’ – which up until this day takes the prize for Most Often Misunderstood Technology That In Reality Wasn’t Really That Complicated To Understand To Begin With. Wild stories of new kernels, new operating systems, and magical fairy-dust farting unicorns surrounded MinWin, while in fact, it was ‘nothing more’ than a multi-year project to untangle the spaghetti Windows NT codebase.

The MinWin project was about cleaning, reorganising, and restructuring the Windows NT codebase. Microsoft’s kernel engineers wanted to end up with a small, core windows NT kernel that didn’t have any outward calls upwards the stack, with the ability to stack horizontal layers on top, thereby completing the entire stack. It would seem that with the announcement yesterday of Windows 8, this process has been more or less completed.

This is the first piece of the puzzle.

Them tiles

The next part is the creation of a new userland and accompanying user interface, and yesterday we got our first taste of that. Not entirely unsurprising, it’s a combination of ideas taken from Windows Phone 7, Windows Media Center, and the Xbox interface, mashed together and adapted to the different screen sizes and form factors. While this new Metro-based interface looks incredibly useful for a tablet, I’m not convinced it’ll work equally well on a desktop or laptop, but time will tell – you can’t judge an interface through videos and screenshots alone.

Apart form the user interface, Microsoft also revealed a little bit of information about the new APIs that power this new userland and interface. It’s supposedly using HTML5 and JavaScript, and while Larson-Green and Sinofsky wouldn’t really dive into it, you can bet your sweet bum that it’ll offer additional environments like .NET, XNA, Silverlight, and so on, as well. I’m pretty sure all the details about how to handle all this haven’t been set in stone just yet, so it makes sense for Microsoft to remain tight-lipped about this until all the details have been decided upon.

All this means that your one application can carry multiple interfaces and be run on phones, desktops, laptops, tablets, and the Xbox. This is a considerable leap forward compared to what the competition has to offer. A single application store that serves PCs, tablets, phones, and possibly the Xbox – a developer’s dream venue.

This entirely new userland and interface do not rely on any of the ‘classic’ user interface elements like the start menu, the taskbar, or even windows. As a Windows Phone 7 user and a total Metro groupie, I have high hopes for what Microsoft is doing here – assuming a mouse and keyboard work equally well as input devices as touch does. Multitasking is also a concern – sure, tiling two windows next to each other is nice and new for tablets, but it all looks incredibly cumbersome for getting some real work done.

Anyway, the new userland and interface make up the second piece of the puzzle.

Don’t look back in anger

Part of the reason why Microsoft has been so successful in maintaining its market share – despite security problems and Vista – is that users want to use their applications. This applies doubly so to the enterprise world, where replacement cycles are long, budgets are tight, and constant re-training is not an option. Backwards compatibility is a major part of Microsoft’s Windows strategy, but it has come at a price.

Up until Vista, Microsoft was unable to really push Windows forward. The code had become such an entangled mess that every little patch had the potential to break things on every level of the stack, so Microsoft had to perform lots of testing to ensure that individual applications wouldn’t break. If small patches were already problematic, you can imagine that large-scale, sweeping changes were out of the question entirely.

This problem needed to be addressed, and MinWin was a major part of that. By cleaning up every layer of the Windows NT operating system, Microsoft’s developers could more easily make changes, and improve Windows at a more rapid pace. Now that the MinWin project seems to be complete, Microsoft can finally move all the legacy stuff into a separate container, or, as Ars calls it, ‘ghetto’.

There are no technical details at this point, but judging by yesterday’s demo, it’s pretty clear that the new user interface is not dependant on Explorer. The new interface is not a program that is launched after the classic Windows explorer desktop has loaded. I think Microsoft has turned the entire classic Windows Explorer desktop into a program that is launched when (and only when) a classic program is launched. In other words, all the things that classic Windows programs need in order to run are now contained separately from the new userland and interface.

I think this is what Larson-Green meant when she said that if users don’t want to see the classic Windows environment, they simply shouldn’t run classic applications. While Windows 8 will contain the legacy Explorer environment by default, it won’t actually run until you launch a classic application. This makes perfect sense too – Microsoft is aiming Windows 8 for tablets, and with batteries being as limited as they are, Windows 8 can’t afford to run both the new interface and the Explorer interface simultaneously all the time.

All the work done as part of the MinWin project has allowed Microsoft to turn the Win32 environment into what it was supposed to be from the beginning: a self-contained Windows NT subsystem, equal in status to the OS/2 and POSIX subsystems – integrated into the operating system from a user point-of-view, but self-contained from a code point-of-view. While Win32 was always supposed to be such a self-contained subsystem, it grew like weeds over the years, causing it to become intertwined with other parts of the operating system. MinWin solved this.

This way, Microsoft has managed to finally solve the backwards compatibility conundrum, in quite the elegant way, code-wise. It took the multi-year MinWin project to get there, but it’s finally here: all the legacy code in Windows has been isolated, and can be removed if necessary. It will be installed by default in Windows 8, but I’m fairly sure it will be an optional installation by the time Windows 9 arrives.

This is the third piece of the puzzle.

Windows 7 Professional Legacy CE Edition Ultimate Compact

And this brings us to the fourth and final piece of the puzzle. A big problem with revolutionary (compared to the prevous version, that is) new releases is that many people are reluctant to adopt something new, with, again, the enterprise being very important in this regard. They need to be able to buy a version of Windows that they want, but which isn’t the completely new version. This is where Windows 7 comes into play.

Back when I originally proposed my plan, the classic version of Windows would’ve been Windows Vista, and that was problematic. Businesses didn’t want Vista when it was new, and there was no indication whatsoever that this would’ve changed a few years down the line. Windows Vista had an awful reputation – partly deserved, partly exaggerated – and nothing would’ve changed that. Vista simply didn’t have the shine to serve as a legacy version of Windows.

With Windows 7, the situation is entirely different. People love Windows 7, it’s been very well received, it’s selling like crazy, and unlike Vista, business are adopting it. This means that Microsoft can safely put out Windows 8 for the adventurous users, while still being able to successfully market and sell Windows 7 to the enterprise world for years to come. Windows 7 is a fine product, and I’m sure Microsoft will be more than happy to sell it to you or your business if you so desire, while actively promoting Windows 8 and its fancy new interface to the outside world.

This is the fourth, and final, piece of the puzzle.

It’s been a long road, getting from there to here

This is it. All the pieces of the puzzle have fallen into place. Us geeks have been hoping for a long time now that Microsoft would radically overhaul Windows, and now we’re getting it. The backwards compatibility problem has been solved, a new interface and userland created, and a good, stable, and loved legacy version of Windows is readily available. The perfect storm for Windows.

Where will this road lead after Windows 8? I strongly believe that Windows 8 is the transitional release, between Windows ‘classic’ and Windows Tile – for Windows 9, I would expect the Explorer environment to become an optional install. Whether or not Windows 7 will still be available by that time will largely depend on how well developers adopt the new Windows 8 APIs. However, since there are already 20000 Windows Phone 7 applications – despite the supposedly slow sales of WP7 – I would say that Windows 8 is going to do just fine.

Am I excited for this release? Well, I kind of am. I love how much innovation is going on in the computing space right now – GNOME 3, Unity, KDE4, the iPad, and now Windows 8. The only one seemingly left behind at this point is Mac OS X, which, like iOS compared to Windows Phone 7, will look archaic and quaint alongside all the modern and innovative violence from Windows 8 and the Linux world. Apple will have to really get out of maintenance mode for Mac OS X after Lion.

Good times to be an operating systems nerd, this.

101 Comments

  1. 2011-06-02 5:34 pm
    • 2011-06-02 5:43 pm
      • 2011-06-02 7:20 pm
        • 2011-06-02 7:33 pm
        • 2011-06-03 2:02 am
        • 2011-06-03 8:33 am
      • 2011-06-02 8:24 pm
        • 2011-06-03 10:26 am
          • 2011-06-03 10:29 am
          • 2011-06-03 12:13 pm
          • 2011-06-03 12:19 pm
          • 2011-06-03 12:38 pm
          • 2011-06-03 1:00 pm
          • 2011-06-03 1:04 pm
          • 2011-06-03 12:19 pm
    • 2011-06-02 8:22 pm
    • 2011-06-02 8:44 pm
  2. 2011-06-02 5:35 pm
    • 2011-06-02 5:58 pm
      • 2011-06-02 7:01 pm
      • 2011-06-02 7:23 pm
  3. 2011-06-02 5:57 pm
  4. 2011-06-02 5:58 pm
    • 2011-06-02 8:24 pm
  5. 2011-06-02 5:59 pm
  6. 2011-06-02 6:08 pm
  7. 2011-06-02 6:10 pm
    • 2011-06-02 8:34 pm
      • 2011-06-02 8:44 pm
        • 2011-06-02 9:57 pm
        • 2011-06-02 10:11 pm
          • 2011-06-03 3:08 am
          • 2011-06-03 6:38 am
          • 2011-06-03 8:48 am
          • 2011-06-03 9:26 am
          • 2011-06-03 1:08 pm
          • 2011-06-03 6:34 am
  8. 2011-06-02 6:11 pm
    • 2011-06-02 6:12 pm
      • 2011-06-02 6:27 pm
        • 2011-06-02 6:56 pm
          • 2011-06-02 7:00 pm
          • 2011-06-02 7:44 pm
          • 2011-06-02 7:59 pm
          • 2011-06-02 8:13 pm
          • 2011-06-02 9:54 pm
          • 2011-06-02 9:59 pm
          • 2011-06-02 10:31 pm
          • 2011-06-02 10:34 pm
          • 2011-06-02 10:49 pm
          • 2011-06-02 11:41 pm
          • 2011-06-03 4:08 am
          • 2011-06-03 12:16 am
          • 2011-06-03 4:56 am
          • 2011-06-02 9:53 pm
      • 2011-06-02 6:42 pm
        • 2011-06-02 8:30 pm
  9. 2011-06-02 6:19 pm
  10. 2011-06-02 6:38 pm
    • 2011-06-02 6:55 pm
  11. 2011-06-02 6:52 pm
  12. 2011-06-02 7:04 pm
    • 2011-06-02 7:51 pm
    • 2011-06-02 9:05 pm
  13. 2011-06-02 7:10 pm
  14. 2011-06-02 7:11 pm
  15. 2011-06-02 7:17 pm
    • 2011-06-02 9:36 pm
  16. 2011-06-02 7:20 pm
    • 2011-06-02 9:30 pm
      • 2011-06-03 1:39 am
  17. 2011-06-02 7:49 pm
  18. 2011-06-02 8:32 pm
  19. 2011-06-02 9:37 pm
    • 2011-06-02 9:41 pm
      • 2011-06-03 1:10 am
  20. 2011-06-02 9:57 pm
  21. 2011-06-02 10:25 pm
  22. 2011-06-02 10:40 pm
  23. 2011-06-02 10:47 pm
    • 2011-06-03 7:08 am
    • 2011-06-03 7:51 am
  24. 2011-06-02 11:52 pm
  25. 2011-06-03 12:39 am
  26. 2011-06-03 1:41 am
  27. 2011-06-03 2:41 am
  28. 2011-06-03 3:32 am
  29. 2011-06-03 3:32 am
    • 2011-06-03 10:38 am
      • 2011-06-03 10:44 am
        • 2011-06-03 11:23 am
        • 2011-06-03 12:21 pm
    • 2011-06-03 1:13 pm
  30. 2011-06-03 6:08 am
  31. 2011-06-03 7:42 am
  32. 2011-06-03 9:18 am
    • 2011-06-03 11:28 am
  33. 2011-06-03 10:35 am
  34. 2011-06-03 12:38 pm
    • 2011-06-03 12:58 pm
  35. 2011-06-03 1:17 pm