Why Microsoft choose HTML5 for Windows 8 Apps

English excerpt of my German article “Warum Microsoft bei Windows 8 auf HTML setzt?

Many tech enthusiasts was amazed, after Microsoft announced at AllThings D 2011 conference that Windows 8 Apps will be developed using HTML5, CSS and JavaScript. There has been a lot of rumors about the future of .NET and Silverlight in the web.  I have discussed many aspects in my German blog [1, 2, 3, 4]. Thinking about the whole mess, I came to the conclusion, that Microsoft’s decision could be a game changing issue. Below I like to discuss a few thoughts, which I haven’t read in the yet.


Werbung


The tile based start screen of Windows 8 has been discussed in broad – some people like it, some hate it. For touch-based gadgets, it could be a nice approach. And as far as I have seen, admins can deactivate start screen via group policies. Paul Thurrott discussed the advantages of a tile-based start screen in his article [6] as an approach, to unify UIs on different devices and products. Also this article [18] discusses this approach.

Well, it will be nice to have such a UI – and many consumers, bloggers and also analysts  spend hours to discuss the advantages and disadvanteges of this approach.

So what?

In a German movie, one of the actors says “that’s pissy pissy”, after a deal went realy bad. It means, analysts sometimes are looking in the “wrong closet” and also discussions between Apple, Linux and Windows fan boys are time consuming, but not verry productive at all.

I’m wondering, why Microsoft let all this discussions “go” after the first annoncement at Allthings D 2011. They could say: “well HTML5 and JavaScript was our first choice, but there are also .NET and Silverlight to create apps” – but they didn’t.

So I was asking me, what’s behind the bushes? Reading my first blog post [11] in my Windows 8-Channel I came across the topic “MinWin & Virtualisierung” and a few slides from MS presentations dealing with virtualization for future operating systems. Maybe it’s a good idea to have a look at the pitfalls, Microsoft will facing in the near future. My assumption was, that Microsoft will have answers.

Application compatibility …

Well, the biggest advantage of Windows is it’s huge install base. But there are a lot of “legacy applications”, that needs to be supported – especially within business environments. In the past, Microsoft’s answer to this issue was compatibility mode and Windows XP-Mode. But what in the near future? If Windows 8 enters the market in 2012, business users probably begin to migrate in 2013 or 2014.

2014 is the “end of life” (end of extended support) for Windows XP SP3. So I guess that Windows XP-Mode will be also out of support too. No more support for “legacy apps” requiring Windows XP-mode? I can’t believe, that Microsoft risks to loose a huge part of their business customers.

In my opionion, a full Windows XP (including Notepad, Paint, Windows Media Player, Internet Explorer 6 and so on) isn’t necessary as a guest OS, to virtualize a legacy application. A minimized Windows XP kernel, supporting API-calls (like WINE) will do the job. Also App-V [17] doesn’t need a guest os to run and isolate an application.

legacy app compatibility on ARM systems

Because Windows 8 also supports ARM based platforms, Microsoft will be facing another problem: x86 programs can’t run on an ARM machine. Of course, we have seen Office on an ARM based machine on Computex 2011 – and I’m sure, Microsoft will port its own products on ARM platform. But millions of legacy apps, written for the x86 platform will be “out-of-order” …

Reading articles about Intel’s investor conference [12], I learned from Intel manager Renée James, that “the ARM based Windows 8 can’t run “old legacy x86 apps” (Windows 8 ARM will have no “Windows 7 Mode”). Well, in the context of this conference it sounds reasonable. But then I read two days later, that Microsoft has denied, they made a decision not to support “Windows 7 Mode” on ARM platforms – which catched my attention. Ups, what’s in the stack?

And how comes HTML and JavaScript into the game?

At that time I rembers about a short remark, made by Jo Mary Foley, about technologies, used in Microsoft research laboratories [12]. One of the keywords was XAX, and then I begun to “dig a bit”. The keyword XAX technology leads me to an arcticle, published in 2008 from MS resarchers [13]. The article discusses the question, how to port desktop apps to the web. The researchers shows, that a simple syscall interface is sufficient to virtualize legacy apps. Memory management, task scheduling, I/O and so on is handled from the host os.

They called it “pico processors”, that comes with a stripped core and loads the application code into a sandbox for execution. The team was able to port several million lines of codes from existing applications (sourceforge) during 2 week to be executed in pico prozessors runing on Windows and Linux .

So, what’s the beef? Two things came into my view: First of all, they mentioned the goal “to move desktop apps into the web”. The pico processors was implemented as simple browser add-on. Ups, a browser? That thing, that will be used to view HTML based web pages? It was just another piece in a big puzzle. With XAX Microsoft has a technology, that can use a browsers rendering engine to implement pico processors as browser add-ons. The performance, mentioned within the MS papers wasn’t that bad overall.

Another thing catched my audience. There is a section “Binary rewriting” within the MS document. It deals with the question, how code of RISC processors, which isn’t x86 compatible, may be executed, using rewriting the binary code. And that’s the next piece falling into the puzzle. Using a pico processor and binary rewriting could be a solution, to execute native x86 apps on ARM based Windows 8 systems. From this view, Microsoft deny about Intel’s message “Windows 8 for ARM will come without ‘Windows 7-Mode’” looks senseful.

A further search in the net leads me to two additional articles [14, 15].  The first one discusses security issues in browser ertensions, whilst the latter on was just publihed and deals about HTML based Apps. So can “immersive apps” be apps sandboxed in a pico process? Under this view, the HTML5 based start screen will be just a piece in a big puzzle – but it makes much sense.

Maybe I’m wrong, and Microsoft will introduce a different solution on BUILD 2011. But I guess, in future we will facing a scenario, where apps will run sandboxed in a pico processor (maybe called “App-V for Windows clients”).

Links:
1: Windows 8 Preview auf Computex & AllThings D
2: Windows 8 Video(-analyse) von der D9
3: Stirbt Silverlight mit Windows 8?
4: ‘Windows 8’: Erster Blick auf “Jupiter”?
5: Windows 8: Netter Beitrag zum Jupiter-Fiasko
6: Celebrating Microsoft’s Cohesive New User Experience Strategy
7: Netter Artikel zur .NET-Zukunft unter Win 8
8: Arbeitet Microsoft an Bing Live Tiles?
9: Interessante MS-Patente für Touchbedienung
10: MinWin, Hyper-V und Windows 8
11: Blick in die Glaskugel: so wird Windows 8
12: “Windows 7 Mode” für Windows 8?
13: Leveraging legacy code to deploy desktop applications on the Web
14: Verified Security for Browser Extensions
15: C3: An Experimental, Extensible, Reconfigurable Platform for HTML …
16: Windows 8: MinWin and what it means for virtualization
17: Application Virtualization
18: Why Windows® 8 Chooses HTML 5 over Visual Basic and Java® Script?


Werbung

Über Günter Born

IT-Autor, Blogger borncity.de
Dieser Beitrag wurde unter Virtualisierung, Windows 8 Beta abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf Why Microsoft choose HTML5 for Windows 8 Apps

  1. Pingback: [BLOCKED BY STBV] Leeboxz2

  2. Günter Born sagt:

    Leeboxz2: The article is a bit outdated …

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *