Dans mon tout premier post sur googland.fr, à l’occasion de la conférence Build Windows, je donnais mon premier sentiment sur le nouveau système que Microsoft va proposer en 2012: Windows RunTime. Presqu’un an plus tard, alors que je prépare mes sous pour acheter un notebook, ma faveur va encore à Chrome OS.
Tablet 600: La 1e tablette Windows RT de Asus.
- Qu’est-ce que Windows RT?
Lorsque Microsoft a présenté le système Windows 8 aux développeurs, il faisait apparaître dans sa pile applicative 2 parties distinctes:
1. Celle héritée de Windows 7 (Desktop Apps),
2. Celle s’appuyant sur Windows RunTime (Metro style Apps).
Pile applicative du système Microsoft Windows 8.
Les WinRT APIs font interface avec le hardware Intel x86 ou ARM, alors que Win32 ne gère que les architectures x86. Une machine sous ARM ne peut logiquement pas faire tourner une application Win32 (Excel, Photoshop…).
Pour clarifier un peu les choses, Microsoft a décidé de créer une version de Windows 8 dédiée aux machines ARM et limitée à la pile WinRT. Au départ, il l’a nommé Windows on ARM, puis finalement Windows RT.
Ainsi le consommateur achetant un produit estampillé Windows RT se rend bien compte qu’il n’aura accès qu’à des applications Metro dessus. Enfin, j’espère… que c’est clair pour tout le monde.
- Quelles applications sous Windows RT?
C’est compliqué de parler d’un système qui n’est pas encore commercialisé, mais la description de la plateforme permet d’anticiper sur le type d’applications qu’il sera possible de télécharger depuis le Windows Store.
Au dessus des WinRT APIs, nous avons le fameux trio HTML/CSS/Javascript. Autrement dit, Windows RT sera capable de faire tourner de belles applications web écrites en HTML5. Mozilla entre autres nous prouve qu’il est possible de faire énormément de choses avec cette technologie, au point de préparer BootToGecko, un système exclusivement centré là-dessus. Jusque là, Windows RT s’apparente beaucoup à Chrome OS puisqu’on le sait tous, Chrome a pour fonction première de faire tourner correctement ce qu’on appelle les Rich Internet Applications.
[youtube]http://youtu.be/oSG_pj2UNr8[/youtube]
Aperçu d’applications web modernes sur BootToGecko.
Il y a ensuite la possibilité d’utiliser les langages C/C++/C#/VB/XAML, autrement dit le moteur de RDA (Rich Desktop Applications) Microsoft Silverlight. Cette technologie, proche sur le principe de Adobe AIR et de Oracle JavaFX, permet de développer des applications connectées modernes tirant partie des capacités natives de la machine. Je n’en ai personnellement jamais utilisée et je galère pour trouver des vidéos de démonstration potables sur Youtube là dessus. Microsoft est très probablement en train d’utiliser cette technologie pour porter sa suite Office sur Metro.
Windows RT, c’est en quelque sorte un Silverlight OS (pour ne pas le réduire à un Internet Explorer OS). Si je cherche un équivalent du côté de Chrome OS, je pense inévitablement à la technologie Native Client.
[youtube]http://youtu.be/qvdQAcb0-KE[/youtube]
Présentation Microsoft de Windows On ARM.
- Chrome OS ou Windows RT?
Je vous ai déjà présenté mon choix au tout début de ce post, il est très personnel, mais je vais essayer de l’argumenter un peu.
Chrome OS et Windows RT se ressemblent beaucoup. Les deux systèmes sont modernes, orientés vers le web et peuvent accueillir des applications très puissantes mais qui pour l’instant n’existent pas. Du côté de Google, la technologie Native Client peut devenir open-source un jour (notamment avec PNaCl) et permet de porter du code C/C++ existant dans un nouveau compilateur. Du côté de Microsoft, la technologie Silverlight permet l’équivalent.
Je suis toutefois impressionné par Native Client, notamment sur l’aspect sécurité, au point de faire aujourd’hui aveuglément confiance lors de l’installation d’une application utilisant cette technologie.
Là où Windows RT apporte un plus par rapport à Chrome OS, c’est indéniablement sur l’aspect tactile. Je ne vous cache pas que je suis un grand fan des produits Asus et que la machine qui me ferait craquer serait un Transformer Book sous Chrome OS, exactement dans le genre de la Tablet 600 sous Windows RT, présenté récemment au Computex:
[youtube]http://youtu.be/YR5Xh_1U35s[/youtube]
Tablet 600: La 1e tablette Windows RT de Asus.
Lorsqu’on voit Chrome for Android ainsi que Chrome for Windows 8, je me dis qu’il n’y a qu’un tout petit pas à franchir pour rendre l’interface de Chrome OS tactile.
A quoi cela servirait ? Simplement à décrocher l’écran, s’installer sur son canapé et consulter GMail, GReader ou GBooks au doigt. Ces applications web sont d’ores et déjà prêtes pour le tactile. Mais bon, si Google préfère laisser ce marché à Android, je m’en passerai. Il priverait toutefois Chrome OS de cette dualité qui rend Windows RT attractif.
Enfin, il faut savoir que seul Internet Explorer sera disponible comme navigateur sur Windows RT. Un choix difficilement justifiable selon moi, qui n’a pas tant de conséquence que ça puisque IE10 est un navigateur très moderne. Personnellement, Windows RT est disqualifié à cause de ça, mais ce n’est que mon avis.
Merci Yvan pour cet article, tu nous a pondu une formidable synthèse, ça nous permet d’y voir plus clair.
Merci pour cet article très enrichissant !
C’est mon plaisir. On attend toujours Chrome OS sur ARM pour un match à armes égales. Tu parles d’un jeu de mot pourri…
Contrairement à iOS ou Android, Windows RT permet de mettre côte à côte 2 applications. Si elles sont bien écrites, elles se redimensionnent correctement et l’expérience peut être agréable je pense. C’est une belle nouveauté et un vrai manque du côté d’Android pour en faire un système desktop multitâches.
Depuis l’introduction d’Aura, il est en revanche très facile de faire de même sous Chrome OS. Le système de fenêtrage est furieusement inspirée de Windows 7, avec même quelques nouvelles gestures. Tu ouvres 2 applications, les places côte à côte et d’un seul geste tu peux ajuster la proportion occupée par chacune des 2 fenêtres (exactement comme sur Metro pour ce dernier gesture). Les web apps bien écrites adaptent automatiquement leur affichage.
Il n’y a pas énormément de choses qui m’attirent dans les tablettes. Par exemple, je ne supporte pas de jouer sur un écran tactile et le clavier tactile m’irrite énormément. En revanche, je reconnais que cela apporte un grand confort sur toutes les applications de lecture.
Je n’ai pas l’impression qu’iOS, Android et même Windows RT soient parvenus à trouver ce parfait équilibre pour être LE système des machines Transformer.
Peut-être qu’un dual-boot Android / Chrome OS ferait sens finalement. Ou alors, il faut arrêter de s’obstiner à vouloir combiner 2 usages dans la même machine. Je crois que je vais finalement acheter à la fois un chromebook (450$) et une Nexus Tab (250$). Je n’ai plus qu’à mettre de côté 700$ :D.
Je ne savais pas tout ça de windows RT, et donc cette forte similitude avec chrome os, merci !
Avec le nom windows marqué dessus, ça devrait marcher, mais si les conseillers expliquent bien les limitations côté applications, surement qu’ils reviendront à windows x86 …
Et je ne pense pas que quelqu’un conseillera chrome os malgré son store qui se remplit de jours en jours et a déja, mine de rien, pas mal d’applications de ce que je vois en ce moment ! Il y a un chiffre trouvable pour le nombre d’apps en ce moment sur le chrome store ?
De toute façon, bon article bien complet merci.
Il doit y avoir une cinquantaine de web apps gratuites de qualité sur le Chrome Web Store, en comptant celle de Google. Quant à Native Client, il n’a servi qu’à produire des jeux pour l’instant et j’en dénombre environ 5: Angry Birds, Bastion, Mini Ninjas, From Dust…
Tu as probablement raison, toute l’industrie (fondeurs et constructeurs) trouve un intérêt à pousser Windows en avant, car c’est le plus gros marché à renouveler.
L’avenir de Chrome OS ne tient pas selon à son succès auprès des particuliers. J’aimerais beaucoup qu’il investisse les entreprises pour y simplifier la vie de tout le monde. Il y a certaines organisations (les banques) qui mettent beaucoup d’argent au niveau de la DSI pour le développement de master pour leurs postes de travail. Mais chez la plupart des autres, ça vire au cauchemar l’administration IT et engendre un stress incroyable.
Il parait que Native Client est aussi impliqué dans le lecteur PDF et le tout nouveau lecteur de documents Office hors-ligne, intégré à Chrome OS. Mais je n’en suis pas sûr.
Enfin, il y a aussi le Google Apps Marketplace où on peut trouver des web apps pour professionnels, mais évidemment payantes.
Pour Angry Bird, c’est pas du Native Client (le jeu fonctionne en désactivant le plugin). C’est du WebGL et Javascript certainement.
Le lecteur PDF aussi marche sans Native client. (il annonçait une refonte du lecteur PDF avec Native client mais ça ne semble pas en place)
Oui, tu as raison pour Angry Birds. Il me semblait pourtant à un moment l’avoir aperçu sur le site dédié à Native Client. D’ailleurs, à ce sujet, il y a beaucoup plus que 5 jeux:
https://developers.google.com/native-client/community/application-gallery
Mais j’avoue que les jeux comme Cordy et Running Fred m’intéressent moins… J’ai toutefois testé AirMech (qui n’est pas finalisé) et il est assez impressionnant et a l’air très fun.
Quant aux lecteur PDF et Office, il y a un flou autour de ça. A un moment, il fallait activer le flag Native Client pour pouvoir lire les documents Office hors-ligne. Puis Google a lancé une mise à jour et Native Client n’était plus nécessaire. Bizarre… Au final, sur ces portions de codes greffés dans le système, c’est assez difficile de savoir à quel point Native Client est impliqué.
Il me semble qu’il y a une différence fondamentale entre un Chrome OS et un Windows RT : Chrome OS interprete le code javascript (et C++ ?) de la webapp à la volé, puis exécute le code machine généré. Sur windows, une application, qu’elle soit écrite en HTML/javascript, en C#, ou en C++, est compilé en un éxécutable installé localement sur la machine.
Une autre précision sur les langages : Le C et le C++ sont directement compilé en code machine pour un max de performances. Le C# et le VB sont des langages managés, qui s’éxécutent dans une machine virtuelle, ce qui réduit grandement les problèmes de compatibilités. Un exemple d’application codé en C# dans l’environnement .net : paint.net.
Le lien suivant explique bien la différence entre un langage interprété (Javascript) et un langage compilé (C++):
http://www.journaldunet.com/developpeur/tutoriel/theo/060601-theo-difference-langages-compiles-interpretes.shtml
A moins de me tromper, je crois bien que le Javascript ne peut être qu’interprété et le C++ que compilé.
Windows interprète (à la volée) le Javascript.
Native Client est un compilateur qui produit un exécutable (fichier .nexe). En cliquant sur un lien, on télécharge l’exécutable et le moteur de Chrome l’exécute. C’est très proche, si ce n’est identique, au principe de fonctionnement de la machine virtuelle Java Web Start (téléchargement et exécution d’un fichier .jar). Chrome OS n’interprète pas le C++.
Mais je te l’accorde, depuis Java, on a vu se multiplier les moteurs/interpréteurs de bytecode. Native Client comne Silverlight sont des machines virtuelles. Le compilateur NaCl produit 3 nexe (x86-32, x86-64, ARM). Avec PNaCl, le nexe sera en bytecode « interprétè » par LLVM.
La cohabitation WindowsRT et Windows8 sera intéressante à observer…Puisque en dehors des tablettes…des netbook ARM, nettop ARM ou AIO ARM vont apparaître avec comme OS WinRT.
Cette fragmentation sera-t-elle enrichissante ? Ou créera-t-elle une certaine confusion ?
Normalement, Win RT représente l’avenir, au point que certains développeurs nomment « legacy » le système Win32. Ils auraient intérêt et seraient encouragés à ne faire que du WinRT. Win32 serait amené à disparaître. Sera-t-il encore là sur Windows 10?
Attention, sur windos RT, si on peut mettre deux applications cote à cote, ça ne se fait pas n’importe comment : il n’y a que deux taille d’application possible, pleine taille ou réduite. On ne peut donc pas choisir librement la place donnée à chaque appli (pas de 50 50 possible par exemple)
J’ai un doute sur le comportement de winrt avec le html/javascript. Quand je lis des articles comme celui ci :
http://www.infos-du-net.com/actualite/dossiers/272-7-windows8-microsoft-metro.html
Je comprend qu’un développeur poura coder son appli en language web, mais que ça donnera bien une application standard, et donc compilé en bytecode ?
La question est de savoir Comment winrt impacte une application productive standard. Notamment, vu les cycles de développement très long de certaines applications spécialisé…