Microsoft possède sur son vaste campus de Redmond une unité spécifique baptisée Microsoft Research, ou MSR. De nombreuses technologies et des produits comme le Kinect viennent de projets qui ont été travaillés au MSR. Coté logiciel, des noms de code tels que Menlo et Redhawk ont déjà trouvé écho dans nos colonnes. Avec l'arrivée de Windows 8 et surtout de Windows Phone 8, les applications concrètes semblent être sur le point d'envahir l'écosystème maison. Menlo, la base de Windows Phone 8 Menlo, tout d'abord, est la base de Windows Phone 8. Pour comprendre Menlo, il faut revenir à Vista et au travail commencé par Microsoft. Les développeurs avaient en effet débuté un travail de factorisation destiné à classer les composants de Windows. Avec la version 7 du système, ce travail a abouti sous la forme de MinWin, autrement dit la base minimale nécessaire pour fonctionner : le noyau, quelques pilotes et les fichiers nécessaires à l'exécution de logiciels. Aucune interface graphique n'était de la partie. Menlo a un objectif connexe : celui d'être un système complet, mais minimal. Il est donc basé sur MinWin, mais fournit des éléments d'interface ainsi, entre autres, qu'un CLR (Common Language Runtime). Microsoft travaillait en effet sur WIndows Phone 7 depuis un moment à l'aide d'un noyau CE et du Compact Framework .NET. L'éditeur était cependant frustré du manque d'alignement et de compatibilité avec le noyau NT et le vrai CLR. Menlo est l'aboutissement d'un projet de remplacement de la base du système mobile. Un remplacement confirmé par Microsoft puisque l'on sait que Windows Phone 8 a la même base que celle de Windows 8, à peu de choses près. Menlo est un pas important pour Microsoft, puisque son système mobile est désormais aligné avec celui pour les PC. Important à plus d'un titre en fait : comme il s'agissait de porter une base NT vers l'architecture ARM, les résultats ont bénéficié autant à WIndows Phone 8 qu'à Windows RT, la variante de Windows 8 pour les tablettes ARM. Dans la foulée, les développeurs ont porté leur compilateur JIT (Just-in Time) vers ARM pour le CLR, puis le CLR lui-même et enfin Silverlight. La prévalence de .NET et de WinRT Une fois que plusieurs plateformes partagent le même système d'exploitation, l'unification des technologies de développement n'est guère loin. Là encore, l'annonce de Windows Phone 8 a montré que les mêmes technologies (quasiment) seraient utilisées que dans Windows 8. Jusqu'au remplacement d'ailleurs de XNA pour les jeux vidéo par le code natif couplé à DirectX. Les environnements .NET et WinRT ont ceci de commun que les applications conçues pour ces environnements peuvent théoriquement fonctionner partout de la même manière. Mais il se pourrait que la distribution des applications sur le Marketplace ou le Windows Store dispose d'améliorations tout droit sorties là encore du MSR. Des technologies proches de la phase de production Microsoft travaille en effet depuis des années sur plusieurs projets aux conséquences potentielles importantes. On pourrait par exemple citer Redhawk, dont la mission est de compiler un code MDIL (pour Machine Dependant Intermediate Language), lui-même issu d'un code managé. Le MDIL est beaucoup plus proche du langage machine et affiche de bien meilleures performances. Cela reste à confirmer, mais le MDIL a de très fortes chances d'être utilisé au sein de Windows Phone 8. On pourrait également citer les travaux menés sur un même compilateur C++/C#, et donc destiné aussi bien au code natif qu'au code managé. Les objectifs sont très nombreux, mais on citera notamment l'exploitation des dernières possibilités offertes par les processeurs Intel, AMD et ARM, la création d'un nouveau type de fichier objet supportant le linking rapide (il s'agit en fait du MDIL) ou encore l'utilisation du parallélisme et de la vectorisation automatiques issues du compilateur créé pour Windows 8. Plus récemment encore, des informations (obtenues grâce à la fuite du SDK de Windows Phone 8) laissent présager que Microsoft pourrait se livrer à des optimisations sur la compilation du code côté serveur. Ces opérations interviendraient après la publication du code par le développeur tiers, lors de la soumission de son application au Marketplace de Windows Phone 8. Ces projets et informations restent en suspens tant que Microsoft ne les confirme pas. Cela étant, la plupart de ces données sont liées d'une manière ou d'un autre à Windows 8 et Windows Phone 8. Les prochains mois devraient être riches en informations, surtout si l'on considère que la conférence BUILD, dédiée aux développeurs, est prévue pour le 30 octobre.