BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Interviews Entretien avec David Rousset sur la spécification pointer-events

Entretien avec David Rousset sur la spécification pointer-events

Favoris
   

1. Bonjour David peux-tu te présenter tout d'abord ?

Je m'appelle David Rousset, je travaille en tant qu'évangéliste technique : un terme américain barbare qui veut dire en gros que je suis là pour expliquer nos technologies lors de conférences, sur mon blog, ou accompagner les clients sur nos derniers produits. En ce moment ça va être Windows 8, Windows 8.1, ou Internet Explorer 11 et je m'occupe beaucoup d'HTML5 pour faire des applications et beaucoup sur le jeu, donc j'ai quand même un métier difficile ;).

   

2. Tu es venu nous parler de la spécification pointer-events. Peux-tu nous expliquer de quoi il s'agit ?

Alors pointer-events : l'idée est de pouvoir gérer le tactile dans les navigateurs et sur les périphériques mobiles. Aujourd'hui il y avait une spécification qui existait qui était le touch-event, qui a fait son petit bonhomme de chemin et qui a été bloqué pour différentes raisons. Par contre qui ne gérait que le tactile. Ensuite, si on voulait coder sur son site web le support du tactile et de la souris, on avait 2 branches de code séparées. Dans le cas de pointer-events, il agrège tous les types d'entrées, que ce soit la souris, le touch ou même un stylet et ça ne génère qu'un seul type d'évènement qui est unifié et qui s'appelle le pointer-event. La notion de pointeur est générique et du coup tu écris le code une seule fois pour viser tout le monde plutôt que d'avoir plusieurs types de codes. Cela a été implémenté dans IE 10 préfixé, on l'a poussé au W3C comme standard et aujourd'hui c'est en Candidate Recommandation c'est à dire que c'est quasiment fini, donc ça avance bien.

   

3. Quels sont les acteurs impliqués dans ce développement et est-ce implémenté dans les navigateurs ?

Alors Microsoft est forcément le premier à l'avoir implémenté puisqu'il l'a créé, ensuite on a été rejoint par d'autres membres, Google a travaillé avec nous aussi. On a poussé du code dans WebKit à l'époque où Chrome était encore basé sur WebKit pour intégrer les pointer-events. On vient de pousser du code aussi dans Gecko le moteur de Firefox pour le supporter aussi. Donc aujourd'hui on va dire qu'il n'y a que nous qui le supportons mais la spécification avance bien et c'est pour cela qu'on a créé le polyfill, le sujet de la conférence qu'on a proposé aujourd'hui à la KiwiParty, qui permet, avec une librairie JavaScript de propager ça sur tous les autres navigateurs.

   

4. Est-ce que tu peux nous donner des cas concrets d'implémentation avec la Surface ou autre par exemple ?

Alors oui, bien sûr. Je travaille avec des éditeurs de jeu et des étudiants qui font des jeux vidéos pour faire un petit joystik virtuel pour contrôler les personnages. Tu écris avec cette spécification, futur standard j'espère déployé partout, tu branches le polyfill et ça marche sur un Windows phone, une Surface ou un PC Windows 8 tactile puisque ça respecte nos spécifications, mais ça marche sur un iPad, un Android ou un téléphone Firefox OS. Donc typiquement, c'est pratique, tu écris le code une fois et, c'est bien le but du web, ça marche partout de la même façon.

   

5. Tu présentes un polyfill : hand.js. Peux-tu nous en parler plus précisément ?

C'est exactement ce que je viens de t'expliquer, c'est le polyfill. Son but a été de permettre d'écrire le code une fois et que ça marche partout. On s'est branché sur les évènements WebKit de type touch-event ou sur la souris, comme ça, si c'est un vieux navigateur, on va dire IE 8 ou inférieur, même si on code avec ce que l'on appelle le pointeur, ça va tomber en fallback sur la souris. Si tu es sur un iPad, ça va marcher avec "touchStart", "touchend", "touchmove" et ensuite chez nous ça va être branché sur la version préfixée actuellement de la spécification. L'idée c'était vraiment de commencer à laisser les gens jouer avec, donc on a des premiers retours en production parce que tant que c'est pas en production ça reste un gadget. On commence à avoir des retours et la bonne nouvelle c'est que JQuery s'est intéressé au projet pour éventuellement l'intégrer. On ne sait pas si ce sera le nôtre car il existe plusieurs polyfill, mais au moins on sait que bientôt un polyfill va arriver dans JQuery donc la on pourra dire que ce sera mature et prêt à la production à priori.

   

6. Dans un autre sujet, on a vu une news arriver avec une demo 3D en WebGL dans IE11. Peux-tu nous en dire plus ?

A titre personnel, on est super content de l'arrivée de WebGL. Ca a mis un peu de temps pour qu'on arrive à se convaincre et que l'on soit satisfait du niveau de maturité de WebGL pour l'implémenter. C'est devenu suffisamment intéressant pour nous pour qu'on le fasse. Ca arrive avec IE11, avec un support du coeur de WebGL, ensuite il y a plein d'extensions et on est en train de regarder les extensions que l'on va implémenter. Mon collègue David avec qui je travaille tout le temps (on est un binôme sur HTML5) fait de la 3D depuis qu'il est tout petit, peut-être même dans le ventre de sa mère :). Il a re-implémenter des librairies JavaScript pour faire des calculs matriciels, pour gérer les pixels, les vertex shader tout ce vocabulaire magique de la 3D pour faire son propre moteur 3D. Il existe three.js qui faisait le même genre de choses. Nous on a des petits trucs supplémentaires, c'est qu'on a un moteur de collision directement intégré. On essaye de faire une approche différente. On a aussi de très belles démos. Vous pouvez aller sur http://www.babylonjs.com, on a toutes les démos dessus et ça marche dans IE11, Chrome et Firefox, ce qui n'est pas forcément le cas de toutes les démos WebGL car certaines sont très avancées et utilisent les fameuses extensions expérimentales qui ne marcheront peut-être pas dans nos navigateurs. Le nôtre marchera partout et on travaille sur une librairie d'abstraction au-dessus encore. On espère qu'il sera peut être plus simple ou complémentaire de three.js pour faire des jeux en 3D dans le navigateur. Là, ce sera extrêmement simple : je veux un joystick virtuel qui utilisera notre fameux polyfill, je le branche sur tel ou tel objet, puis il bougera tout seul, en 2 lignes de code tu as un truc qui bouge et même si t'es nul comme moi en 3D ;).

   

7. La Surface décolle peu selon les médias, qu'en est il vraiment ? Y aura t-il un changement avec l'arrivée de Windows 8.1 ?

Alors, il y a 2 produits chez nous : Surface Pro et Surface RT. Les gens attendaient plus la Surface Pro. Les gens qu'on rencontrait voulaient rapidement remplacer leur PC. Parfois ils avaient un PC, un iPad et un téléphone Android, ils ne voulaient qu'un seul seul terminal pour travailler dans le monde professionnel, donc ils ont été très contents de l'arrivée de la Surface Pro. Ensuite, il y eu une évolution du marché avec des petits formats comme les 7" ou 8", or on est arrivé un peu après avec un format 10" plus imposant que ce que les gens voulaient. Windows 8.1 va corriger le tir sur 2 choses : il va adresser les plus petites résolutions et les Surface plus petites, et également permettre d'avoir des petites corrections d'interfaces. On a eu de très bon retours de certains sur la nouvelle interface qu'on propose et qui est vraiment différente des autres. D'autres n'ont pas trop aimé par exemple la gestion du bouton démarrer, ce genre de choses. On a donc fait des petites corrections. Les gens ont l'air contents d'après les premiers retours, ce qui n'était pas fait car tout le monde n'était pas unanime sur Windows 8. Ca a l'air d'être plus unanime sur Windows 8.1, on espère que ça va corriger le tir. On a eu beaucoup de soucis de production de matériel tactile en fait, beaucoup de PC ont été vendus avec Windows 8 non tactile alors qu'une grosse partie était prévue pour. Pareil, cela s'est corrigé en fin d'année, donc on pourra en reparler dans 3 a 6 mois.

   

8. On a vu quelques vidéos de la Kinect 2, que j'ai trouvées bluffantes. Peux-tu nous en dire plus sur les capacités de ce nouveau capteur et quelles perspectives d'applications vous avez avec cet outil ?

Alors, on avait d'abord les démonstrations pour la XBox One pour le jeu. L'idée c'est de supporter plus de gens, on peut être, au lieu de 2 personnes, plus de 4 personnes devant la caméra. L'angle de vue a été revu pour éviter d'avoir forcément une pièce à l'américaine pour jouer. On pense aux Européens et aux Japonais car plus ça va, plus les pièces se réduisent. La performance du capteur a été améliorée, on peut jouer dans le noir, ça peut détecter les doigts, ça peut faire plein de choses merveilleuses donc pour le gameplay on l'imagine aisément. Il y a une partie qu'on occulte souvent dans Kinect c'est la reconnaissance vocale et le système de son avec les micros omnidirectionnels qui marchent très bien aussi. Sur l'univers du PC il y a un SDK qui va arriver. On peut déjà s'enregistrer d'ailleurs pour être parmi les premiers à développer. Je sais que tu travailles dans l'univers médical et il y a des gens qui sont intéressés par ça. Il y a eu plein de projets qui se sont créés, c'est un chantier nouveau en fait. C'est comme le tactile aujourd'hui finalement, peu maitrisé dans les nouvelles ergonomies. Là on passe à l'étape au-dessus : que va t'on faire de notre corps devant une caméra ? On imagine des choses où automatiquement, quand la personne va se rapprocher de l'écran avec un autre de ses collègues, on va déduire qu'ils veulent travailler en collaboration donc, automatiquement, on va couper l'écran en 2, faire de la reconnaissance faciale, afficher les documents des personnes qui ont été reconnues. C'est extrêmement simple à faire aujourd'hui, c'était de la science-fiction il y a quelque temps. Quand la personne est toute seule on peut imaginer que, comme on connait son niveau de profondeur, lorsqu'elle s'approche de l'écran on va dezoomer, et zoomer quand elle s'éloigne pour s'adapter à son champ visuel. Il y a plein de choses qui arrivent, on a des projets de recherche aussi comme Illumiroom. Comme la caméra est tellement précise maintenant, on peut scanner l'environnement et en faire un modèle 3D et, une fois que tu as modélisé en 3D la pièce, tu peux projeter des informations avec un projecteur dessus. C'est pour le jeu mais il y a encore plein de choses à faire, en tout cas il y a de quoi s'amuser !

   

9. Merci David pour cette interview.

Avec plaisir !

14 nov. 2013

BT