The desktop is not the OS. It’s an app

March 9, 2012 in .NET, JavaScript, Metro, Month of Metro, Windows

When everyone was in a panic about the announcement that JavaScript was pushed to be the preferred development tool for Windows 8 Metro apps, I said that as long as there is a desktop, traditional Win32 (or Win64) development will be a first class citizen, and that the Metro interface was the old concept of just the traditional “sidebar” apps (which have been developed in JavaScript for a while now), elevated to a new, more prominent status.

Well, it would appear I was wrong.

I was reading Paul Thurrott’s Windows 8 Consumer Preview: A Call For Common Sense and one point of his really stood out to me: “The desktop is not the OS. It’s an app.

He goes on to say . . .

The desktop is not the OS. In fact, while this isn’t technically true, conceptually, the desktop is just an app. The Windows 8 OS is comprised of Windows Runtime (WinRT), the Start screen shell and its Metro-style environment.

and . . .

For those many, many businesses that will rollout Windows 8 alongside Windows 7, the existing desktop environment looks and works almost exactly like its predecessor, and has no compatibility or long-term testing issues. That’s the goal for the Windows 8 desktop. All the exciting and new stuff is in Metro.

This really changes things. It means that the Desktop and traditional Windows programming has more in common with Windows XP mode on Windows 7 (running inside a virtual machine). I am not saying, nor have I heard anyone say, that the “Desktop” is running in a virtual machine, but the point is that the Desktop and traditional Windows programming is now officially “legacy”. In Windows 9 (or beyond), the Desktop may actually run in a virtual machine, or at least a sandbox.

Microsoft is replacing the familiar Windows API’s with WinRT, and this changes everything. Despite your opinions on JavaScript or .NET programming, they are now the preferred tools for developing on the Windows platform.



20 responses to The desktop is not the OS. It’s an app

  1. Paul Thurrott is a tool, though. I commented in this post of his on Twitter, before. IMHO it shows a fundamental misunderstanding of how Windows works. Yes, Metro is not a shell in top of the Windows Explorer desktop. But that doesn’t mean the Win32 subsystem is an “app”.

    • To be honest I wasn’t sure if he was being sarcastic or not with his article when I first read it.

  2. Hi Marc,

    “Despite your opinions on JavaScript or .NET programming, they are now the preferred tools for developing on the Windows platform.”

    The WinRT has nothing to do with JavaScript nor .NET. The real thing is native, so actually extended COM rules here. JavaScript and .NET WinRT access are simply wrappers (reflections) around it.

    • Some corrections: 1) Sorry Jim I thought it was Marc writing. 2) The right term is “projections” instead of “reflections”.

    • My point is Microsoft, the provider of the platform, is providing tools around JavaScript and .NET as the preferred method on the platform. It is worthwhile to consider where the platform provider is moving with a platform.

      • Hi Jim, I see it in a slightly different way: Microsoft is making the APIs more accessible to all languages. Take WPF for example. Before you had to use .NET to access this technology, now any WinRT compatible language can do that. As WinRT is a kind of COM library, every native languages like C++, Delphi and even script languages that usually has native runtimes and libraries can also use it.

  3. How does Metro not being an app reconciles with the various hacks that deactivate it?
    It isn’t clear either if WinRT is really at the core of the OS, or just a runtime bundled into the OS that calls the more traditional APIs. Some functions are recreated, but others are just wrappers on the old API and old DirectX…

  4. I still believe that Win8 won’t be a popular platform. Microsoft will push home users to update using old dirty trick with OEM, but corporate customers will resist the update with all the efforts. First, it’s a huge waste of money to teach employees new UI. Second, updating all legacy code, especially specific accounting software that is long out of development, is a real nightmare.

  5. PS. said on March 9, 2012

    I don’t know but, if I look in sysinternals process explorer I see all Metro app under services.exe. Metro IE you can found there too, witch another parameter as classic Desktop app. (same executable!).

    Have you ever kill explorer.exe (desktop app)? What happens next? There is no start for metro, there is no side setting for shutdown, there is no any shortcut (Win+C, Win+ …for metro) … you can’t bring back any metro app from suspended status … Nothing working because old legacy application don’t running?

    Metro is very simple way how to bring same app for mobile and for tablet or touch screens for special purporse. But there is no way to have metro as primary and only one future for desktop applications.

    So if we look in this way we can say that Metro is not OS it’s only sidbar plugins … it’s more True then “The desktop is not the OS. It’s an app” …

    • PS: Honestly I expect and hope Microsoft will revise things more before Windows 8 is released, but the point is they are moving away from what we consider “traditional desktop development”. He also says:

      All the exciting and new stuff is in Metro.

      As developers we tend to like and implement the latest features of the platform and language. The Windows platform is moving to WinRT and Metro, and the platform provider recommends JavaScript and .NET as the way to get there. It is at least worth checking things out and not burring our head in the sand.

  6. Oh man…. I’m reading that Windows API is legacy since…. hum… I can’t recall but at least for 10 years now. You should have learned by now Jim… You are painting an apocalyptic picture based on Windows 8 Consumer Preview ? This is not the final product and 12 months from now I bet that you will be wrong about this. If, by some sort of collective madness, you happen to be right, Microsoft will have another Vista fiasco in their hands.

    • You can still run Win16 apps today on Windows 7, and probably will be able to on Windows 8 and the next few versions, but I doubt anyone would recommend you use it for new development today (although I know people still do). When Microsoft announced .NET they hinted that it would replace the Windows API for future development. Now we see them making good on that suggestion from so many years ago.

      Will there still be “native code” development? Probably, but you won’t have access to the new ARM processors unless you build a new version of your application for that platform too.

      Developing in .NET or JavaScript means you get access to the new Metro and WinRT features, and you get access to both processors.

      My point was this comment opened my eyes to the fact that Microsoft is serious (at least at this moment) about finally moving the API.

      • You can’t run Win16 apps on any 64-bit Windows system. IOW on any modern system.

      • Is it? Let’s see: I consider myself a power user. I use programming tools and database tools in a daily basis. 90% of everything I use is native. The other 9% is Java (Oracle tools, for instance), and only one .NET app: SQL Server Manager Studio (BTW, much worse than it’s native predecessor). Besides work, I use other tools to create and edit video, burning tools, etc. Every single application out there is native.
        I guess that the most used application for the average desktop user (we are talking about a Desktop OS, aren’t we?) is the browser, isn’t it? Is your browser written in JavaScript or .NET?
        Just turned my laptop on and these are the applications running here: Skype (native), Msn messenger (native), Firefox (native), Thunderbird (native), Avira (native), PrtScr (native), DAEMON tools (native).
        99% of new stuff coming from MS is native, for god sake! What are you talking about?
        Oh! I see: New Office applicatinos will be rewritten using Javascript! ehehehehhe

        • My point is this is a significant change to the platform and API. Not that all applications need to be rewritten in JavaScript, but this isn’t just sidebar widgets gone wild. It is a new paradigm for what the Windows application experience looks like.

          • And my point was: As long that 99% of commercial applications targeting Desktop (not web servers) are created using native tools, including those from the OS vendor – Microsoft – you can’t use the word legacy in this context, just because it is simply not true.

  7. Somehow I expected a more impressive list in the answers here:

    What should I conclude from it?
    Hardly anyone uses DotNet for desktop application development?
    Nobody been able to create interesting stuff with it?
    Or is the question old (it’s from 2009), and did all the interesting stuff come up in the meanwhile?

  8. I’m just happy to have a Mac, that’s all I’m saying. :)