Ce sont des rumeurs, mais Microsoft serait prêt à considérer l’ajout d’un runtime Android (ART ou, plus raisonnablement, Dalvik) dans son OS mobile et bureau.

Pour comprendre en quoi c’est raisonnable de le penser, il faut connaître la façon dont les deux OS sont construits. Du côté d’Android, on a l’habitude de montrer ce diagramme :

Android-architecture

Android fonctionne avec un noyau Linux, quelques librairies essentielles et une machine virtuelle qui, pour le moment encore, est officiellement la Dalvik Virtual Machine. Au-dessus, on trouve le framework (soit l’ensemble des API que nos applications utilisent) et bien évidemment les applications que nous utilisons (notre clavier, notre launcher, Google Play ou bien l’application FrAndroid). L’idée d’avoir une machine virtuelle est d’abstraire complètement les couches logicielles ou matérielles de base. Ainsi, changer de processeur ou de noyau (pour utiliser BSD comme iOS, ou NT Kernel comme Microsoft) est possible et devrait n’avoir aucune influence sur le fonctionnement des applications pour autant que l’on développe une machine virtuelle spécifique.

Dans le monde de Big Bilou, on fonctionne sur un modèle similaire :

image

Voir ce très intéressant post sur l’architecture de Windows.

À droite, le monde PC traditionnel, à gauche, le monde nomade. Pour des raisons historiques, il est possible de développer des applications qui dépendent directement du noyau et non d’une machine virtuelle. C’est le monde des applications Windows tel qu’il a été implémenté sur les premières versions de l’OS fenêtré. Toutefois, depuis plusieurs années, Microsoft pousse fort ses technologies dotNet qui sont le concurrent direct de Java : un ensemble de langages dont C# sont utilisés pour développer des applications qui seront exécutées via une machine virtuelle, la CLR (Common Language Runtime).

Dans le monde nomade de Microsoft, on rajoute encore une couche, le WinRT, ou Windows RunTime, qui est un ensemble d’API utilisées pour les applications à la sauce Metro si bien que, pour simplifier, tout ce qui l’utilise peut être rendu à la sauce Windows 8.

Quand on regarde ces deux diagrammes, il est aisé de comprendre que pour Microsoft, il peut être simple de mettre, aux côtés de la CLR, un portage de la machine virtuelle Dalvik pour WinRT/NT kernel. Le mot simple est à prendre entre pincette mais ce que l’on veut dire par là, c’est que du côté de Microsoft, contrairement à, disons, BlackBerry, les compétences sont là et l’OS n’aurait pas de mal à accueillir une brique de ce genre.

Cette rumeur, si elle s’avérait vraie pose un certain nombre de questions :

  • Pourquoi cette machine virtuelle Android serait-elle basée sur Dalvik et pas ART ?

ART n’est pas encore tout à fait un produit fini et bien qu’il y ait de grandes chances que ce soit le RunTime de la prochaine version d’Android, Microsoft ne baserait pas son travail sur une version en cours de développement alors qu’il pourrait se baser sur du code éprouvé, et testé sur de nombreux types de processeurs. N’oublions pas, enfin, que si Microsoft veut passer les applications Android à la moulinettes WinRT (pour des raisons d’homogénéité ergonomique), il aura beaucoup de code à écrire lui-même.

  • Pourquoi Microsoft ferait-il une chose pareille  ?

Pour Flappy Birds !

  • Non, mais sérieusement ?

Le nouveau patron de Microsoft, Satya Nadella,  ne l’oublions pas, a précédemment dirigé la branche cloud des services Microsoft et notamment la plate-forme Windows Azure. À ce jour, Windows Azure est plutôt un modèle d’interopérabilité avec la possibilité de fournir des machines Windows comme des machines Linux, des applications Java ou PHP au même niveau que des applications dotNet.

Pour Nadella, le futur de Microsoft est l’interopérabilité des systèmes.

  • Beaucoup des fonctionnalités essentielles d’Android ne sont pas implémentées dans Android lui-même mais dans les services Google, justement pour que ce genre de choses n’arrive pas.

Oui et non. Il est vrai que de plus en plus de nouvelles fonctionnalités viennent des Google Play Services et non d’Android en soit mais elles sont toutes non-essentielles. Pour mieux comprendre, nous vous invitons à lire la réponse de Dianne Hackborn, ingénieure Google, à cet article d’ArsTechnica.