Executive summary : C’est en général le premier jour des TechDays que Microsoft annonce les grandes nouveautés, et le troisième qu’ils parlent du futur. On reste dans les bonnes vieilles habitudes, et nous avons le droit à des présentations futuristes, mais qui sont bel et bien réelles. En particulier, l’interaction avec une console de jeu par les mouvements du corps humain, qui sera livré dans la console XBox à la fin de cette année. Microsoft semble également vouloir mieux faire descendre la recherche dans ses produits, avec la mise en place des Microsoft Labs qui font l’interface entre les deux.
Ils aiment bien les shows à l’Américaine, chez Microsoft ! La musique fait tellement de bruit pour accueillir les intervenants que j’en ai encore les oreilles qui sifflent.
Cette session plénière est tournée vers le futur.
Programmation par les enfants
On commence par la possibilité de réaliser des interfaces permettant à des enfants de programmer. Kodu est un jeu programmable avec une interface spécifique sur des enchaînements cause-conséquence. Une vidéo montre des enfants programmant des actions de jeu. Ils doivent avoir autour de 6 et 8 ans.
C’est un exemple de programmation par métaphore. Bien sûr, on est à un haut niveau d’abstraction, c’est-à-dire que les enfants n’ont pas programmé les fondements du jeu, mais plutôt le manipulent. Il faut des développeurs bas niveau pour mettre en place cette infrastructure. Mais en même temps, n’est-ce pas ce que nous faisons tous ? Qui a mis en place une pile HTTP, alors que nous l’utilisons tous dans notre code ?
L’idée est que faire programmer des enfants permet d’apprendre sur l’amélioration de l’ergonomie, et semble aussi important pour le futur, car beaucoup de jeunes savent utiliser les programmes, mais ne savent pas les créer, ce qui est un peu dommage, car comme dit Bernard Ourghanlian, c’est comme savoir lire et pas écrire.
Des retours intéressants sont d’avoir des interfaces de programmation avec le moins de code possible, et avec une aide à la programmation tolérante aux erreurs.
Robotics Studio pour Lego Mindstorms
NxtNet sur Codeplex : SDK.NET pour Mindstorms NXT en Open Source.
On peut connecter une manette XBox sur un robot Lego et faire de la programmation événementielle pour relier les actions de la manette aux moteurs ou bien inversement les actions des capteurs sur la vibration de la manette.
Il y a une approche modulaire très importante.
Programmer sans code
Les deux précédentes démonstration font voir des méthodes de programmation sans code, qui s’adapte bien aux défis des prochaines années. Pour le parallélisme, par exemple, il est intéressant de prendre un niveau d’abstraction pour ne pas avoir à gérer les threads, par exemple. De la même manière que l’élévation de niveau avec le GC permet de ne plus avoir à gérer soi-même la mémoire.
Quel est le prochain niveau d’abstraction ? Les méthodes formelles pour coder sans bug et avec du code prouvé mathématiquement sont extrêmement complexes. Un autre point d’inflexion possible pourrait être les DSL, c’est-à-dire avoir des langages spécialisés pour un domaine de traitement particulier. Bernard Ourghanlian donne l’exemple d’Excel, qui est un DSL.
Une démonstration est menée sur une extension de Visual Studio permettant de générer du code fonctionnel à partir de diagrammes. Dans ce cas, non seulement on a un DSL, mais en plus avec une couche d’abstraction graphique.
Un autre exemple est le parcours d’architecture qu’il y a dans Visual Studio 2010 en version ultimate. Sans même parler de DSL, ça semble être une excellente manière de s’approprier du code d’une application inconnue. A tester…
Pour passer le saut quantique nécessaire à l’évolution, il faut que les modèles sur les DSL se débarrassent des problèmes de synchronisation modèle-code, afin que, du point de vue extérieur, on ait vraiment le sentiment que c’est le modèle qui s’exécute.
Agilité
Ca ne suffira toutefois pas à réduire le nombre de projets en échec. Pour cela, Microsoft pousse de plus en plus les méthodes agiles, et montrent une utilisation de la méthode Scrum.
Une tâche est créée dans TFS, et l’attribution des tâches se fait sur une table Surface.
Interface Utilisateur Naturelle
L’idée est d’améliorer l’immersion, pas seulement avec de la voix ou du touch, mais avec de la 3D, de la reconnaissance des mouvements, etc. A terme, on voudrait avoir un ordinateur qui ne travaille plus sous notre commande, mais en notre nom.
Projet Natal inclus dans la XBox à partir de Noël prochain : le but est de ne plus avoir besoin de la manette. Des émetteurs infrarouge enregistrent les mouvements du corps humain, qui devient du coup le périphérique d’entrée. Ce qui est surtout intéressant est que ça s’adapte aux mouvements de chaque personne plutôt que de demander à chacun de s’adapter à la machine.
Starnav.fr permet de piloter un ordinateur par les mouvements de la tête enregistrée par une webcam. Une démo est réalisée.
R&D
Création des Microsoft Labs, qui ont pour but de faire le lien entre Microsoft Research et les produits. Typiquement, PhotoSynth a été produit comme ceci.
La démo qui suit est sur la recherche améliorée sur le web. Aujourd’hui, quand on va sur le web, on ne cherche que sur la structure, et non pas la donnée du web. Pivot utilise les métadonnées des fiches wikipedia pour structurer dynamiquement la recherche dans plusieurs millions de points d’entrée de données. Il y a donc eu indexation d’un contenu web par Pivot pour offrir une meilleure expérience de recherche dans Bing, et tout est basé sur les standards du web, selon les intervenants.
GetPivot.com pour tester.
La dernière démonstration est assez impressionnante, avec des milliers de pages de journal indexées sur une seule image à la mode DeepZoom, et dans lesquelles on peut zoomer jusqu’aux conditions particulières de réservation d’un hôtel dans une publicité dans un des numéros du journal.