Et si la vrai révolution de Google Wave, c’était l’utilisation de Google Web Toolkit ?

Un peu technique comme titre, non ?

Bon, Google Wave, c’est pour l’instant une vidéo :

Une vidéo oui, mais quelle vidéo !

La vidéo d’un nouveau service, Made by Google, qui réinvente ni plus ni moins la façon dont on communique sur Internet.

L’une des infos, c’est que ce service est développé sur Google Web Toolkit.

C’est quoi ce truc là ?

C’est une solution, pour répondre à un problème clé du web : le développement multi-environnement.

Reprenons :

Vous devez développer une application Web.

Problème : vous devez être compatible avec quelques systèmes d’exploitation (Vista, XP, …), multiplié par quelques navigateurs (IE 6, IE 7, IE 8, Firefox 2, Firefox 3, …).

Tout celà fait une explosion combinatoire impressionnante.

Si votre page affiche “Hello World”, pas de problème.

Mais si vous avez un service riche, qui utilise par exemple les CSS, l’ajax (le cas de tout service web sérieux quoi) alors là, c’est beaucoup plus délicat : le code doit en effet s’adapter à chaque environnement.

C’est là que Google Web Toolkit (GWT pour les intimes) apporte sa pierre !

En effet, GWT est une solution pour développer des applications Web, qui s’adapteront à tous les terminaux.

On développe donc une seule application, sous Java.

On la teste en local, sur son PC.

Et après, hop, l’application est générée, et le code généré est compatible avec toutes les plateformes.

Vous pouvez tester le service ici par exemple.

Superbe idée… Sauf que jusqu’à présent, aucune application Google n’utilise ce système… Ce qui n’aide pas à crédibiliser la solution…

Voilà (enfin) l’explication de mon titre : si Google Wave est entièrement développé avec GWT, et que ça marche, c’est la preuve de GWT est la solution géniale pour régler ce problème de développement d’interfaces Web !

Réussir = simplicité ?

Je suis un grand défenseur de la simplicité : simplicité des concepts, des interfaces, des services.

De manière gérérale, je pense que la simplicité est l’un des éléments clé pour réussir…

C’est bien souvent vrai, mais il y a de sacrés contres exemples…

Facebook notamment !

Ce service est tout sauf simple… On ne comprend pas grand chose quand on regarde ou utilise ce service.

Et pourtant, quel incroyable succès !

C’est la preuve par l’exemple qu’on peut aussi réussir avec un service pas simple !

Bon, c’est pas une raison pour faire des services complexes, hein ?

Ce monde qui bouge, comme une vague…

On croit que les choses sont bien établies…

Mais non, tout bouge, tout change, tout évolue, très vite.

Ainsi, le mail existe depuis 1973… Bien avant Internet donc.

C’est basé sur un protocole simple…. Et c’est devenu un média d’échange incroyablement populaire et riche (vous recevez combien d’eMails par jours, vous ?).

Google a déjà pas mal fait évoluer les usages, avec son GMail.

GMail a ainsi poussé très loin l’idée que le meilleur outil pour gérer ces emails, c’est le navigateur Internet.

GMail a apporté pas mal d’innovations : les tags, le regroupement automatique des emails par sujet de discussion, …

Ces derniers temps, Google a pas mal travaillé pour atténuer l’écart entre l’Instant Messaging et le mail.

Mais voilà, ça n’était pas suffisent.

Google vient donc d’annoncer Google Wave.

Ils n’ont pas eu peur de repartir de zero… Google Wave n’est donc pas basé sur un protocol de mail.

C’est un protocole spécifique, et ouvert.

Il y a plusieurs idées fondatrices derrière Google Wave :

  • On n’est plus sur une communication One-To-One comme pour l’eMail, mais sur une place d’échange. On peut dire que Google Wave est donc une communication Many-To-Many.
  • La communication est soit temps réel (pour ceux qui sont connectés), soit différée. Il n’y a donc plus du tout de différence entre le mail et le chat
  • Le support est fondamentalement un arbre, et non un texte comme pour le Mail. Dans cet arbre (un “wave”), chaque nœud représente un élément, ajouté par l’un des membres de la discussion, à un instant donné. Cette notion est très riche, et permet d’avoir nativement des documents riches, écrits à plusieurs, ou l’on peut retracer l’historique des modifications.

La notion d’arbre semble particulièrement clé, et permet de gérer des documents composites, mais également des jeux, et probablement pleins de nouvelles choses à inventer, puisque Google Wave est fourni avec une API. Rien d’étonnant là dedans, quand on sait que l’un des gars à l’origine de ce projet n’est autre que le celui qui a développé les API pour Google Maps…

Google Wave, c’est probablement un énorme changement dont on ne mesure pas encore bien toutes les concéquences…

Référencement des contenus flash

Google, Yahoo et Adobe vont donc travailler ensemble pour améliorer le référencement des contenus flash.

Très bonne initiative.

Peut on penser que très rapidement, nos sites riches vont se retrouver en tête des recherches sur Google ?

Certainement pas à court terme. A voir a plus long terme ce qui va sortir…

Premièrement, ces travaux prendront du temps.  Même s’ils vont très vite, on ne devrait rien voir sortir de  vraiment nouveau avant un an minimum.

Deuxièmement, sur le fond : cela veut dire quoi indexer un contenu “rich media” ?

Si l’application est en fait structurée comme un site “classique”, avec une logique de page avec du contenu, on peut effectivement faire un mapping assez simple entre les moteurs de Google et les sites flash.

Mais utiliser le flash pour faire du “html like”, c’est bien réducteur.

Flash permet de développer de véritables applications interactives et multimédia.
Pour de tels applications, la question est bien plus complexe.

Il faut tout d’abord identifier les points d’entrées de l’application, points d’entrées qui seront utilisés par les moteurs de recherche.

Il faut ensuite associer des informations à ces point d’entrées. On est encore, et pour pas mal de temps, sur une recherche “texte”. Donc, même si votre site est surtout un site multi média, cela n’empêche pas qu’il faut, d’une manière ou d’une autre, associer du texte à chaque point d’entrée.

Comment associer ce texte ? Purement déclaratif ? C’est un mode qui pose problème à Google, parce qu’à l’opposé de toute sa politique actuelle pour luter contre le “spamdexing” (technique qui vise à obtenir de très bonnes réponses sur Google, en donnant de fausses indications).
La question pour Google est simple : comment garantir que la description textuelle correspond bien au contenu multimédia ?

En synthèse :

  • A l’évidence, le Web va de plus en plus se remplir d’applications multimédia de plus en plus riches ;
  • C’est un enjeu majeur pour les années à venir que de permettre une bonne indexation de ces services ;
  • A l’évidence, pour avoir un service rich-media bien indexé, il faut y penser dès la conception du service. C’était vrai en HTML, et c’est encore plus vrai en Flash ;
  • Il se passera de nombreux mois avant qu’un service rich-media flash arrive en tête des réponses sur Google !

L’importance du détail pour les interfaces : suite

Une interface réussie est donc une interface ou on a bien travaillé, du niveau “macro” au niveau “micro”.

Dans ce billet précédent, je parlais de l’idée de mettre plusieurs images pour un bouton :

  • Une image pour le bouton au repos ;
  • Une image quand la souris passe au dessus du bouton (mouseover) ;
  • Une image quand on clique sur le bouton.

Petit détail qui compte : il ne faut pas que le navigateur ait à charger les images lors de l’action. Il faut que les images soient pré-chargées.

Sinon ? L’utilisateur risque d’avoir un effet très désagréable : avoir un bloc blanc qui s’affiche lors de l’action. Et oui, le temps que l’image se charge…

Comment pré-charger les images ?

Une solution (il y en a surement d’autres) : on charge une seule image, qui contient tous les états du bouton, et avec un petit code javascript, on déplace la partie visible en fonction de l’action. C’est assez facile à faire, et ça marche très bien.

Le sens du détail, mis en œuvre par Firefox 3

La nouvelle version de firefox est nettement mieux intégrée dans la charte de chaque OS.

Sur Mac, l’interface reprend l’effet “acier brossé” du meilleur gout.

J’en parlais dans mon billet précédent, dans une bonne interface, il faut différencier, pour le même bouton, plusieurs états : repos, quand la souris passe dessus, et quand on a cliqué.

Voici les trois états, proposés par Firefox, pour le même bouton :

Bouton sur la barre Firefox 3, et ses 3 états

Et le curseur tournant pour attendre l’affichage ? Sur Firefox, il est mis en œuvre à plusieurs endroit : sur l’onglet en cours de chargement et à droite de la barre d’adresse.

Sur une interface Web, on peut positionner ce curseur dans le bouton, mais il y a bien sûr d’autres options possibles.

L’importance du détail pour les interfaces

La qualité d’un site passe par multitude de détails.

Des détails ?

Des détails qui impactent directement le taux de transformation du site. Des détails qui pèsent lourd donc !

Exemple : les boutons.

En premier lieu, le bouton doit avoir une forme sans équivoque, qui sera reconnu par l’Internaute comme un élément appelant le clic.

Un bouton bien clair : on veut cliquer dessus !

La couleur ressort bien du contexte, le libellé est clair. L’effet relief rajoute l’envie de cliquer.

En deuxième point, il me semble qu’on apporte un signal encore plus clair et “incitatif” en changeant la couleur ou la forme du bouton au survol de celui-ci par la souris :

Bouton Up (exemple d'Amazon)

Bouton Down (exemple d'Amazon)

(exemple extrait d’Amazon)

C’est bon ? Oui, mais je pense qu’on va aller dans un avenir proche un cran plus loin.

Je pense en effet qu’on pourrait améliorer l’expérience utilisateur en lui signifiant clairement, après le clic, qu’on a bien pris en compte sa demande.

En effet, le temps de traitement, qui suit le clic, est très variable, en fonction du débit de l’internaute, de l’engorgement du réseau, du taux de charge du serveur, …

Donc, il faut faire patienter l’internaute.

L’interface gagnerait en clarté si, après le clic, un signal visuel indiquait à l’internaute que sa commande est en cours de traitement. On pourrait par exemple ajouter sur le bouton, qui devrait être avoir un code couleur pour signifier que l’utilisateur a bien validé l’option, une animation représentant l’attente, dans le genre :

Représentation de l'attente

Je ne crois pas qu’on puisse faire ça en html / css standard. Il faut un brin de Javascript.

Je n’ai pas vu de site mettant ça en oeuvre (le dernier point je veux dire). Et vous ?

La qualité d’un service – le sens du pratique et du détail

Je devais préparer un trajet ce matin (et je n’ai pas encore l’iPhone 2 avec GPS ;) )

J’ai commencé par utiliser un service national, mais le trajet ne m’allait pas, puisqu’il passait par le périf, et le périf en scoot, …

J’ai donc fait une nouvelle tentative avec Google Maps. Voici le premier itinéraire proposé :

Google Maps : itinéraire par défaut, via le périf

En cochant une case, j’ai pu préciser que je ne voulais pas passer par l’autoroute. Google Maps m’a alors proposé ce nouvel itinéraire :

Google Maps : itinéraire 2, en précisant que je ne veux pas prendre les autoroutes

En faisant un drag & drop d’un point de l’itinéraire, j’ai pu préciser que je préférais passer par les rives de la seine (bien plus rapide et sympa que le Bd Brune) :

Google Maps : itinéraire ok, via les bord de seine.

Et voilà, j’ai mon itinéraire. Simple et efficace.

On doit prendre modèle sur ce genre de service. Pas de détails inutiles, mais les fonctions qui répondent à de vrais besoins !

La longue traine vue par Dassault System

Tout le monde ne le sait peut être pas : Dassault System est aussi un éditeur de logiciel, dans le domaine du PLM.

3DS, c’est 8000 personnes (quand même !), dont la moitier en R&D.

3DS est leader sur son marché, et propose tout un tas d’outils, permettant de modéliser en 3D des produits. Ces outils sont historiquement utilisés pour les produits industriels (avions, voitures, …) mais aujourd’hui, le cadre d’utilisation de ces outils à bien changé, et sont également utilisés pour l’électronique grand public, ainsi que, par exemple, par les grands magasins, pour visualiser une mise en rayon virtuelle.

Bon, jusque là, on est encore dans un contexte purement B2B.

Mais cela évolue, surtout avec l’acquisition de Virtools (2005).

Donc aujourd’hui, 3DS propose 3DVIA :

3DVIA

La vision, c’est qu’après le texte, l’image, le son et la vidéo, la prochaine grande révolution pour le web sera la 3D.

Ce portail essaie de construire cette vision, avec tout un tas d’outils et de services.

On peut par exemple naviguer dans une bibliothèque de modèles 3D, qu’on peut consulter directement dans le navigateur (avec un plugins à installer). L’idée, c’est de construire le Youtube du 3D :
Copie d'écran de l'espace de partage de modèles 3D

Mais les ambitions de 3DS vont plus loin, avec d’autres idées plus futuristes.

3DS a ainsi signé un deal OEM avec Microsoft, pour enrichir MS Virtual Earth, et permettre à chaque utilisateur d’ajouter des objets 3D sur le monde virtuel de Microsoft. On peut ainsi modéliser sa propre maison sur son emplacement :

3DS propose d’aller encore plus loin, avec plusieurs idées “Web 2.0″.

Ils ont ainsi développés une application FaceBook, permettant d’ajouter et de manipuler des objets 3D directement dans le réseau social.

Mais le plus étonnant est sans doute l’idée de la 3D “long tail” : une application permet de co-créer un modèle 3D sur Internet. On serait donc tous de futures créateurs 3D…

Exemple donné : un constructeur automobile diffuse le modèle 3D de la voiture en préparation, et propose à tout un chacun de modifier ce modèle. On peut ainsi changer la forme d’un tableau de bord qui ne plait pas, déplacer ou ajouter des éléments, …

Partagez vous cette vision ?

Pour ma part, je ne suis pas complètement convaincu.

Je pense bien sûr que la 3D va être de plus en plus utilisée, surtout avec la généralisation des player 3D (Flash ou même nativement dans les navigateurs).

La 3D peut être un bon vecteur pour améliorer la “proximité” avec certains produits, surtout pour les produits complexes.

Mais je ne pense pas que la 3D va prendre une place si importante que ça sur le Web, et je crois encore moins à l’idée qu’on va tous manipuler des modèles 3D (il faut s’entraîner vraiment longtemps avant d’arriver à faire ce qui est montré dans la vidéo ci-dessus).

Les couches logicielles

Couches, du hard vers l'applicatif

Donc, à la base, il y a du matériel.

Pour donner vie à ce matériel, on rajoute un système d’exploitation.

Par dessus ce système, on ajoute des applications.

Une application bien particulière est le navigateur Internet.

Ensuite, nos services Internet peuvent prendre vie, soit directement dans le navigateur, soit via une extension, Flash ou Java.

Chaque flèche indique un endroit pour développer une application.