La plateforme Modern UI

Avec Windows 8 et plus encore Windows 10, Microsoft veut promouvoir une plateforme unique au bureau et mobiles.

Modern UI est une interface tactile donnant accès aux applications classiques ou autres services tels que vidéos, service météo, etc... qui remplace l'écran avec les icônes. 
Les tuiles supportent les notifications, elles montrent l'état courant de l'application qu'elles représentent.

Il semble que toutes les applications puissent fonctionner à la fois de façon tactile, ou avec la souris, ou le clavier, et l'interface de démarrage composée de tuiles comme sur Windows Phone, que l'on voit à droite, est construite en HTML 5 et JavaScript.
Les applications modern depuis Windows 8 peuvent donc utiliser une interface en HTML.
Ces applications seront en ligne ou connectées au web mais ont accès aux fonctions locale. Dixit le responsable de Microsoft:

Nous nous sommes clairement laissés influencé par les mobiles.

Microsoft a conçu une arme pour contrecarrer Google Chrome OS et Android qui se popularisent sur les netbooks. Ceux-ci auront une part de marché parce qu'ils sont gratuits, mais la majorité des utilisateurs préféreront au premier un système pouvant faire tourner des applications locales (ce que sont les applications mobiles).

Le nom Metro a d'abord été choisi parce que les tuiles ressemblent aux panneaux d'information souvent utilisés par les transports en commun. Cependant, parce que c'est déjà une marque déposée, ce nom est officiellement abandonné par Microsoft qui parle depuis de Modern UI. Que l'on peut simplifier en MUI.

En mai 2015, Microsoft a annoncé qu'elle supprimait son 'application Skype sous Modern UI au profit de la version bureau. Il semble donc que cette interface ne soit pas destinée à remplacer la plateforme classique!

Qu'est-ce qu'une application immersive?

Le mot revient continuellement dans les billets du blog consacré à Windows 8. Qu'est-ce qu'une application immersive? 
Cela désigne une application dont l'interface disparaît totalement au profit de la partie utile, les textes ou images dont à besoin l'utilisateur. 
Dans une application classique, le contenu s'insère dans un cadre contenant boutons, barres de menus etc... Tout cela devient invisible ou se transforme en instruments similaires à des objets concrets avec lequels l'utilisateur interagit. 
L'interface Modern UI et la programmation HTML 5 seront pour les applications immersives. Les applications classiques conserveront leur interface dans Windows desktop.

Les applications immersives sous interface Modern UI peuvent être codées en HTML 5 ou en langage natif ou avec XAML avec l'interface Jupiter. Modern UI dispose d'un version spécifique du navigateur qui n'accepte aucun plugin. 
Ces applications Modern UI sont les seules qui fonctionnent sur tablettes et PCs. Elle seront très facile à réaliser et seront synchronisées avec les services en ligne. 
Sur le long terme elles sont destinées à remplacer les applications natives classiques.

Modern UI et les développeurs

Pour résoudre l'incompatibilité entre d'une part l'interface Modern UI avec ses applications immersives faites pour les tablettes comme pour les PC, et d'autre part les applications classiques auxquelles les utilisateurs ne voudront pas renoncer, Windows 8 offre deux interfaces indépendantes.

L'interface quelle qu'elle soit s'adapte à la tâche en cours. Des icônes en relation avec celle-ci apparaîssent lors de chaque action de l'utilisateur. 
Pour le graphisme, Aero Lite est une version légère d'Aero pour configurations limitées, basée sur Modern UI. 
Windows Desktop fonctionne aussi sur une tablette. Une tablette connectée à un clavier et un moniteur vidéo, remplace ainsi parfaitement un encombrant PC.

infrastructure de Windows 8

Applications du bureau classique et applications Modern UI

Pour les développeurs, c'est aussi la fin de la distribution libre. 
Microsoft est claire sur ce point, il n'est pas possible à n'importe quel programmeur de distribuer un logiciel fonctionnant sur cette interface, comme cela était le cas jusqu'ici sur Windows et comme c'est toujours le cas sur Linux, et sur les mobiles (à coté des AppStore et autres boutiques).

Toutes les applications doivent être téléchargées sur la Windows Store. Pour y placer son application, un développeur doit avoir une licence et chaque application qu'il réalise doit passer par un processus de certification. Ensuite la boutique prélèvera 30% des revenus du logiciel. Ceci explique qu'il y ait si peu de développeurs pour la plateforme à ce jour. 

Alternatives

Des mouvements de résistances sont en train de naître pour éviter de passer par cette taxation imposée. C'est le cas de SteamOS, une version Linux conçue pour les jeux, ce qui était jusqu'ici la prérogative de Windows. Des fabricants veulent aussi installer Android dans une machine virtuelle pour des applications immersive libérées de contraintes de Microsoft. Et en fait, n'importe qu'elle développeur peut créer son interface d'applications immersives, comme le fait par exemple Tiloid, créé par .... Scriptol!

Native Client

Native Client permet d'utiliser du code natif dans le navigateur et WebGL est une interface à l'API 3D native dans le navigateur, ce qui rend clair que la possibilité de s'affranchir totalement de Windows devient réaliste pour la majorité des utilisateurs. 
En fait les éditeurs de jeux commencent à implémenter des versions dans NaCL. Et le jeu est le principal argument de vente de Microsoft auprès des particulier: la compatibilité avec Windows rend ce système indispensable. Cette dépendance cessera avec NaCl car chrome peut fonctionner sur Windows ou d'autres systèmes.

L'interface Modern UI composée de HTML 5 + API native peut se remplacer par Chrome + NaCL + WebGL. Reste l'interface XAML qui concerne plutôt les applications professionnelles.

Asm.js

Asm.js est une version réduite et très rapide de JavaScript, implémentée dans le navigateur Firefox. Elle permet de faire tourner tous les types d'application de manière totalement portable. Cela pourrait fonctionner dans Modern UI, mais se cale difficilement dans les projets de Microsoft, pour qui la portabilité sur d'autres OS n'est pas la priorité.

Rien n'empêche de créer une interface à tuile dans une page HTML et de l'utiliser pour lancer des applications en Asm.js.