Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Silverlight 5 va arriver !

[new:30/04/2011]Silverlight est bien vivant et évolue toujours, la version 5 va bientôt arriver ! C’était le sujet de la Keynote du Mix11 d’avant hier. Beaucoup de choses intéressantes même si Microsoft patauge un peu côté communication (Lire le billet de Shawn à ce sujet).

La 3D !

Enfin ! Elle arrive, une 3D accélérée basée sur le gpu, forcément.

De quoi être vraiment content tout en esquissant une petite moue : De la vraie 3D accélérée, on en rêve depuis longtemps, c’est donc une annonce de soulagement et de gaité.

Malgré tout cette 3D est basée sur l’API XNA et Sharder 2.0. J’aime beaucoup XNA mais on est loin de la 3D XAML de WPF... Une divergence qui personnellement me gâche un peu la joie.

Mais ne boudons pas notre plaisir de voir enfin la 3D arriver dans Silverlight. Même si on perd un peu de compatibilité WPF, on gagne forcément en compatibilité WP7 où Silverlight et XNA forment le socle de la plateforme. Faut-il voir ici une tendance à long terme notamment sur ce que sera le support de la 3D sous Windows 8 sur les PC et les tablettes ? Trop tôt pour le dire...

Une petite vidéo sur Channel 9 pour en savoir plus : http://channel9.msdn.com/Events/MIX/MIX11/MED06

Un petit tutor sur la 3D de SL 5 bêta : http://silverlight.bayprince.com/tutorials.php

Les nouveautés du SDK WP7 “Mango”

Silverlight c’est le Web mais c’est aussi WP7. Même si pour l’instant ce dernier est un peu dans un creux de vague, entre un début forcément mou et l’attente des premiers effets de l'’alliance avec Nokia, il ne faudrait pas l’oublier, même les cabinets d’expertise le voient dans les 25 % de part de marché sous 2 à 3 ans... Un train qui part doucement, c’est finalement une chance de pouvoir le prendre en marche !

La mise à jour “Mango” était très attendue et a été annoncée au Mix11. Plus de 1500 API nouvelles et surtout... le support de Silverlight 4.0 ! Ce qui est une excellente nouvelle. On notera aussi le multitâche tant attendu.

Pour ceux qui désirent voir en détail toutes les annonces de WP7, je vous conseille la lecture de ce billet de Pierre Chauchois.

SL 5 : beta téléchargeable

La bêta est déjà disponible ! Vous pouvez ainsi vous plongez dès maintenant dans la révolution de la 3D et des autres nouveautés :

http://www.silverlight.net/getstarted/silverlight-5-beta/

Les grandes avancées

La 3D c’est spectaculaire et cela ouvre la porte à des interfaces vraiment différentes et plus immersives. Mais il ne faudrait pas oublier tous les autres apports de SL 5 dont voici un extrait (plus de détails prochainement) :

(une présentation globale : http://www.silverlight.net/learn/videos/all/whats-new-in-silverlight-5-beta/)

Xaml optimisé

Le parser a été optimisé, notamment pour assurer un chargement plus rapide des applications.
On notera aussi le pixel snapping qui permet l’alignement notamment du texte sur les pixels réels ce qui améliore beaucoup la lisibilité. Cette amélioration était très attendue car souvent le rendu du texte n’était pas à la hauteur des attentes sous SL 1 à 4.

A voir : Multi-Column and Linked Text

A lire : http://10rem.net/blog/2011/04/13/silverlight-5-advancements-in-text

Multi fenêtrage

SL 5 offre la possibilité de créer des fenêtres secondaires comme une application Windows “normale”. Cela s’entend bien entendu en mode OOB uniquement (et ne doit pas être confondu avec le mécanisme des ChildWindows, qui permettent de simuler en quelque sorte ce manque en mode Web).

A voir : OS Windows

A lire : Silverlight 5 Working with Operating System Windows

Rendu optimisé

Le rendu 2D pourra s’effectuer directement par le GPU.

Du Son !

.. Mais pas trop. Ce n’est pas encore le nirvana du traitement sonore, mais un effort louable : SoundEffect qui prend en charge un stream son sans ajouter de MediaElement. Comme son nom l’indique, il s’agit d’un “helper” pour les effets sonores (tous les petits sons qu’on peut ajouter sur les clics, les déplacements d’objet...). Ce n’est pas avec cette classe que vous réaliserez un synthétiseur mais l’ajout d’effets sonores sera plus simple qu’avant et avec une latence plus faible ce qui est important.

A voir (et à entendre) : Low-Latency Sound Effects

A lire : Silverlight 5 Using the SoundEffect Class for Low-Latency Sound and WAV Support

Impression vecteur

Je n’ai pas encore tous les détails du fonctionnement et n’ai pu tester cela dans les bêtas dont les MVP Silverlight ont pu bénéficier depuis un moment (mais dont je ne pouvais parler en raison de la NDA). Cela semble plutôt à une première couche qu’il faudra améliorer par une couche plus intelligente au dessus, mais c’est une avancée réelle pour toutes les applications LOB : le support des impressions vecteur en mode PostScript ayant un rendu professionnel. On espère pouvoir oublier assez vite l’horrible système d’impression bitmap de la version précédente trop consommateur de ressources, peu pratique, lent, et .. bitmap donc supportant mal les mises à l’échelle.

Double-clic et multi-clic

Le voici enfin, géré nativement par SL 5. On avait fini par s’en passer mais puisqu’il est là autant s’en servir !

A voir : Mouse Button Double and Multi-click

A lire : Silverlight 5 Supporting Double and Even Triple Click for the Mouse

Extension du binding

Toujours la convergence WPF... on retrouve donc des fonctions attendues dans le binding comme un évènement de changement de DataContext ou le support de RelativeSource.

On notera aussi la possibilité de faire du binding dans les styles, encore une convergence avec WPF.

Réseau en tâche de fond

La gestion du réseau passe maintenant par un thread d’arrière plan ce qui dégage encore plus le thread principal pour des interfaces toujours plus fluides. Cela ne change rien à l’asynchronisme fondamental des opérations réseau sous Silverlight mais pourrait améliorer la fluidité globale. Un point que je n’ai vraiment pu tester de façon suffisamment claire pour l’instant. J’y reviendrai lorsque j’aurai des benchs à vous proposer.

PivotViewer

Le PivotViewer est un contrôle très particulier offrant des vues originales sur les données. Il était distribué jusqu’à maintenant sous la forme d’un projet séparé, il devient dans SL5 un citoyen à part entière livré de base.

DataTemplate implicite

WPF le faisait, SL 5 aussi. Plus besoin de références à des ressource statiques, il est possible de définir des templates implicites pour un type précis de contrôles visuels.

A voir : http://www.silverlight.net/learn/videos/all/implicit-data-templates-in-silverlight-5-beta/

A lire : Silverlight 5 Working with Implicit Templates

Nouvelles transitions

Les inter-layout transitions sont des transitions d’un nouveau type se déclenchant lors de l’ajout, de la suppression ou la réorganisation des items d’un conteneur parent. Plus de souplesse offerte aux designers pour des interfaces encore plus vivantes !

Jouer avec les vidéos

Les vidéos H264 pourront être décodées par le GPU, ce qui va accélérer grandement leur rendu et rendre possible des choses comme le “trick play” c’est à dire la possibilité de faire des accélérés ou des ralentis lors du visionnage.

Support 64 bits

Silverlight 5 supporte nativement les OS 64 bits.

Améliorations de P/Invoke et de la liberté d’action

Les applications disposant d’un certificat pourront embarquer du code natif, des dll, et faire des appels P/Invoke à ces dernières. Il sera possible dans le même esprit d’appeler des applications Office ce qui ouvrent des voies plus qu’intéressantes ! Les applications certifiées pourront aussi, par exemple, accéder au répertoire “mes documents” sans dialogue intermédiaire (donc se servir de cet espace directement en lecture et en écriture). Reste le problème des certificats, c’est cher...

Le debug de XAML

C’est un grand mot, mais tout de même : il s’agit de pouvoir débugger facilement le data binding en ayant la possibilité d’y placer des points d’arrêt. C’est peu, mais c’est déjà énorme !

A voir : Debugging Binding

A lire : Silverlight 5 Debugging Bindings with Xaml Breakpoints

Conclusion

Nous sommes aujourd’hui à une croisée des chemins.

Silverlight 5 atteint définitivement l’âge de la maturité. Au moment même où Microsoft se met à promouvoir HTML 5 au travers de Internet Explorer même au MIX, un évènement très attendu et très écouté.

La raison du trouble est clair pour moi : Microsoft est une entreprise trop “multi carte”, elle vise sa pérennité à long terme mais pas forcément celle d’un produit. MS est ainsi un excellent partenaire pour celui qui en est actionnaire, pas n’en est pas forcément pour le développeur fan d’une technologie MS en particulier. Aujourd’hui MS est miné par des luttes intestines : sauver Internet Exploreur de l’oubli dans sa perte de parts de marché vertigineuse, car Internet Explorer c’est une partie de l’OS et qu’on sait que Windows et Office sont des pourvoyeurs de fonds essentiels de la machine MS, et en même temps soutenir l’innovation comme Silverlight. ...Mais sans trop gêner WP7 qui n’a pas encore pris sa place sur la marché.

Le problème est donc celui d’une communication floue, contradictoire et parfois basée sur des évidences à la Le Pen (père) du genre “j’aime mieux ma sœur que ma cousine, j’aime mieux ma cousine que ma voisine...”. En servant des évidences de ce genre '”Html 5 est le futur du Web” ou “aucune solution ne peut tout faire”, MS ne dit que des lapalissades et surtout rien de mal contre Silverlight, comme Le Pen ne disait directement rien de mal des autres ethnies dans cette célèbre tirade. Mais tout le monde avait bien entendu entendu le message malgré tout...

Microsoft par son soutien à HTML 5 donne un coup de pied dans la petite fourmilière Silverlight. Et comme Le Pen, il n’y a pas que des bêtises dans leur discours. Sinon plus personne n’écouterait depuis longtemps. HTML, étant la “glue” du Web pour présenter des pages, la version 5 comme la 4 sera “l’avenir du Web”. La force des manipulateurs, dans notre métier comme en politique, est de balancer des évidences. Et d’espérer que les gens vont adhérer à leurs solutions parce que le constat de la réalité parait lucide et honnête... C’est un piège.

Faire un constat juste d’une situation n’implique pas qu’on propose de bonnes solutions !

C’est ce tour de passe-passe rhétorique que veulent nous faire gober tous les extrémistes en ces périodes pré-électorales.

C’est un peu ce que Microsoft cherche à nous faire avaler en cette période de doute qu’introduit l’arrivée de HTML 5...

Car si “aucune solution ne convient à tous les problèmes”, il faut bien admettre que cela s’impose aussi à HTML, quelle que soit la version. Et donc, on peut tout aussi bien en conclure que l’avenir appartient à Silverlight...

Dire tout et son contraire dans des annonces aussi suivies et aussi essentielles que le MIX prouve simplement ce malaise interne chez Microsoft, cette lutte intestine que d’autres éditeurs n’ont pas à gérer. Adobe possède Flash, ils poussent Flash partout, proposent déjà une version Android, et tout cela il le font bien. Microsoft pousse un coup Silverlight, un coup Internet Explorer, un coup WP7, qui tous trois ont des intérêts opposés sur certains points. Le problème est là. Microsoft disposent de plusieurs technologies sur des marchés différents et au lieu de savoir en faire la fusion en jouant la synergie, ils jouent la division pour mieux régner. C’est une erreur de stratégie à mon sens.

N’ayant pas de boule de cristal, je ne m’avancerai dans aucun pari sur le futur. A mon sens Microsoft commet des erreurs de communication et se trompe de cheval dans la course au “futur du Web”. IE9 à peine sorti, la bêta 10 est annoncée, une course à l’échalote avec Chrome et Firefox totalement dérisoire car elle mélange logiciel support d’accès au Web et avenir du Web, c’est à dire contenu. Proposer très rapidement une version de Silverlight sur Android aurait été, par exemple, un bien meilleur calcul pour promouvoir la technologie Microsoft partout, bien plus qu’IE. Mais là encore, lutte intestine, une autre : Microsoft ne veut pas rendre Android attractif en offrant Silverlight à cette plateforme alors même qu’ils tentent de vendre WP7 (dans l’espoir d’une renaissance avec Nokia d’ici un an ou deux). Cela n’empêchera pas Android d’être attractif et de dominer le monde des Smartphones et des tablettes au moins pour les 5 ans à venir, sans Silverlight et donc sans Microsoft... Erreur. Et cela n’empêchera pas que Flash et Silverlight resteront de bien meilleures solutions cohérentes pour le Web du futur que HTML, mais peut-être que seul Flash survivra, sans Microsoft une fois encore. En ne se prononçant ni se positionnant clairement et fermement sur ces marchés où MS a pourtant d’excellentes solutions à mettre en avant, à trop vouloir courir de lièvres à la fois notre “Steve” pourrait bien se prendre les pieds dans le tapis !

Englués dans ces luttes fratricides, Microsoft n’ose pas pousser Silverlight comme Adobe pousse Flash, ni sur Android (pour ne pas gêner WP7) ni sur le Web (pour ne pas faire d’ombre à IE).

Silverlight se trouve coincé entre l’arbre HTML 5 et l’écorce Flash, entre l’arbre Internet Explorer et l’écorce WP7 ... Beaucoup d’arbres et d’écorces, trop peut-être, pour cette belle technologie.

Mais aujourd’hui Silverlight 5 démontre encore une fois sa capacité à étendre ses capacités déjà tentaculaires. Meilleure utilisation du GPU pour plus de fluidité, 3D, impression vectorielle, plus de souplesse en OOB, ... Et tout cela est bon et prouve la bonne santé de ce plugin. Techniquement, Silverlight est à la pointe.

Alors face au buzz HTML 5, n’oubliez jamais une chose : HTML 5, pas plus que le 4 ou le 3, n’est supporté à 100% ni par IE ni par ses concurrents. Ce qui implique des contorsions en JavaScript délirantes pour développer une appli au look identique sur tous les browsers. N’oubliez pas non plus que CSS3 est tout aussi mal supporté et présentera toujours quelques pourcents de différence entre les browsers rendant tout travail de mise en page basé sur cette technologie du passé un véritable chalenge.

Seuls des plugins comme Silverlight ou Flash offrent au développeur un espace de travail stable, tout en garantissant une Expérience Utilisateur cohérente. Je l’écris sans risque de me voir un jour contredit par les faits : HTML est une vieille technologie dépassée, comme CSS ou JavaScript. Associer trois vieux bouts de ficelle ne permet pas de créer une chaine neuve et solide. Et ajouter un bout de ficelle neuf à la fin de ce bricolage n’est qu’une illusion de nouveauté comme une vieille voiture maquillée... L’engouement pour HTML 5 en ce moment est délirant et totalement déconnecté de la réalité. Même Microsoft tombe dans le piège “électoraliste” qui consiste à faire croire qu’on est jeune et dans le vent en parlant de vielles technos relookées qui n’excitent que les ados boutonneux... Un peu comme la mode Reggae qu’on nous ressert tous les 15 ans. Les plus jeunes parlent de “dub” et crient à l’innovation (15 avant c’était le Ska, une version rapide). Ceux de ma génération qui ont connu Bob Marley se marrent... Tout cela est du resucée, du re-pompé, du ringard pour gogo sans passé ni mémoire.

HTML est anti productif, CSS est un bricolage odieux, JavaScript un sous-langage pratique pour quelques actions côté client mais qui, auto-promu au rang de “langage cœur” d’un nouveau Web me fait penser à La Fontaine et sa grenouille qui voulait se faire plus grosse que le bœuf... J’attends tranquillement que, tel ce prétentieux crapaud de la fable, tous ces bricolages montés en bulle artificielle éclatent...

... En espérant que Microsoft se ressaisisse et apprenne à communiquer efficacement sur ces vrais produits du futur au lieu de se noyer dans un jeunisme abêtissant et nuisible à l’avenir des produits réellement innovants de la société.

Vive Silverlight !

Et stay tuned, cela va sans dire Sourire

blog comments powered by Disqus