Interview exclusive de Scott Guthrie, père de Silverlight et patron de l’équipe Microsoft .Net 4 et VS 2010

1:09 Non classé

J’ai eu récemment l’opportunité de rencontrer en exclusivité le papa de Silverlight, Scott Guthrie. Responsable des évolutions de .Net 4, Visual Studio 2010, WPF… Le monsieur est une mine d’infos, et j’ai pu passer une agréable heure et demie en sa compagnie. (Merci à Julien Codorniou, monsieur Idees et BizSpark de Microsoft, pour avoir joué les entremetteurs.) Les développeurs les plus aguerris ne trouveront probablement pas de scoops, mais j’ai essayé de balayer les principaux sujets, afin de faire un point complet sur l’évolution de la stratégie Silverlight, et sur les évolutions à attendre dans le modèle de programmation .Net.

Scott Guthrie peut être suivi sur son blog ou son compte Twitter (je compte parmi ses followers).

Voici le compte-rendu intégral de l’entretien, bonne lecture.

Lors de votre discours à la PDC, vous avez indiqué que Silverlight était deployé sur plus de 45% des appareils connectés. Que désigniez-vous exactement avec ce terme ?
Scott Guthrie : Nous faisons référence à tout ordinateur ou appareil capable de surfer sur le Web. Et nous nous basons sur les statistiques de sites populaires pour mesurer le taux de pénétration. Il peut donc s’agir de machines Windows, Mac, Linux, de MID, de smartphones, de TV connectées… Aujourd’hui, cela concerne pour une grande majorité les ordinateurs sous Windows et MacOS. Mais on s’attend à ce que les mobiles et les TV prennent une importance de plus en plus grande au cours des deux prochaines années. Notre objectif est vraiment d’aller vers cette répartition de Silverlight sur ces trois types d’écrans.

Autant il y a eu beaucoup de bruit autour de WPF lorsque Vista est sorti, mais aujourd’hui, c’est Silverlight qui tient le haut du pavé dans les discours marketing de Microsoft, au point qu’on a l’impression que Silverlight, qui a démarré comme un substrat de WPF, est en train aujourd’hui de le cannibaliser. Que reste-t-il à WPF ?
Beaucoup de gens pensent en effet que les développeurs WPF migrent vers Silverlight, mais ce que nous avons découvert, c’est que pour chaque augmentation d’un point du nombre de développeurs utilisant Silverlight, il y a aussi un point d’augmentation du nombre de développeurs utilisant WPF. Notre objectif avec Silverlight est de reproduire le modèle de programmation de WPF en l’adaptant à cette vision des trois écrans, pour des applications légères sur le Web, alors que le but de WPF est de produire des grosses applications Windows. WPF est aujourd’hui utilisé par de grands clients, comme Autocad, Corel… Silverlight n’est pas adapté pour ce genre d’applications. En revanche, pour des applications Web, ou 3 écrans, mais aussi de plus en plus pour des applications d’entreprise internes, Silverlight est l’outil idéal.

Pouvez-vous par exemple nous dire pourquoi, pour son application interne, Bloomberg a fait le choix de Silverlight plutôt que de WPF ?
Ils utilisent WPF aussi, en fait… Mais précisément pour leur application utilisant Silverlight, ils voulaient pouvoir publier de l’information financière en temps réel, et Silverlight offrait cela en plus d’une possibilité de délivrer de la vidéo quasiment sans temps de latence.

Et ils ne pouvaient faire cela en WPF ?
Silverlight a aujourd’hui une couche de gestion du multimédia plus riche. On ajoutera ces fonctions à WPF à l’avenir, mais pour l’heure, pour ce type d’utilisation, on recommande Silverlight. Je crois qu’il a les capacités les plus évoluées dans ce domaine de tous les runtimes pour le Web.

Silverlight a donc commencé comme un sous-ensemble de WPF, mais offre aujourd’hui plus de fonctionnalités ?
Dans certains domaines, les médias notamment. Ce que nous essayons de faire, dans chaque mise à jour de Silverlight et de WPF, c’est de maintenir les deux versions synchronisées. Par exemple, la majorité des fonctions que nous avons ajoutées à Silverlight 4 sont déjà dans WPF, et dans WPF 4, qui sortira en même temps que .Net 4 et Visual Studio 2010, nous avons ajouté des capacités qui étaient dans Silverlight 3. Nous continuerons de respecter cette stratégie de convergence. WPF aura toujours une surface plus large, parce qu’il est destiné à réaliser de grosses applications Windows, tandis que Silverlight continuera d’être un sous-ensemble présentant quelques avancées, notamment en ce qui concerne la gestion des médias.

Y a-t-il d’autres domaines où Silverlight est en avance et continuera de l’être ?
Pas vraiment, WPF est plus riche en terme de graphismes, de contrôles, de manipulation de données… Je dirais que Silverlight, en revanche, aura toujours l’avantage du multi-plateforme.

Travaillez-vous en liaison avec l’équipe de Novell qui produit Mono [implémentation de .Net pour Linux] et Moonlight [implémentation de Silverlight pour Linux] ?
Absolument, mon équipe leur fournit le code de la couche média, ainsi que tous les scénarios de test de Silverlight et les spécifications d’implémentation, ils peuvent ainsi exécuter les mêmes tests que nous.

Vu le rythme effréné des montées de version de Silverlight, cela doit être compliqué pour eux…
Oui, c’est sûr que c’est dur de suivre un tel rythme, mais pour nous, c’est un souci plutôt plaisant. A la PDC, personne ne s’attendait à ce que je parle de la version 4 de Silverlight, et j’ai été agréablement satisfait de la réaction du public, certains étaient sciés, c’était très agréable, en tant que speaker, de pouvoir délivrer de telles informations.

La démo du Smooth Streaming sur iPhone était elle aussi inattendue…
Oui, c’est d’ailleurs LA démo qui n’a pas marché. On avait bien un routeur d’accès sans fil privé, mais il y avait cinq mille personnes dans la salle avec des ordinateurs, et le spectre de fréquences WiFi était complètement saturé…

On revanche, on est encore loin d’un plug-in Silverlight pour l’iPhone ?
La vraie question est de savoir si ce que nous faisons avec les médias fonctionnerait mieux si on portait Silverlight sur l’iPhone. Car finalement, cela marche très bien avec le navigateur déjà installé, sans qu’il soit besoin d’aller sur l’AppStore et de télécharger quoi que ce soit. C’est encore plus fantastique : vous cliquez sur une URL, et ça marche. Je pense qu’il y aura de plus en plus d’événements retransmis en live, comme l’ont été le Tour de France et Roland-Garros, et ce type de fonctionnalité va devenir très intéressant. Cela va devenir une fonction réclamée par le public. Bien sûr, les gens ne regarderont pas dix heures de vidéo sur le téléphone, mais c’est génial pour ne pas rater quelque chose lorsque vous rentrez chez vous, que vous êtes dans le métro…

Vous avez donc le même problème qu’Adobe : impossible aujourd’hui d’installer votre runtime sur l’iPhone.
Les plug-in ne sont pas autorisés par Apple, et nous respectons cette volonté.

Vous attendez qu’ils fassent quelque chose à ce sujet ?
Hé bien… Vous devriez leur poser la question. Ils contrôlent l’expérience utilisateur sur l’iPhone, donc in fine, c’est à eux de prendre une décision. En tout cas, je crois que notre annonce montre que nous sommes capables de bien travailler dans le cadre qu’ils ont définis.

Cette utilisation du navigateur sans plug-in rappelle ce qui arrive avec HTML 5 : la capacité de prendre en charge directement les contenus multimédias ne rendra-t-elle pas les plug-in comme Silverlight inutiles ?
C’est exact pour certaines fonctions. Avec Silverlight, on se concentre sur la possibilité de délivrer applications et médias tant au sein du navigateur que dehors, donc je ne me fais pas particulièrement de souci au sujet de HTML 5. Je pense que Flash, par exemple, est beaucoup plus exposé, car un bon nombre de scénarios d’utilisation de Flash implique une partie graphique et interactive qui peut déjà être réalisée avec de l’Ajax, et qu’il sera encore plus simple de faire avec HTML 5. Dans le domaine applicatif, en revanche, cela va bien au-delà de la partie graphique, et Silverlight fournit un cadre que HTML 5 ne peut égaler. Dans la partie graphique, nous fournissons des capacités clés pour du contenu ‘premium’, comme la HD ou la retransmission live en smooth streaming, que HTML 5 ne permet pas.

Investissez-vous toutefois dans HTML 5 ?
Oui, dans mon équipe, nous travaillons aussi sur ASP.Net et Visual Studio, et nous réalisons de gros investissements dans Ajax et HTML 5. Notre but est de permettre aux développeurs d’apprendre un seul jeu de compétences autour de .Net, puis de viser des déploiements sur Silverlight, Ajax/HTML 5, etc. Nous leur donnons la possibilité de choisir la plateforme qui convient le mieux pour leur application en fonction du scénario d’utilisation.

D’un point de vue utilisateur, cependant, si on s’en tient à ce que Internet Explorer 8 propose, on a l’impression que Microsoft ne fait pas grand cas de HTML 5. Alors que Google ou Mozilla ont commencé à implémenter des spécifications…
Les premières annonces publiques concernant IE 9 ont eu lieu à la PDC, et à ce que nous avons vu, il y aura des scénarios impliquant HTML 5. Les détails sur la feuille de route exacte seront donnés au cours des prochains mois.

Pourquoi Microsoft met-il tant d’énergie et d’efforts dans Silverlight et la diffusion de la vidéo ?
Je crois qu’on verra, au cours des cinq prochaines années, le plus grand changement en matière de médias depuis l’apparition de la télévision. La possibilité de diffuser du contenu sur Internet procure une expérience plus riche que celle de la télévision pour l’utilisateur : s’informer et naviguer grâce aux métadonnées, retourner dans la vidéo ou au contraire avancer jusqu’au direct, et même associer des métadonnées à la ligne de temps pour se rendre directement à tel ou tel événement. Du point de vue du diffuseur, le modèle économique va aussi changer de façon drastique. Aux Etats-Unis, existe un service, Netflix, qui est un gros client Silverlight. Son métier traditionnel est la location de DVD à distance : vous allez sur leur site pour sélectionner un DVD qu’ils vous envoient par la poste, avec une enveloppe de retour. C’était déjà innovant par rapport à la location en magasin, d’ailleurs la chaîne Blockbuster a souffert. Et depuis l’an dernier, ils proposent aussi du streaming, ils ont déjà entre 15 000 et 20 000 titres, et le service est en train d’exploser. Alors quand vous considérez la possibilité de diffuser du contenu en HD, cela devient très intéressant. Reste le problème du coût : Netflix n’a pas annoncé de chiffres, mais certains journalistes spécialisés ont estimé le coût de diffusion en streaming en HD à 9 cents par film, ce qui est moins cher que d’exposer un DVD en magasin parmi plusieurs milliers de références ou de l’envoyer par la poste.

Au final, considérant l’attention que vous portez au marché des médias et vu le rythme auquel vous enchaînez les montées de version, on dirait que Silverlight est devenu un axe stratégique prioritaire pour Microsoft ?
Microsoft a plusieurs projets stratégiques, je ne dirais pas que Silverlight est le plus important. Si on regarde Microsoft, la stratégie a toujours été de délivrer la meilleure expérience possible, de permettre de faire des choses uniques grâce au logiciel. Dans le domaine des médias, Silverlight correspond à cette vision. Le monde des médias est en pleine mutation, et disposer d’un logiciel proposant une valeur ajoutée nous permet de discuter avec les gens de ce secteur. Cela ne garantit bien sûr pas le succès, mais si les partenaires sentent qu’on peut les aider à réussir, à faire de l’argent, alors c’est une bonne chose sur le long terme.

Pour une fois dans l’histoire de Microsoft, votre technologie est moins déployée que celle d’un concurrent, en l’occurrence Flash d’Adobe…
En fait, la plupart des produits de Microsoft ont commencé sur des marchés où nous étions beaucoup plus petits que les concurrents… Les progrès en termes de déploiement qu’on a faits ces derniers mois, particulièrement en Europe de l’Ouest, sont très encourageants, si bien que le taux de pénétration devient de moins en moins un sujet de préoccupation. En France, la majorité des PC est déjà équipée, et les nouvelles machines sont livrées avec Silverlight installé. Et si un développeur estime que la meilleure solution pour son application est de la déployer avec Silverlight, alors il faut voir que nous faisons en sorte que le téléchargement et l’installation prennent moins de 10 secondes.

Du point de vue du développeur ou du diffuseur, quel intérêt y a-t-il à utiliser votre technologie plutôt que Flash/Flex ou AIR ?
La performance est un premier élément. Pendant le Tour de France, nous diffusions la vidéo en HD 720p à 3,5 Mb/s. Personne avant, à ma connaissance, n’avait réussi cela pour un événement live. Ensuite notre technologie de streaming s’adapte aux variations de la bande passante, personne d’autre ne sait le faire. Côté développement d’applications, l’accélération graphique, DeepZoom, sont des grands atouts. A la PDC, Loïc [Le Meur, fondateur] de Seesmic annonçait qu’il migrait de AIR à Silverlight, la principale raison étant la performance. Les développeurs nous trouvent plus rapides, moins gourmands en mémoire.

Les applications Silverlight pourront, avec la version 4, s’exécuter hors du navigateur ; quelles sont les mesures de sécurité prises afin qu’elles puissent accéder au ressource du PC sans le mettre en danger ?
Déjà, depuis la version 3, les applications s’exécutent par défaut en ’sandbox mode’, elles bénéficient donc des mêmes permissions que celles du navigateur. Avec Silverlight 4, nous ajoutons un système permettant de déclarer des applications ‘de confiance’, ce qui leur permet d’accéder à davantage de ressources, si l’utilisateur les approuve explicitement au moment de l’installation. De même, nous faisons en sorte qu’en entreprise, les administrateurs puissent [au  travers de Sytems Management Center] déclarer ou non les applications de confiance selon qu’elles viennent de tel ou tel site.

Les technologies Adobe sont souvent associées avec des back-end en Java, Silverlight semblant réservé à du back-end .Net. Auriez-vous des exemples d’utilisation avec du Java ?
J’ai rencontré nombre de clients durant cette tournée européenne, et beaucoup ont des back-end en Java et cherchent à migrer leurs solutions AWT ou Swing vers quelque chose de plus riche. Ils sont très intéressés par Silverlight, surtout avec la version 4, et même d’une façon plus importante que ce à quoi je m’attendais. D’une manière générale, dans la communauté Java, il y a une certaine inquiétude sur la direction que Java prendra en ce qui concerne le front-end, et Silverlight représente une bonne alternative.

Prévoyiez-vous de le présenter comme un client de mash-up pour les back-end et services écrits en Java, ou répondez-vous simplement à une opportunité ?
Un peu des deux… Dès la version 2 de Silverlight, on a commencé à supporter une couche de communication réseau plutôt riche : sockets, HTTP, les services Web avec Soap, les services Rest… ainsi que la possibilité d’établir des règles pour renvoyer des requêtes vers d’autres serveurs, alors qu’avec Ajax, traditionnellement, on ne peut renvoyer des données que vers le serveur à l’origine de la page Web ; c’est très utile pour les mash-up et applications d’entreprise nécessitant d’accéder à plusieurs serveurs, ou même pour des applications grand public qui voudraient pouvoir accéder à des applications Java, des applications .Net, des applications Mainframe, des applications PHP… On a aussi montré comment Sharepoint pouvait héberger plusieurs services Silverlight.

Certes, mais cela paraît naturel. On se serait plutôt attendu à ce que vous présentiez une démo avec Silverlight en tant que client d’une application non Windows…
Nous avons une stratégie différente selon les conférences utilisateur. Par exemple, pour Mix ou des conférences non Microsoft, on montre des démos tournant sur Mac, car les gens se posent des questions sur l’aspect multi-plateforme. Mais à la PDC, il s’agit d’un public Windows, c’est pourquoi, à l’exception de l’iPhone, toutes les démos sont faites sur Windows, mais cela fonctionne aussi sur Mac, ou sur Linux avec Moonlight.

Pour rester dans la thématique Silverlight comme front-end, avez-vous reçu des demandes spécifiques de la part de l’équipe AppFabric [la couche middleware] ?
C’est la même équipe qui produit AppFabric et qui nous fournit la couche communication réseau de Silverlight. On n’a donc pas de demande particulière…

Le framework RIA Services, aujourd’hui en bêta, sera livré avec Silverlight 4. Quel sera son rôle ?
Nous essayons de simplifier les scénarios pour les applications accédant à des données. Même en client-serveur, quand il s’agissait de transférer des données sur le poste de travail, de les manipuler, puis de renvoyer la mise à jour vers le serveur, s’il avait fallu écrire tout cela à la main… On cherche donc à simplifier tous les mécanismes qui entrent en jeu : le tri, pour que vous n’ayez pas des milliers d’enregistrements à charger, les règles de validation, le positionnement dans l’interface, la sécurité… L’objectif avec notre framework est de couvrir 80 à 90% des besoins de la majorité des applications. Cela fait gagner énormément de temps aux gens.

Peut-on le comparer à Flex Data Services ?
Il y a certainement beaucoup de ressemblances. D’après les retours que j’ai eus, notre framework paraît plus extensible, et demande un peu moins de programmation.

La version 2010 de Visual Studio dispose d’une interface en WPF. Quel est l’avantage dans ce cas ?
On a senti des gains de productivité extraordinaires par rapport au C++. Le but n’était vraiment pas de créer de jolies animations en WPF, mais de créer une interface plus rapidement et plus riche. Même l’éditeur de texte y gagne, la visualisation est plus riche, et cela nous aurait demandé trois à quatre fois plus de temps pour parvenir au même résultat dans les versions précédentes de Visual Studio.

Et quels seront les avantages pour les développeurs utilisant Visual Studio ? Plus de flexibilité ?
Plus de flexibilité, plus de fonctions, ce que cherchent généralement les développeurs. Les retours des utilisateurs de notre bêta 2, sortie il y a environ deux mois, sont très positifs, ce qui laisse augurer de clients satisfaits.

Avec .Net 4, les développeurs Silverlight pourront utiliser les mêmes ‘assemblies’ [bibliothèques de code précompilé], du moins certaines d’entre elles. Comptez-vous aller plus loin, et donner la possibilité d’écrire un seul code, quel que soit le type de déploiement envisagé par la suite (client, serveur, cloud…), en suivant l’idée émise par Erik Meijer avec son projet Volta ?
Je crois qu’on écrit son code de façon légèrement différente selon qu’on vise un déploiement sur le serveur, sur le client… La possibilité de partager certaines ‘assemblies’ est très puissante, mais je ne crois pas qu’on arrive à une solution de type ‘écrire la logique une fois, et la déployer partout’. Je pense que les développeurs ont encore besoin de savoir où doit s’exécuter leur code. Peut-être que cela changera dans deux ou trois ans. Ca commence déjà un peu avec les RIA Services, où on peut prendre n’importe quel objet et lui assigner des attributs, communiquer avec n’importe quel type d’application ; dès lors, le développeur écrit son code sans se préoccuper de l’endroit où il s’exécutera.

Connaissez-vous GWT (Google Web Toolkit), qui permet d’écrire des applications Javascript à partir de code Java ? Que pensez-vous de ce concept ?
C’est un concept intéressant, on a d’ailleurs un projet similaire, nommé Script#, qui compile du code C# en Javascript. Le problème avec ce type d’approche, c’est que si ça marche bien dans 80% des cas, on aboutit quand même à du code qui n’est pas aussi performant, fidèle à la plateforme, que si on avait développé directement en Javascript. Je ne dis pas que le concept est mauvais, mais je ne suis pas sûr non plus à 100% que ce soit très bien…

Script# et Volta restent donc, pour l’heure, des sujets de recherche ?
Oui, on essaie de voir où cela pourrait mener, ce qu’on pourrait en faire.

Vous avez aussi annoncé la sortie de F# dans Visual Studio 2010. Quel sera son rôle ?
Il s’agit d’un langage fonctionnel qui intéresse énormément la communauté scientifique et la communauté financière, ceux qui ont un background mathématique. Il est très intuitif, et bénéficie de toutes les fonctions de Visual Studio, comme Intellisense, ce qui est un avantage compétitif par rapport aux environnements de développement que ces gens utilisent habituellement. Et il est adapté pour exécuter des simulations sur des ordinateurs massivement parallèles.

Vous avez d’ailleurs commencé à publier des bibliothèques facilitant le développement pour des architectures parallèles. Est-ce encore réservé aux experts, ou bien est-ce utilisable par tous ? Où en est-on exactement concernant une parallélisation du code accessible à tous ?
On cherche tous à passer du paradigme du doublement de la puissance et de la fréquence des processeurs à celui du doublement de leur nombre de coeurs… Le challenge, du point de vue du développeur, est de tirer parti de cette augmentation de puissance, or la façon dont nous écrivons traditionnellement nos applications n’est pas adaptée. On essaie donc de fournir dans .Net des bibliothèques qui vous permettent d’écrire votre code avec vos compétences actuelles, mais en ajoutant des fonctions parallèles, telles que la recherche dans une collection d’objets, le tri de données…

L’arrivée de la programmation parallèle suppose aussi l’arrivée de nouveaux types de bugs…
Visual Studio 2010 inclut un tout nouveau débogueur, qui vous permet de visualiser l’exécution de vos instructions d’une façon très propre, spécifiquement adaptée à ce problème.

Et au delà de Visual Studio 2010 et .Net 4, que prévoyez-vous pour les prochaines versions ?
Une des choses qu’on essaie de faire, c’est de donner la possibilité de créer de nouvelles expériences utilisateurs, comme c’est le cas avec Silverlight, tout en gardant à l’esprit la volonté de ne pas submerger les développeurs avec un trop grand nombre de choix possibles. Je crois qu’avec .Net 4 et VS 2010 on a fait un plutôt bon mélange entre évolution et révolution : on y a mis des choses nouvelles, révolutionnaires, mais on a aussi pris le temps d’améliorer ce qui existait. On prend garde aussi de faire en sorte que les choses soient utilisables sans avoir besoin de se former pendant des mois, les API sont juste meilleures, mais vous pouvez les utiliser comme avant. Je pense que les prochaines versions reprendront ce principe : nous avons un excellent matériau, que nous continuerons d’améliorer, et qui pourra être utilisé par les développeurs avec leurs compétences actuelles.

La sortie de Visual Studio 2010 et .Net 4 est prévue pour quand, exactement ?
Pour mars ou avril, on est en train de peaufiner.

2 Responses

  1. Franck Dernoncourt Says:

    « Connaissez-vous GWT (Google Web Toolkit), qui permet d’écrire des applications Javascript à partir de code Java ? Que pensez-vous de ce concept ?
    C’est un concept intéressant, on a d’ailleurs un projet similaire, nommé Script#, qui compile du code C# en Javascript. Le problème avec ce type d’approche, c’est que si ça marche bien dans 80% des cas, on aboutit quand même à du code qui n’est pas aussi performant, fidèle à la plateforme, que si on avait développé directement en Javascript. Je ne dis pas que le concept est mauvais, mais je ne suis pas sûr non plus à 100% que ce soit très bien… »

    –> c’est un peu comme se demander si GCC est utile pour écrire de l’assembleur au lieu de l’écrire soi-même en adaptant pour chaque plate-forme : si il est vrai qu’il est toujours possible d’optimiser le code final (assembleur ou ici JavaScript), pour la quasi-totalité des situations passer par GWT, même si il lui reste encore pas mal de progrès à faire, sera bien plus efficace (en termes d’optimisation, de respect des standards et de temps de chargement, sans compter tous les avantages pour le programmeur) et davantage fidèle à la plate-forme. Des applications tel Google Wave auraient pris beaucoup plus de temps à développer si les développeurs avaient directement écrit en JavaScript. Microsoft Volta est juste (très) en retard dans ce domaine donc il essaye simplement de minimiser son importance.

  2. Laurent Duveau Says:

    Excellente interview, et merci d’insister sur des points très pertinents comme l’avenir de WPF!

Rédiger un commentaire

Votre commentaire

Vous pouvez utiliser ces balises: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

NB: Votre commentaire ne sera publié qu'aprs la validation du modérateur du blog. Vous n'avez pas besoin de le publier à nouveau. Merci