Articles taggés avec ‘interfaces-riches’

Adobe Max 2009 – Jour 3

Troisième et dernier jour de conférences à l’édition 2009 de l’Adobe Max.

From Sketch to Click-Through HTML Prototype with Fireworks

Enfin une session sur le protoypage avec Fireworks avec Dave Hogue de l’agence Fluid :

  • Il est tout à fait possible de se servir de Fireworks pour créer des prototypes et les tester avec des utilisateurs ;
  • Tout commence avec des croquis qui sont importés dans l’outil (Fireworks CS4) ;
    Première étape du prototypage

    Première étape du prototypage

  • La Master Page est utile pour “poser” les éléments immuables (header, nav…) ;
  • La grille et les règles permettent de structurer les pages ;

    Deuxième étape

    Deuxième étape

  • Des éléments sont ensuite superposés sur le croquis ;

    Troisième étape

    Troisième étape

    Quatrième étape

    Quatrième étape

  • Les outils “Slices” et “Hotspots” servent à rajouter de l’interactivité ;
  • Possibilité d’encapsuler du code HTML (pour une carte Google Maps par exemple) ;

    Encapsulation d'éléments HTML dans la maquette

    Encapsulation d'éléments HTML dans la maquette

  • La dernière étape est l’export en HTML mais cela génère un code source de très mauvaise qualité (suffisant pour faire des tests avec des utilisateurs mais inacceptables en production) ;
  • Il y a également la possibilité d’exporter ce travail dans Dreamwaver (pour retravailler le code source) ou Flash Catalyst (pour en faire une RIA).

Une session intéressante mais qui n’a pas réellement mis en valeur les synergies possibles entre les outils de la gamme pour faire du prototypage rapide ET réutilisable. Car il faut bien admettre que tout ce qu’il a montré peut être fait dans Powerpoint, avec en plus la très précieuse possibilité de faire des tableaux (ce que ne permet pas Fireworks).

Augmented Reality within the Flash Player

Enfin une session qui aborde le potentiel (et les contraintes) de la réalité augmentée dans Flash avec Jesse Freeman :

  • FLARToolkit est une librairie open source qui gère l’affichage de contenus 3D en surimpression d’un flux vidéo de la webcam ;
  • Retour d’expérience sur des expérimentations pour la Nasa et la mission Juno ;

    Exemple d'application de réalité augmentée à la NASA

    Exemple d'application de réalité augmentée à la NASA

  • L’intérêt n’est plus d’afficher du contenu 3D en réalité augmentée mais de faire interagir différents contenus (selon la position des marqueurs) ;
  • Problème = autoriser l’accès à la webcam à chaque fois ;
  • Il existe un émulateur pour gagner du temps et faciliter le debugging ;
  • Le Virtual Physical Computing est un domaine d’application prometteur = manipulation d’objets et de contenus 3D sans clavier ni souris ;
  • Les limitations de FLAR = très gourmand en CPU, pas de gestion native de la 3D dans Flash (nécessite des librairies 3D comme Papervision3D ou Away3D, le flux vidéo de la webcam est plutôt lent) ;
  • Les évolutions = utilisation d’Alchemy pour mieux exploiter les capacités hardware, support 3D natif et plus performant, réalité augmentée en dehors de Flash (smartphones…).

Vient ensuite au micro James Aliban pour des retours d’expériences plus expérimentales / créatives :

  • Utilisations plus artistiques avec de la gestion des particules (AR Particle Bean) ou des expérimentations musicales (Augmented Reality Drum Kit) ;

    Réalité augmentée et gestino des particules

    Réalité augmentée et gestion des particules

  • Implémentation facilitée avec FLARManager ;
  • Une communauté existe depuis l’année dernière (FLARToolkitDocs.org) ;
  • Très intéressante expérimentation avec les cartes de visite augmentées ;
  • Il existe de nombreuses applications commerciales (GE, BMW, Nissan, Toyota, Ikea…) ;
  • Autres exemples = 5Gum, Living Sasquatch, Julian Perretta’s “Ride My Star”… ;
  • Flash est clairement un facteur limitatif car il utilise le processeur pour faire le rendu 3D et non la carte 3D (600 polygones maximum pour limiter l’effet stroboscope, lié au faible taux de rafraichissement en cas de mouvements du modèle 3D ou de la webcam) ;
  • Entre 20% et 25% des ordinateurs domestiques sont équipés d’une webcam ;
  • La prise en main est délicate pour les concepteurs et développeurs d’applications car l’image est inversée (vue depuis la webcam).

Wow ! Non seulement nous n’en sommes qu’au début de cette nouvelle forme d’expression mais en plus la communauté est très active (de nombreuses choses sont disponibles en open source).

Building Browser-Based Casual MMOs

Campfu, un casual MMO qui n'existe plus

Campfu, un casual MMO qui n'existe plus

Encore une session très prometteuse avec l’intervention de Nick Fortugno concepteur en chef chez Rebel Monkey qui nous propose son retour d’expérience sur Campfu, un casual MMO qui n’existe malheureusement plus :

  • Le projet a nécessité 18 mois de développement et 2M$ d’investissements (le site n’a été en ligne pour 6 mois) ;
  • Pas besoin d’avoir de très beau graphismes comme Runescape (ex : Kingdom of Loathing qui est quasi-textuel) ;
  • La notion d’engagement est clé car la grosse majorité des causal MMO sont gratuits ;
  • Le fait de ne pas avoir à télécharger ou installer quelque chose est un levier concurrentiel très puissant (vis à vis des MMORPG traditionnels) Puzzle Pirates a commencé en version téléchargeable et est maintenant accessible en ligne ;
  • Les plus grosses difficultés techniques sont du côté du serveur (il existe des solutions middleware comme SmartFoxServer, ElectroServer ou Project Darkstar) ;
  • Avec une solution middleware comme SmartFoxServer, le temps de développement peut être réduit à 1 mois (mais cela induit de fortes limitations en terme d’évolutivité et de montée en charge) ;
  • Les difficulté auxquelles il faut faire face = sécurité (qui a un impact direct sur les performances), disponibilité, stabilité (surtout pour du code interprété), intégrité (via à vis des possibilité de hacking de la partie “client”) ;
  • Les jeux en temps réel sont un vrai défi technologique, voilà pourquoi il est très sceptique vis à vis des solutions de cloud gaming comme OnLive ;
  • Les outils d’automation (débug…) permettent de gagner beaucoup de temps lors de la phase de développement ;
  • La phase de beta est indispensable car de toute façon il y aura des bugs majeurs (quelque soit le temps de préparation et de conception) ;
  • La visibilité est clé dès le début du projet car il faut impérativement recruter très vite un grand nombre de testeurs ;
  • Les revenus générés par la publicité ne deviennent significatifs qu’avec plusieurs millions de joueurs ;
  • Les modèles économiques fondés sur l’abonnement sont particulièrement adaptés pour la cible des plus jeunes (Tween) ;
  • La vente d’items virtuels est intéressant mais demande de gros efforts de surveillance (pou éviter la fraude ou les trafics parallèles) ;
  • Tout comme pour les sites web et boutiques en ligne, les solutions de surveillance des échanges comme celle de TwoFish sont indispensables pour comprendre les flux économiques et éviter les déséquilibres (il est tout à fait possible de faire de l’A/B testing sur le prix de vente d’accessoires virtuels).

Voici une session extrêmement riche en enseignements et surtout un discours qui n’était pas que technique mais qui abordait aussi les problématiques organisationnelles et business.

Adobe Max 2009 – Jour 2 (suite)

Suite de la seconde journée de conférences à l’Adobe Max 2009.

RIA Design Strategies for Business and Product Owners

Aaron Adams de Cynergy Systems

Aaron Adams de Cynergy Systems

Aaron Adams de l’agence Cynergy à propos des facteurs-clés de succès des interfaces riches :

  • L’étude sur le terrain est clé pour bien comprendre le contexte et les contraintes d’usage ;
  • La modélisation des processus permet de simplifier la compréhension de l’enchaînement des tâches et les interactions entre les différents types d’utilisateurs (rôles) ;
  • Il existe plusieurs niveaux de prototypage (plus ou moins précis) ;
    Les différents modèles de prototypage d'une interface riche

    Les différents modèles de prototypage d'une interface riche

  • Les schémas de conception des sites web sont parfois trop restrictifs, il faut plutôt s’inspirer des schémas de conception des applications ;
  • Les tableaux ne sont pas forcément le seul moyen de représenter des données ;
  • La scénarisation des écrans ainsi que les transitions sont essentielles pour faciliter la compréhension d’une interface et pour concentrer l’attention.

C’est étrange mais j’ai vraiment l’impression d’avoir vu cette présentation plusieurs fois… Peut-être est-ce bon signe car cela prouve que les avis convergent.

Max Awards

Comme chaque année nous avons la traditionnelle remise des Max Awards qui récompense les meilleures réalisations et c’est un authentique chevalier Jedi qui préside cette session 2009 : Mark Hamill.

Mark Hamill sur scène pour remettre les Max Awards

Mark Hamill sur scène pour remettre les Max Awards

Cette année il y a 8 catégories :

  • Advertising & Branding = Pepsi Max It (un jeu en ligne avec la possibilité de contrôler une sorte de tirette comme dans les fêtes foraines) ;
  • Education = PD360 par School Improvement Network (une application en ligne pour publier du matériel éducatif) ;
  • Enterprise Productivity = i3Cube (une solution de gestion d’expérimentations médicales) ;
  • Entertainment = MLB Media Player 4.0 (l’offre de VoD de la ligue de baseball US) ;
  • Mobile = QNX Car Application Platform (une plateforme de widgets pour voitures) ;
  • Public Sector = CommandSim (urn serious game pour l’équivalent de la protection civil) ;
  • Social Computing = SmallWorlds (un casual MMO dont j’ai déjà parlé plusieurs fois) ;
  • Social Responsability = Replay: Finding Zoe (une histoire interactive pour accepter les différences des autres).

Une belle moisson de prix pour cette édition 2009 dont les extraits vidéos sont à découvrir ici : Max Awards.

Sneak Peeks

Mark Hamill et Ted Patrick sont sur scène pour une présentation des différents projets en cours de gestation :

  • Thin Gaming Client pour une expérimentation de Cloud-gaming sur netbooks et iPod Touch (c’est donc du streaming vidéo d’un jeu qui est exécuté sur le serveur) ;

    Le client de cloud gaming en action

    Le client de cloud gaming en action

  • Un moteur physique dans Flash pour simuler des comportements réalistes (collisions…) ;

    Vous noterez que le type qui fait la démo est déguisé en chewbaca

    Vous noterez que le type qui fait la démo est déguisé en chewbacca

  • Smart Paste in Dreamweaver pour un copier / coller intelligent en mixant des données XML avec un design Illustrator dans Dreamweaver ;
  • Flex Mobile avec une application mobile développée avec… Flex ;
  • Projet “Rome”, un outil d’édition simplifié (à mi-chemin entre Flash et Photoshop) qui repose sur AIR (mais peut être exécuté dans le navigateur) ;

    L'éditeur "léger" d'Adobe

    L'éditeur "léger" d'Adobe

  • Developer Cloud pour du développement avec des services hébergés dans les nuages ;
  • Selective Undo in Fireworks pour l’annulation sélective de modifications dans Fireworks ;
  • Patchmatch for images, un algorithme de correction de photos qui respecte le contexte de la photo (très impressionnant).

Comme toujours les Sneak Peeks sont très technique et l’on y voit surtout beaucoup de code. Et comme toujours, la traditionnelle démo des algorithmes expérimentaux de Photoshop a bluffée tout le monde (heureusement que nos députés travaillent sur la loi Photoshop). Il est certain que les possibilités de manipulation des images vont très certainement franchir un nouveau stade.

L’actualité des mes autres blogs (juillet 2009)

Comme à chaque début de mois, je vous propose un résumé des billets publiés sur mes autres blogs.

L’actualité des interfaces riches appliquées au e-commerce sur RichCommerce.fr :

L’actualité des réseaux sociaux et plateformes communautaires sur MediasSociaux.com :

L’actualité des univers virtuels et du v-business sur VirtualWorldsNews.fr :

L’actualité des interfaces riches sur InterfacesRiches.fr :

L’actualité de l’Entreprise 2.0 sur Entreprise20.fr :

L’actualité de l’utilisabilité et de la conception centrée sur l’utilisateur sur SimpleWeb.fr :

La suite au mois de Septembre.

L’actualité des mes autres blogs (juin 2009)

Comme à chaque début de mois, je vous propose un résumé des billets publiés sur mes autres blogs, avec notamment pour ce mois de juin une révélation exclusive (les forums sont comme des trous noirs), une réflexion sur l’ergonomie des netbooks ainsi qu’une tentative de définition des médias sociaux.

L’actualité des interfaces riches appliquées au e-commerce sur RichCommerce.fr :

L’actualité des réseaux sociaux et plateformes communautaires sur MediasSociaux.com :

L’actualité des univers virtuels et du v-business sur VirtualWorldsNews.fr :

L’actualité des interfaces riches sur InterfacesRiches.fr :

L’actualité de l’Entreprise 2.0 sur Entreprise20.fr :

L’actualité de l’utilisabilité et de la conception centrée sur l’utilisateur sur SimpleWeb.fr :

La suite le mois prochain.

Mes réflexions sur Silverlight 3 et la stratégie RIA de Microsoft

L’édition 2009 du MIX s’achève et comme à chaque fois, Microsoft nous a régalé avec de nombreuses annonces. Oublions le faste et les paillettes de Las Vegas pour prendre du recul et analyser à froid (tiède ?) la teneur de ce qui a été annoncé.

mix09_canyon_1.jpg

Adieu Las Veags et le Grand Canyon

Silverlight 3 et IE8

Annoncé il y a moins de trois ans, Silverlight en est déjà à sa troisième version. Une version par an c’est beaucoup, c’est même énorme pour un acteur de la taille de Microsoft. La preuve qu’ils mettent les bouchées double pour rattraper leur retard sur Flash et s’imposer sur un créneau où Adobe a beaucoup de mal à s’implanter : les RIA d’entreprise. Car ce sont bien les entreprises qui sont la cible principale de Microsoft, tout est fait pour capitaliser sur le framework .Net sur lequel Microsoft a énormément investi (temps et argent).

Le grand public n’est pas en reste avec un focus sur le streaming vidéo et la HD. Petit à petit Microsoft est en train de faire mûrir son offre et sa légitimité avec des partenariats industriels (notamment Akamai) et des partenaires média (NBC, France Television…). Cette approche verticalisée me fait penser à celle d’Apple et QuickTime qui s’est imposé sur la niche des bandes annonces. Sur ce créneau, les ambitions sont clairement affichées : concurrencer le marché des DVD avec de la VOD de qualité et les services qui vont avec. Les disques Blu-ray sont-ils également menacés ? Pourquoi pas, c’est juste une question de débit.

Concernant IE8, il n‘y a pas grand chose à dire : ils sont complètement largés face à une concurrence acharnée de la part de Mozilla (Firefox), Google (Chrome), Apple (Safari) et même Opera. Mon analyse : à quoi bon se battre pour conserver les parts de marché des navigateurs alors qu’ils peuvent noyauter les concurrents avec Silverlight ?

Expression

Débarqué récemment sur un terrain où on ne les attendait pas du tout, Microsoft continue de capitaliser sur la suite Expression qui adresse trois populations distinctes : les designers avec Design, les intégrateurs avec Web et les animateurs avec Blend (désolé pour ce terme barbare mais je n’ai rein trouvé de mieux). Avec SketchFlow il adresse une nouvelle cible (les concepteurs) qui jusque là avait été largement délaissée (laissant quelques miettes à des acteurs de niche comme Axure).

Intégrer un quatrième profil est donc une très bonne chose car ils remontent ainsi encore plus haut dans la chaine de création et peuvent à terme lancer un quatrième produit (qui pourrait potentiellement s’appeler “Flow“).

Restera alors une cinquième population à cibler (les chefs de projet) qui seraient ravi d’avoir entre les mains un outil de pilotage du projet et de collaboration (avec les équipes internes / externes, le client…). Pourquoi pas une offre hébergée à la Basecamp ? Cela collerait tout à fiat avec la philosophie S+S chère à Ray Ozzie.

Un effort considérable est également réalisé pour développer l’écosystème SL et pour mobiliser une communauté de développeurs (une extension de MSDN ?). Macromedia disposait d’un écosystème incroyablement dense qu’Adobe n’a pas su conserver (changement de marque et de cible). Il y a donc des places à prendre pour convaincre une communauté que la complexité de la gamme Adobe peut rendre sceptique (Photoshop vs. Illustrator vs. Fireworks, Flash Pro vs. Flex Builder…). Sur ce point précis, Microsoft n’a pas a gérer la complexité de l’héritage de nombreux produits.

J’attends donc avec impatience la réponse d’Adobe avec le futur Flash 11 et surtout avec l’évolution de Flash Catalyst, et je vous donne rendez-vous l’année prochaine pour découvrir Silverlight 4 !

MIX09 : Jour 1

2 H 30 : Réveil (très) matinal pour moi ce matin à cause du décalage horaire, pas grave, ça me laisse comme ça le temps de me préparer et surtout de lire les dernières news (IBM rachèterais Sun, Google sort une nouvelle beta de Chrome…). Je me console avec un Expresso à la vanille format XXL et un donught.

Mon 1er petit déjeuner

Mon 1er petit déjeuner

7 H 00 : Lever de soleil (artificiel) sur le place Saint-Marc (artificielle elle aussi). Je suis un des premiers à me présenter à la Registration pour récupérer mon badge et les surprises du Welcome Pack : Une invitation pour un tout nouveau service (Microsoft Translation Widget),un CD de musique (CD ?) ainsi que le livre de Bill Buxton (Sketching User Experience).

Las Vegas s'éveille

Las Vegas s'éveille

7 H 15 : Le buffet n’attend que moi, il va en prendre pour son grade ! Je profite du déjeuner pour faire connaissance avec le CTO de MapInfo (spécialisé dans le géo-marketing) qui nous fait l’article sur FireLocator.net, un agrégateur d’informations cartographiées sur les incendies.

8 H 55 : La grande salle se remplit pour la première Keynote, les spéculations vont bon train sur les éventuelles annonces de ce matin.

1ère conférence de la journée

1ère conférence de la journée

Keynote

C’est Bill Buxton qui ouvre cette conférence avec un discours sur l’expérience utilisateur :

  • Histoire du design industriel au travers de différents exemples (Kodak, Bell, Apple…) ;
  • Les ingénieurs conçoivent des objets, les designeurs conçoivent des expériences ;
  • L’important n’est pas de trouver la bonne réponse mais de poser les bonnes questions ;
  • Importance du sketching pour multiplier les itérations et explorer le plus d’alternatives possibles ;
  • L’équipe UX de Microsoft a énormément augmentée ces dernières années avec l’arrivée de Bill il y a 3 ans (deux exemples : Arc, Zune…) ;
  • Démo Silverlight / DeepZoom : Comment reproduire une expérience complexe (ultra-zoom) avec un client riche.
Bill Buxton sur scène

Bill Buxton sur scène

Scott Guthrie prend la suite avec les nouveautés et nouvelles versions d’outils Web :

  • Microsoft Web Platform = Tools and Technologies for Next Generation Web Application ;
  • Démo de la future nouvelle version de Expression Web (meilleure intégration des standards, gestion multilingue, CSS diagnostic, SuperPreview = prévisualisation sur différents moteurs de rendu avec comparaisons side-by-side et superpositions) ;
    La Super Preview dans Expression Web 3

    La Super Preview dans Expression Web 3

  • Plusieurs nouveaux produits (ASP.net MVC 1.0, ASP.net 4, Visual Studio 10, Web Server Extensions, Commerce Server 2009…) ;
  • Présentation du Microsoft Web Platform Installer (téléchargement unique, mises à jour automatiques) ;
  • Présentation de Windows Web App Gallery (briques technologiques gratuites pour Windows Server = AppStore pour votre serveur web) ;
  • Microsoft BizSpark = un programme pour aider les start-ups (l’équivalent du programme Idée en France) ;
  • Démo de StackOverflow.com (une FAQ collaborative pour les développeurs).

On parle ensuite de Silverlight 3 :

  • Seulement 18 mois d’ancienneté et de très gros progrès ;
  • Nouvelles versions du Worldwide Telescope et Virtual Earth (qui reposent maintenant sur Silverlight) ;
  • Nouvelles fonctions RIA = accélération matérielle, Perspective 3D, Pixel shader effects, améliorations de DeepZoom, Deep linking, meilleur SEO, meilleur rendu du texte, support du multi-touch, +100 contrôleurs disponibles…
  • Nouveaux codec supportés = H.264, AAC et MPEG-4 ;
  • Amélioration des fonctions de media analytics ;
  • Démo de Netflix :
    • Le serveur de streaming repose sur Silverlight ;
    • Bénéfices = interopérabilité (browser et plateformes), adaptive streaming… ;
    • Gros efforts de réalisés sur le processus d’installation qui exploite PlayReady ( ?) ;
    • Itérations très courtes sur le player (toutes les 2 semaines) ;
    • L’applications Silverlight sert de laboratoire d’innovation pour déployer sur les autre supports (Xbox…) ;
    • Prochaines évolutions = accélération matérielle avec la V3 de Silverlight.
  • Retour d’expérience de NBC sur la retransmission web des J.O. (52 M de visiteurs, 75 M de vidéos jouées) – La prochaine version pour les J.O. d’hiver de Vancouver sera encore améliorée (100% smooth streaming, full 720p HD, slow motion, metadata overlay…) ;
  • Démo de Vertigo / Bondi :
    • Implémentation de Silverlight / DeepZoom sur les archives de magazines papier avec fonction de browsing très intuitive, recherche et URL lisibles ;
    • Lancement cet été de CoverToCover.com avec un grand nombre de magazines (dont le RollingStone Magazine) ;

      L'application CoverToCover

      L'application CoverToCover

    • PlayboyArchive.com dispo dès maintenant !
  • Démonstration d’une application métier en SL3 avec les Web Forms.

Une démo dédiée à Blend 3 :

  • Grosse surprise avec SketchFlow, un outil de prototypage rapide présenté par Jon Haris :
    • Permet de définir un Application Flow (à mi-chein entre arborescence et workflow) ;

      mix09_sf1

      L'Application Flow de SketchFlow

    • Usage d’une bibliothèque de composants pour créer les écrans (façon Balsamiq) ;

      SketchFlow et le prototypage façon croquis

      SketchFlow et le prototypage façon croquis

    • Transformation d’une vue ‘croquis’ à une vue interface (avec les composants standards de Silverlight) ;
    • Possibilité de compiler des croquis pour les publier sur un environnement de collaboration (avec gestion des différentes versions de chaque écran ainsi que des transitions, possibilité de laisser des commentaires et des annotations sur l’écran) ;

      Preview d'un prototype SketchFlow

      Preview d'un prototype SketchFlow

    • Génération automatique d’un document de spécification sous Word ;
    • Génération de données brutes (latin, bolobolo) ou importations de données réelles (XML).
  • Import de fichiers Photoshop / Illustrator avec récupération des calques ;
  • Behaviors = Ajouter de l’interaction à des éléments de l’interface.

Démonstration des capacités ‘Out of the Browser‘ pour Silverlight 3 :

  • Expérience simplissime et sécurisée (sandbox), mise à jour automatique ;
  • Gestion du mode hors ligne (avec re-synchronisation) ;
  • Intégration fine avec l’OS ;
  • Démonstration avec KEXP.org et du KEXP Player = une application à part entière avec envoie de commentaires en live et exploitation de contenus hors-ligne (vidéo).

    Le KEXP Player

    Le KEXP Player

Le mot de la fin : Silverlight 3 est 40Ko plus léger que la V.2 et surtout est disponible dès aujourd’hui !

Ce SketchFlow est une énorme surprise pour moi car même si j’avais entendu des rumeurs, la démo de ce matin était très prometeuse.

En sortant de la keynote j’avale un déjeuner rapide et je vais faire un tour du côté du Xbox Lounge :

Le Xbox Lounge du MIX09

Le Xbox Lounge du MIX09

À suivre…

L’actualité de mes autres blogs (Février 2009)

L’actualité des interfaces riches appliquées au e-commerce sur RichCommerce.fr :

L’actualité des réseaux sociaux et plateformes communautaires sur MediasSociaux.com :

L’actualtié des univers virtuels et du v-business sur VirtualWorldsNews.fr :

L’actualtié des interfaces riches sur InterfacesRiches.fr :

L’actualité de l’Entreprise 2.0 sur Entreprise20.fr :

L’actualtié de l’utilisabilité et de la conception centrée sur l’utilsiateur sur SimpleWeb.fr :

La suite le mois prochain.

L’actualité des interfaces riches (janvier 2009)

Voici le compte-rendu des articles publiés sur le blog InterfacesRiches.fr pour le mois de Janvier 2009 :

La suite le mois prochain…

L’actualité du Rich Commerce (Janvier 2009)

Voilà un petit moment que je n’avais pas fait de billet técapitulatif de ma production sur mes autres blogs. Commençons donc cette série du début d’année 2009 par les billets publiés sur RichCommerce.fr :

La suite le mois prochain.

Native Client, la technologie RIA de Google qui risque de faire long feu

La sortie de Native Client, une technologie encore expérimentale du Google Labs, est passée complètement inaperçue à quelques rares billets près. Le problème n’est pas que les blogueurs soient peu inspirés par cette nouvelle, mais plutôt que ce produit a tellement été mal présenté au public que personne ne sait trop à quoi ça va servir. Pour information il m’a fallu près de deux semaines de cogitation avant d’attaquer la rédaction de ce billet.

Pas réellement un concurrent de Flash ou de AIR

Force est de constater que ce nouveau produit est plutôt obscur, que les explications sont rares et que même les équipes à l’origine de ce projet sont incapables de fournir une explication claire (cf. Native Client: An OS in Your Browser). Pour faire simple, Native Client est une extension que vous installez sur votre ordinateur pour pouvoir exécuter au travers de votre navigateur des applications en ligne écrites en code natif (C ou C++). Si vous avez le courage vous pouvez toujours lire l’annonce officielle mais vous n’y apprendrez pas grand chose de plus : Native Client, A Technology for Running Native Code on the Web.

Ne vous y trompez pas, même s’il est beaucoup question de RIA, NaCl n’est ni un plugin à la Flash ou Silverlight, ni un runtime à la AIR. Ce n’est pas non plus une technologie qui exploite une machine virtuelle à la JavaFX et pour finir c’est encore moins un mini-système d’exploitation. En fait c’est un peu tout ça à la fois (bien que pas tout à fait). Lire à ce sujet : Why Google Native Client is not a Flash competitor.

En tout cas le moins que l’on puisse dire c’est que Native Client laisse un certain nombre d’observateurs avertis très sceptiques : Google Native Client: A Game Changer or an Also-Ran? et Google Native Client: web deluxe, or ActiveX redux?.

Avec Native Client ne gaspillez plus la ressource de votre processeur

Pour bien comprendre tout l’intérêt de Native Client (NaCl pour les intimes), il faut se pencher sur l’architecture des ordinateurs et surtout sur le fonctionnement des plug-in. Pour faire simple un ordinateur est composé de couches matérielles (la carte mère, le processeur, la carte graphique…) et de couches logiciels (le système d’exploitation, les applications…). Quand vous consultez une interface riche en Flash, celle-ci repose sur du code qui est interprété par le plug-in, par le navigateur, par le système d’exploitation et finalement par le processeur. Ce dernier traite l’instruction et remonte un résultat dans l’autre sens. Toutes ces couches sont autant d’intermédiaires qui traduisent, interprêtent et ne font que vous gaspiller de la ressource (mémoire et puissance de calcul). Voilà pourquoi les animations 3D exécutées dans Flash vous paraissent minables comparé à ce que votre carte graphique est capable de faire.

Avec Native Client, la promesse est de ne plus gaspiller cette ressource en évitant les intermédiaires (les différentes couches logicielles) et de faire en sorte que les applications en ligne exécutées dans votre navigateur ne soient que 1% moins lentes que celles qui sont installées sur le système d’exploitation. Lire à ce sujet l’excellent mais très technique article de Samy : Avec Native Client, Google invente l’OS dans le navigateur.

Si la promesse est belle (des performances sans commune mesure) et l’exploit technologie réel, il y a une contre-partie : les applications en ligne doivent être développées en C ou C++. Et c’est là où ça coince : le C et le C++ sont des langages de programmation contraignants qui ne sont pas réellement adaptés aux interfaces riches. Il existe maintenant de nouveaux langages beaucoup plus sophistiqués qui se sont imposés sur ce créneau avec des environnement de développement dédiés beaucoup plus productifs (à l’image d’Eclipse ou de Flex Builder). Donc concrètement pour bénéficier des performances de NaCl il faut revenir 20 ans en arrière et se réapproprier des langages qui font dramatiquement chuter la productivité. En clair il va vous falloir beaucoup plus de temps pour développer la même application. Tout ça pour quoi ? Pour de  meilleures performances, mais est-ce que la performance est réellement un problème ?

PS : Ceci est une tentative naïve de l’auteur d’expliquer de façon simple le fonctionnement des ordinateurs pour pouvoir mieux comprendre la prise de position sur NaCl. Les premières versions de cette explication étaient approximatives et ont engendrés des commentaires très aggréssifs qui ont polués la discussion avec un débat de forme (”le C n’est pas mort et il est plus performant que Java”) au détriment d’une discussion de fond (NaCl est une belle avancée technologique mais qui ne trouvera pas forcément son public dans la mesure où les usages de l’outil informatique sont amenés à beaucoup changés dans les prochaine années, notamment avec les approches centrées sur la collaboration de l’Entreprise 2.0).

Le faux débat de la performance

Oui, la performance est importante, car il en faut pour faire tourner dans votre navigateur des applications équivalentes à ce que vous avez sur votre disque dur. Mais d’un autre côté est-ce que c’est un but légitime ? Traduction : Quel est l’intérêt de faire tourner Word 2007 dans votre navigateur quand un wiki peut vous apporter un bien meilleur service ? Quel est l’intérêt de faire tourner un mastodonte comme Photoshop dans votre navigateur alors que dans 90% des cas vous pouvez vous suffir de Photoshop Express ou de Picnick ?

Nous entrons ici dans la partie délicate de la discussion autour de NaCl, la partie où l’on va se rendre compte que cette technologie est surtout révolutionnaire pour les éditeurs de logiciels, pas pour les concepteurs d’interfaces riches. L’industrie du logiciel est en effet en train de se scinder en deux clans : d’un côté les applications lourdes (Photoshop, 3DSMax…) qui sont avant tout destinées à un petit nombre de professionnels spécialisés dans un domaine et nécessitant beaucoup de ressources (mémoire, puissance de calcul, capacité de stockage…), de l’autre des applications plus légères (SalesForce, Basecamp…) qui sont avant tout orientées collaboration et qui consomment très peu de ressources. Le modèle SaaS est donc parfaitement adapté à la seconde catégorie avec des technologies parfaitement maîtrisées (HTML + Javascript, Flash…) qui ne posent pas de problème de performance.

Vous pourriez me dire que le débat sur la performance est revenu sur le devant de la scène avec la mode des ordinateurs low cost (les EeePC et autres netbooks) qui ne disposent pas du tout de la même puissance de calcul. Pour ce segment bien particulier il serait intéressant de voir s’il est rentable d’adapter des applications desktop existantes pour les reformater aux contraintes de ces ordinateurs (petit écran…). Mais encore une fois la solution se trouve plutôt dans une nouvelle approche de l’outil informatique (avec les intranets wikifiés et les mashups d’entreprise) plutôt que dans l’exploit technique de faire tourner Office 2007 et Vista sur un EeePC.

Ceci est d’autant plus vrai que les dernières versions de navigateurs comme Firefox, Opera ou Chrome ont fait un bond spectaculaire et ont réussi à décupler les performances d’exécution de code Javascript. Et comme une bonne nouvelle ne vient jamais seule, les plug-in progressent aussi à pas de géant puisque Flash 11 et Silverlight 3 devront également marquer une nette rupture de performance avec une prise en charge beaucoup plus poussée de l’accélération matériel, donc un recours plus intensif aux composants hardware (notamment la carte graphique) et moins de gaspillage de mémoire. Ca ne vous rappelle rien ? Bref, toutes ces améliorations à venir nous font relativiser le gain de performance annoncé par NaCl. Mais bon… l’idée n’est pas neuve car Microsoft avait tenté d’introduire une technologie équivalente avec les fameux ActvieX (cf. Google Native Client : Un ActiveX-Like ?) et n’oublions pas non plus que le javascript a ses limites (cf. L’invasion des machines virtuelles).

Donc au final NaCl doit être avant tout considéré comme un environnement d’exécution et de déploiement révolutionnaire car il permet aux éditeurs de ne développer qu’une seule version de leurs applications et de les distribuer via le web (en évitant les circuits de distribution classique avec boîtes et DVD). Vous noterez au passage que cette solution n’a été rendu viable que depuis l’adoption d’une architecture commune (x86) par les constructeurs et éditeurs de système d’exploitation (Microsoft / Windows, Apple / Mac OSX, Linux). Pour en savoir plus sur le potentiel de NaCl dans ce domaine je vous recommande cet article de Louis Naugès : Web 2.0, Lla marginalisation, définitive, de Windows sur les PC.

C’est quoi déjà une interface riche ?

Mais revenons à nos moutons : les interfaces riches. Dans la vision de Google, les interfaces riches sont avant tout destinées à être exploitées dans le cadre d’applications en ligne. Mais cette vision est très réductrice car que fait-on des innombrables interfaces riches qui reposent sur de la vidéo, des animations, du son, des transitions et autres effets spéciaux ?

Même si Native Client intègre un moteur de rendu vectoriel, Flash (et dans une certaine mesure Silverlight) reste la technologie la plus appropriée et de très loin pour faire ce type d’interface. Est-ce que vous vous imaginez faire un carrousel, un configurateur ou un assistant au choix en C ou C++ ? Non bien évidement car ce n’est pas pour cela que ces langages ont été conçus. L’avantage de Flash est d’autant plus net qu’il est couplé avec un environnement de production parfaitement adapté à ce type d’interface ainsi qu’une infinité de bibliothèques prêtes à l’emploi pour gagner du temps. Vous noterez que l’approche de Google centrée sur les applications en ligne se vérifie également avec d’autres produits comme GWT, un framework Ajax qui est exclusivement tourné vers une logique applicative.

Bref, ce n’est pas demain que nous allons voir des studios de production comme 2advanced, Blitz, Megalos ou Soleil Noir abandonner Flash pour faire du C. Ces studios sont capables de faire des prouesses que le C n’autorise pas.

Conclusion

Si nous résumons :

  • NaCl n’est pas un plug-in, c’est un projet encore expérimental qui n’est même pas en phase alpha ;
  • NaCl n’est pas un mini-système d’exploitation, c’est un complément qui permet de court-circuiter des intermédiaires pour profiter des pleines performances du matériel ;
  • NaCl n’est pas concurrent de Flash ou Silverlight qui sont bien plus performants pour faire de belles interfaces riches ;
  • NaCl dépend de langages de programmation (C et C++) qui sont plus plus performant mais plus contraignant ;
  • NaCl propose une approche tout à fait intéressante de la distribution de logiciels, mais les gros éditeurs disposent de leviers très puissants (accords cadres, partenariats, lobbying…) pour défendre leur modèle de distribution (et je ne parle pas que de Microsoft).

Voilà pourquoi NaCl va très certainement chambouler la longue traîne de l’industrie logiciel bien que cette technologie ne soit en l’état pas viable pour survivre sur le marché des RIA. Marché déjà bien encombré avec FlashSilverlightJavaFX ou des acteurs de niche comme Curl ou Unity3D (respectivement pour des applications en ligne d’entreprise et pour des jeux en 3D comme Cmune).

Reste donc deux possibilités : Soit Google fait fortement évoluer son produit pour le rendre réellement attractif (en expliquant clairement ce à quoi il sert et ce qu’il n’est pas), soit NaCl restera une expérimentation intéressante mais qui sera confinée à un usage interne chez Google.