Silverlight et consors
Post de Olivier Ezratty du 19 mai 2007 - Tags : Internet,Logiciels,Microsoft | 26 Comments
Les annonces récentes de Microsoft Silverlight, Adobe Apollo et des évolutions de Flex, tout comme celle de JavaFX de Sun donnent un peu le tournis dans le monde des “Rich Internet Applications”. Il y a de quoi y perdre son latin car ces technologies sont toutes concurrentes, mais elles présentent des différences certaines que leurs présentations marketing ne permettent malheureusement pas d’identifier clairement.
Les annonces s’appuient à la fois sur les forces de leurs auteurs, et aussi de leurs faiblesses sur le marché et de leurs ambitions pour les résorber. Tout en surfant sur la vague du Web riche, interactif et multimédia.
Pour faire simple:
Je vais dans ce post tenter de décortiquer ces annonces en commençant par Microsoft.
Microsoft et Silverlight
Silverlight a été annoncé pendant la conférence MIX de Las Vegas de fin avril 2007. C’est une technologie de plug-in pour navigateur permettant d’exécuter des composants logiciels “riches” avec toutes sortes de contenus interactifs, notamment vidéo. Elle ne part pas de zéro puisque c’est le nouveau nom donné à ce qui était jusqu’à présent le WPF/E (Windows Presentation Foundation / Everywhere) dont une version d’évaluation était sortie en décembre 2006.
Silverlight présente plusieurs caractéristiques intéressantes:
D’un point de vue pratique, l’installation de Silverlight (1.0 beta) est rapide, avec un téléchargement de moins de 2 Mo. Tout du moins sous Windows Vista ou sous Windows XP SP2 qui disposent déjà du framework .NET. Dans le cas contraire, on est bon pour 50 Mo de téléchargement. Une fois le plug-in installé, on peut tester quelques petites applications de démonstration comme cet outil de présentation de bandes annonces de Fox:
En fait, il y a coexistence entre la bêta de Silverlight 1.0 (2 Mo) et une alpha de Silverlight 1.1 (4 Mo). C’est vraiment un comble! Cette dernière version qui seule supporte la CLR et les langages de programmation de .NET permet de visualiser quelques démonstrations comme ce Silverlight Airlines qui permet visuellement d’identifier le meilleur vol et parcours pour aller d’une ville à une autre des USA:
Dans son lancement de Silverlight, les premières références clients de Microsoft étaient très orientées ‘médias’ et réduites aux USA: CBS (pour un site communautaire en cours de création, à la MySpace), Fox que l’on a déjà vu, Major League Baseball (télévision en direct et à la demande), Skinkers (push streaming vidéo sur mobiles), Limelight Delivery Network (distribution de contenus médias) et enfin Netflix pour la consultation d’extraits vidéos.
Il y avait également quelques logiciels ou matériels en tirant parti: Roxio Buzz, un outil gratuit de montage vidéo relié aux plates-formes de streaming comme Silverlight Streaming (version payante pour supporter les codecs vidéo comme le MPEG2, MPEG4 ou AAC d’Apple), Topbanana de Metaliq, un outil de montage vidéo équivalent issu d’une jeune startup, et enfin Tarari qui annonce un encodeur vidéo matériel (pour le VC1 de Silverlight).
Bref, avec Silverlight, on bénéficie de spécificités de .NET et de Microsoft: un choix de langages de programmation et d’outils de développement modernes, la meilleure performance d’exécution et une plate-forme d’outils de création adaptée à tous les métiers. Par contre, c’est malgré un peu d’ouverture, un monde assez “Microsoft centric”. Vous voulez en savoir plus? L’occasion vous en est donnée en participant à la conférence Mix à Paris, au Cirque d’Hiver, le 21 juin. Vous pouvez aussi lire divers compte rendu de l’annonce de MIX Vegas, notamment chez Fred Cavazza. Et aussi la description assez complète de Silverlight faite par Scott Guthrie de Microsoft Corp.
Au passage, les rumeurs sur l’acquisition de Yahoo par Microsoft me semblent peu fondées. Contrairement à l’idée répandue chez ses détracteurs, Microsoft fait très rarement l’acquisition de concurrents, à fortiori de grande taille. Les redondances entre MSN/Live et Yahoo sont trop conséquentes (mail, messagerie instantanée, portail, blog, partage photo/vidéos, etc) pour qu’une intégration puisse fonctionner sans pertes et fracas. Par contre, il n’est pas impossible que Microsoft discute avec Yahoo de partenariats technologiques divers. Pourquoi pas, relatifs à l’usage chez Yahoo de Silverlight! Mais je peux me tromper, on verra bien…
Sinon, Microsoft vient de faire, comme ça, l’acquisition de aQuantive hier pour la modique somme de $6B. C’est sa plus grosse acquisition historique. Faute d’avoir pu gober DoubleClick, attrapé par Google il y a quelques semaines pour $3B. aQuantive est l’un des principaux concurrents, certes moins connu, de DoubleClick. Il faut dire que aQuantive avait un atout de taille: ils sont basés à Seattle! Mais ceci n’a pas de rapport avec Silverlight, mais plus avec la volonté de Microsoft de monétiser ses services Internet par la publicité, face à l’omniprésent Google.
Adobe, Apollo et Flex
Apollo d’Adobe est l’équivalent le plus proche de Silverlight. A ceci près que ce run-time permet de mixer dans le même composant logiciel du code HTML, JavaScript en plus du Flash et au passage du PDF.
Un plug-in Silverlight sera écrit dans un langage supportant .NET, puis fera appel à XAML pour la description graphique de l’application. Et il sera exécutable dans le contexte d’une page HTML, elle-même rendue par un navigateur. Alors qu’un composant Appolo est en fait une application qui s’exécute directement à partir du bureau.
Du côté outil de développement, Adobe propose Flex pour créer ces applications Apollo. Flex comprend Flex Builder, un environnement de développement (IDE) basé sur Eclipse (illustration ci-dessous), Flex Framework, un modèle de programmation, et Flex Data Services, un service d’accès (écrit en Java) aux données gérant la synchronisation entre client et serveur. L’interface des applications Flex est codée avec MXML, une sorte d’équivalent du XAML de Microsoft.
Sur le poste de travail, l’application Apollo s’exécute avec un run-time Apollo. Une application Flex se contente du Flash Player. Dans les deux cas, on a une bonne vieille application “client riche” dotée des moyens de communication avec les serveurs sur Internet. Voici pour résumer tout cela une cette comparaison schématique d’architecture entre les applications Silverlight, Flex et Apollo (cliquer dessus pour agrandir le schéma):
Au delà de cette notion de client riche “standalone”, ce qui est un peu nouveau dans l’architecture d’Adobe, c’est l’intrusion dans le serveur. Jusqu’à présent, un plug-in Flash s’exécutait tout seul sur le client, sur lequel il avait été téléchargé comme simple fichier à partir d’un serveur. Une application Flex ou Apollo feront appel aux Flex Data Services tournant sur serveur. Ce n’est probablement qu’un début et il ne serait pas étonnant de voir un jour Adobe étoffer son offre de middleware serveur à partir de cette tête de pont.
Un avantage à signaler pour l’offre Adobe: elle est “plus” multiplateforme car l’éditeur supporte lui-même Linux. Même s’il ne supporte officiellement que RedHat et Novell Suse. Sa stratégie pour les mobiles semble par contre moins avancée que celle de Microsoft et de Sun, que l’on verra juste après.
Microsoft et Adobe ont deux approches propriétaires qui se battent en duel. Ils rivalisent d’ouverture dans leur monde propriétaire: Microsoft a fait standardiser le VC1, le C#, la CLR, et a mis en open source la DLR, un bout du run-time de Silverlight. Mais le langage script de Flash, Action Script, est aussi un standard ECMA, organisme convertissant régulièrement des spécifications propriétaires en standards de jure. L’annonce de la mise des outils Flex 3.0 en open source suit cette tendance. Quand ont lit entre les lignes, on constate que seuls certains composants de Flex seront mis en open source. Et que cela ne concerne pas les extensions à Eclipse ni les Flex Data Services. L’approche open source est donc utilisée plus à des fins marketing qu’autre chose, tout en préservant le côté propriétaire des composants clés de la plate-forme Flex et Apollo. A l’instar de Microsoft avec Visual Studio et Expression, le Flex Builder d’Adobe reste bien payant.
Adobe a pour lui la chance qu’a Microsoft dans d’autre domaine : l’inertie de marché. Qui fait qu’il sera difficile de déloger Flash. Le web continuera donc d’être un bric à brac qui voit se côtoyer de nombreuses technologies ouvertes et propriétaires, avec une palanquée de plug-ins et autres composants logiciels incompatibles entre eux.
Avec Adobe, on est donc dans le standard du moment, un peu plus proche des standards Web, et on est plus multi-plate-forme qu’avec Microsoft.
Sun et JavaFX
Sun a annoncé JavaFX quelques jours après l’annonce de Silverlight par Microsoft. On pourrait dire: “en réaction à”. D’un point de vue du timing, c’était à l’occasion de la conférence JavaOne qui avait alors lieu, et de toutes manières, ces choses là ne se préparent pas en quelques semaines. Même s’il apparait que l’annonce est maigre et ne constitue pas une avancée autant que celles d’Adobe ou de Microsoft.
JavaFX Script est un langage de scripting qui fonctionne sur toute machine virtuelle JavaSE. Sorte d’intermédiaire entre Java et JavaScript, il s’appuie sur la bibliothèque de composants Swing servant à décrire les éléments de l’interface graphique. Mais l’ensemble ne semble pas permettre la création d’applications aussi riches visuellement que Silverlight ou Flex.
Alors, où est l’interpréteur de ce langage? L’histoire ne le dit pas et le marketing de Sun est assez obscur de ce point de vue là. L’interpréteur doit se charger avec l’application, étant lui-même écrit en Java. Ou bien JavaFX n’est qu’un nom marketing pour un sous-ensemble de Java ou de JavaScript. En tout cas, ceci n’augure rien de bon en termes de performances. Les applications JavaFX sont des fichiers .jar chargés à partir d’un navigateur et qui s’exécutent ensuite dans leur propre fenêtre.
Sun propose aussi JavaFX Mobile, un middleware pour mobile permettant d’exécuter ces nouveaux scripts. Un bon point pour Java qui est effectivement très présent sur ce marché.
Autre bon point pour Sun et Java, le côté multi-plate-forme qui est bien meilleur que pour Microsoft Silverlight et Adobe Flex/Appolo. Car Java supporte à peu près tout ce qui existe comme système d’exploitation. De plus, JavaFX en open source, of course.
On développe les applications JavaFX à partir de NetBeans, l’environnement de développement gratuit de Sun écrit lui-même en Java.
Donc, what’s new? Pourquoi a-t-on besoin d’un langage de scripting lui-même tournant au dessus de Java? La littérature indique que cela permet d’ouvrir Java à un plus grand nombre de développeurs. Mais n’est-ce pas le rôle de JavaScript? Mystère pour moi…
Sur le site de JavaFX, on pouvait tester quelques petites applications de démonstration comme celle de Motorola qui a l’air bien animée et rapide:
Et une autre de Tesla Motors. Mais, différence notable par rapport aux démonstrations de Microsoft et Adobe: il n’y a pas de vidéos! Pourtant, cela doit être possible.
Au bilan, avec Sun et Java, on n’est pas très avancé, sauf peut-être sur les mobiles où Java est très présent.
Solutions open source
Le monde de l’open source est très divers et son approche est donc assez fragmentée. Même si elle présente l’approche de ne pas être propriétaire et proche des standards du Web.
Historiquement, les évolutions du développement Web dans ce monde passaient par Ajax et ses évolutions comme XAP (soutenu par Nexaweb) ou implémentations diverses comme chez Helmi, tout comme XUL – un vague équivalent open source du XAML de Microsoft – et SVG, un format d’image vectoriel 2D dérivé de XML. (NB: Microsoft fournit aussi une implémentation d’Ajax sur ASP.NET avec Atlas).
C’est le projet OpenLaszlo, d’origine italienne, qui semble le plus proche de Silverlight et de Flex. Il s’appuie sur un langage LZX de description d’interface graphique similaire à XUL (Mozilla Foundation), XAML (Microsoft) et MXML (Adobe) et sur un logiciel serveur qui compile le code pour l’envoyer aux navigateurs au format Shockwave reconnu par le player Flash ou bien en JavaScript. Les quelques démonstrations d’applications réalisées avec sont assez classiques dans la forme.
Enfin, du côté du consortium ObjectWeb, il n’y a pas de signe de vie d’une plate-forme intégrée pour le “rich web”. Ce qui s’explique par l’orientation middleware serveur et développement d’applications en entreprise du consortium et de ses différents membres.
A ce stade, aucune solution open source n’a réussi à véritablement égratigner Adobe côté part de marché, ou Microsoft du côté de la cohérence de l’architecture.
Conclusion
Je constate au vu de ces acteurs du marché que leur marketing est assez cryptique. Leurs explications contiennent peu de schémas qui expliquent qui fait quoi, quel logiciel tourne où et s’interface avec quoi. Le manque de pédagogie est flagrant. Adobe n’est pas trop mauvais, Sun est une catastrophe, et Microsoft se situe entre les deux.
Je note aussi une conséquence de l’émergence de ces applications “riches” qu’il ne faut pas négliger: elle peut fermer l’Internet et notamment empêcher l’indexation de contenus, s’ils sont tous encapsulés dans ces applications.
Bref… net net, Adobe et Microsoft restent les deux acteurs en lice dans ce web propriétaire!
Encore faut-il faire la part des choses sur le marché concerné. Il s’agit ici du marché des “applications riches”. Mais l’essentiel du web, ce sont des applications “pauvres” – certes dynamiques – qui n’ont pas besoin d’être “riches”. Donc, les applications Web développées avec des outils plus traditionnels comme le bon vieux PHP et le JavaScript, continueront de dominer l’Internet pendant longtemps.
Article très légèrement mis à jour le 20 mai 2007
Lien du blog Opinions Libres : https://www.oezratty.net/wordpress
Lien de l'article : https://www.oezratty.net/wordpress/2007/silverlight-et-consors/
Cliquez ici pour imprimer
(cc) Olivier Ezratty - http://www.oezratty.net