Silverlight veut avaler le web

Microsoft vient de mettre un nom officiel sur ce qu’on appelait « WPF/E » : Silverlight. L’idée, c’est d’amener dans le navigateur le genre d’interface riche qu’on faisait jusqu’ici en application bureau — animations, vidéo, vrais contrôles — sans dépendre de Flash. Sur mes mandats web chez Fujitsu, c’est exactement le genre d’affaire que je dois évaluer avant que le client tombe en amour avec la démo.

Parce que la démo, elle est belle. On te montre une galerie de photos qui zoome en douceur, de la vidéo qui roule dans la page, des transitions fluides. Ton réflexe de développeur, c’est de dire « enfin, on va pouvoir faire des interfaces qui ont de l’allure dans le browser ». Mon réflexe d’architecte, lui, c’est de poser la question plate : ça va marcher où, pour qui, dans combien de temps ?

C’est là que le portrait se complique. Silverlight, ça demande un plugiciel à installer. En 2007, Flash est déjà partout, installé sur presque toutes les machines. Silverlight part de zéro. Si je bâtis le site public d’un client là-dessus, je demande à chaque visiteur d’installer quelque chose avant même de voir le contenu. Pour un site grand public, c’est un gros frein. Pour une application interne, où je contrôle les postes, c’est une autre histoire.

J’ai dessiné le terrain de jeu pour clarifier mes options au client.

flowchart TD
    A[Besoin: interface web riche] --> B{Public ou interne?}
    B -->|Public large| C[AJAX / HTML standard]
    B -->|Public + média lourd| D[Flash, déjà installé partout]
    B -->|Interne, postes contrôlés| E[Silverlight envisageable]
    C --> F[Compatible, mais limité]
    D --> G[Riche, mais fermé]
    E --> H[Riche .NET, mais plugiciel à déployer]

Ce qui m’intéresse techniquement, c’est que Silverlight parle le même langage que ce que je fais déjà côté .NET. L’interface se décrit en XAML, comme dans WPF. Pour une équipe qui connaît déjà l’écosystème Microsoft, la courbe d’apprentissage est moins raide qu’avec ActionScript.

<!-- Un bout de XAML Silverlight: déclaratif, proche de WPF -->
<Canvas xmlns="http://schemas.microsoft.com/client/2007">
  <TextBlock Text="Bonjour" FontSize="24" Canvas.Top="20" Canvas.Left="20" />
  <Rectangle Width="120" Height="40" Fill="SteelBlue" Canvas.Top="60" Canvas.Left="20" />
</Canvas>

Mais la techno, c’est jamais juste la techno. C’est le timing pis le marché. Et là, mon petit doute d’observateur revient. Microsoft arrive après Flash, qui a une dizaine d’années d’avance pis une base installée énorme. Pour gagner cette guerre-là, ça prend pas juste un bon produit : ça prend que les développeurs embarquent, que les outils suivent, que le plugiciel se retrouve sur assez de machines pour que ça vaille la peine. C’est un pari sur l’adoption, pas juste sur la qualité.

Pis l’adoption, c’est imprévisible. J’ai vu des technos meilleures perdre contre des technos « assez bonnes mais déjà partout ». La meilleure idée gagne pas toujours; souvent, c’est celle qui était là en premier pis qui était assez correcte. Ça, c’est une leçon que je garde pour pas mal de décisions d’architecture.

Le conseil que je donne au client est donc nuancé. Pour une application interne riche, sur des postes que l’entreprise contrôle, Silverlight mérite un essai sérieux — surtout si l’équipe est déjà dans le monde .NET. Pour un site public où chaque clic compte, je reste sur des bases standards, AJAX pis HTML, quitte à être moins flashy. Le risque de demander un plugiciel à un visiteur impatient, c’est de le perdre avant la première seconde.

Le piège que je nomme, c’est de choisir une plateforme parce qu’elle est excitante plutôt que parce qu’elle règle le vrai problème. Une techno neuve, ça brille fort dans une présentation. Mais dans deux ans, faut encore la maintenir, trouver du monde qui la connaît, pis pas être pris dans un cul-de-sac si elle prend pas. Le piège classique de la dépendance à un fournisseur, je le garde toujours en tête.

Ce que je retiens, c’est qu’une plateforme riche, c’est un outil, pas une religion. La bonne question, c’est jamais « est-ce que c’est cool ? », c’est « est-ce que ça sert mon utilisateur sans m’enfermer ? ». Silverlight est intéressant, ambitieux, bien pensé sur le plan technique. Reste à voir si le marché va lui laisser de la place. Je vais le suivre — mais sans miser la ferme dessus.