Metro dans Windows 8 : ce qui change

Pour l'utilisateur, une interface différente où tout est dans le mouvement: pas de boutons ni de listes. Pour le développeur, c'est la fin des API traditionnelles, même s'il continue à utiliser les mêmes langages d'interface et de programmation.

On aura le choix sous Windows 8 entre cette interface de conception entièrement nouvelle et la version Desktop compatible avec Window 7 et supportant les mêmes logiciels.

Metro sous Windows 8

Nouvelle interface pour l'utilisateur

Plus de fenêtres en cascade comme on les connaît depuis le début de l'interface graphique, donc depuis 1995 pour Windows. Elles permettent de passer facilement d'une application à l'autre, mais cela ne veut pas dire qu'on ne peut pas le faire sous Metro, simplement on ne voit qu'une chose à la fois (c'est cohérent avec l'idée d'application immersive), il faut appuyer sur une touche ou faire un mouvement des doigts pour passer à une autre application.

La barre de tâches, les icônes du bureau, le bouton démarrer, les gadgets, tout cela disparait, on ne voit plus que les images correspondants aux applications. Mais si on ne voit pas le bouton démarrer, le menu de sélection est toujours présent, il faut pousser la souris là où il se trouvait encore dans Windows 7 pour le faire apparaître. Metro demande donc un peu de savoir-faire et le débutant devra lire un manuel, comme lorsqu'on acquiert un nouveau matériel.

Nouveau backend pour le programmeur

Les programmeurs étaient habitués à Win32 et à .NET. Cela n'existe plus, tout au moins sous la nouvelle interface, même si ces API perdurent sur le Desktop. Pour Metro le backend est WinRT, et il fonctionne différemment, entièrement en mode asynchrone. Chaque appel à une fonction ouvre un nouveau thread, indépendant du délai de fonctionnement des autres.

C'est quelque chose avec quoi devra se familiariser le programmeur, même si l'on peut continuer à utiliser XAML et le langage C#.

XAML n'est pas le seul langage d'interface, HTML 5, en conjonction avec JavaScript est une alternative. Il ne faut pas compter cependant sur la portabilité de l'application, car sous Metro, elle doit s'interfacer avec les fonctions de WinRT qui donnent accès aux fonctions du système et WinRT n'est présent que sur Windows 8.
Pour espérer faire fonctionner l'application sur un autre environnement il faudrait disposer de l'équivalent pour WinRT de ce que l'on a pour .NET, un framework compatible comme Mono sous Linux. Cela reste à réaliser. Il va de soi que Microsoft va offrir aux logiciels des possibilités étendues à travers WinRT, comme par exemple Kinect, pour inciter les éditeurs à cibler cette plateforme propriétaire spécifiquement (ce qui oblige à passer par la boutique en ligne qui assure un pourcentage de 30% à Microsoft).

Le programmeur doit aussi dire adieu à Silverlight, car IE sous Metro ne supporte pas les plugins. C'est fini aussi pour Win Forms qui était encore implémenté sous WPF, car WPF n'existe plus.
Quand à .NET, il difficile à dire s'il est toujours présent. L'API à changé, a été réorganisée, un sous-ensemble de .NET est toujours présent, mais on ne l'utilise plus de la même façon, c'est devenu plus simple.
Pour continuer à utiliser ces technologies, il faut programmer pour le Desktop classique plutôt que pour Metro. Mais il est vraisemblable que l'utilisateur se tournera vers Metro et que ce dernier offrira des quantités de nouvelles applications immersives qui lui feront apprécier cet interface. Il y a donc un train, ou plutôt un Metro, à ne pas rater.

Et les applications web?

Une application web ne fonctionne pas directement dans Metro, même s'il supporte les mêmes standards, car sur cette plateforme les logiciels fonctionnent en interaction avec WinRT. Mais parmi les applications déjà disponibles figure une version spéciale du navigateur Internet Explorer 10, qui lui, permet de faire fonctionner ces applications en ligne.

Metro est visiblement une interface pour tablettes. Microsoft fait donc le pari qu'elles deviendront si populaires, que l'utilisateur voudrait utiliser tout ordinateur comme il utilise une tablette.