Inovia Blog

L’actualité des technologies innovantes

Google Closure Tools : sous le code, la polémique

Par Kadda SAHNINE

Publié le | novembre 15, 2009 |

closure.pngFidèle à sa stratégie, Google impose à l’ensemble de l’industrie informatique son agenda technologique par une déferlante d’annonces.
Cet article sera l’occasion de revenir sur la sortie le 05 Novembre 2009 de Google Closure Tools, une collection d’outils ayant contribué au développement d’applications emblématiques de la firme californienne (GMail, Google Docs) et dont le code source a été libéré.
A contre courant d’un certain enthousiasme, nous vous proposons un décryptage critique et circonstancié de Google Closure Tools.

Le contenu du projet

Google Closure Tools est une collection de 3 outils dont le code a été libéré sous licence Apache :

Seul Closure Template est utilisé par GMail et Google Docs.

Closure Library

Il s’agit un toolkit Javascript totalement agnostique vis-à-vis du serveur, présenté comme une blibliothèque Javascript standardisée (une sorte de JDK pour Javascript). De nombreux blogueurs comparent GCL à jQuery ou Mootools alors que la comparaison avec Dojo est assez frappante :

  • une même approche dans la conception (utilisation d’espaces de nommage, etc.)
  • une même vocation universelle (support de l’internationalisation, API de dessin vectoriel, etc.)

En ce sens, jQuery est radicalement différent et dans sa conception (librairie non intrusive, architecture de plugins), et dans sa vocation (librairie centrée sur un nombre limité de fonctionnalité).

On sera surpris par la taille du projet (172 Mo !!), la librairie pesant tout de même près de 8 Mo.

Closure Compiler

Avec une pointe de sarcasme, on comprend mieux l’utilité de Google Closure Compiler (acronyme GCC …) destiné à optimiser et compresser le code Javascript. Le nom de Closure Optimizer aurait été plus conforme à la réalité.
L’outil, sans adhérence avec les autres Closure Tools, peut utilisé sous la forme :

Si la vocation de ce module est d’améliorer les performances, on pourra objecter que des développeurs talentueux comme Thomas Fuchs (auteur de Scriptaculous et Scripty2) ont ouvert la voie au développement de code Javascript performant sans recours à un optimiseur. Nous vous encourageons à évaluer cette application de démonstration pour en apprécier toute la mesure.

Closure Templates

Il s’agit d’un moteur de template pour la génération dynamique de pages web. La principale originalité réside dans l’écriture de templates indépendants de la technologie sous-jacente (fichers d’extension .soy utilisant une syntaxe spécifique). Google fournit à ce jour deux backends Javascript et Java.
Closure Templates est mis en œuvre dans les applications GMail et Google Docs.

Les polémiques

Encore un nouveau framework ?

Il est de plus en plus difficile de décrypter la stratégie de communication de Google à l’adresse de la communauté des développeurs web. Déjà, en septembre dernier, on apprenait que Google travaillait sur un framework web orienté REST s’appuyant sur Google Guice, le bien nommé Google Sitebricks dont on reparlera prochainement.
Si l’on compte les stacks web pour Google App Engine et GWT, on comptera quasiment une demi douzaine de frameworks web estampillés Google.

Une stratégie de marques contestée

Bien que marginale, cette polémique fait écho au lancement du navigateur Chrome, et la propension de la firme de Mountain View à s’approprier le jargon informatique dans ses stratégies de marques. Issu du monde UNIX le terme chrome a été repris par Firefox pour désigner l’interface utilisateur entourant la page Web. Pour comprendre de quoi il s’agit, nous vous invitons à lancez Firefox puis saisir l’adresse chrome://browser/content/browser.xul.
En Javascript, les closures sont une technique extrêmement populaires en particulier pour implémenter des fonctions callback à l’issue d’un appel AJAX ou gérer des évènements.
On ne sait si Google a délibérément choisi d’entretenir une confusion sémantique mais l’irritation est réelle chez une partie de la communauté des développeurs Javascript.

La qualité du code en question

Plus significative, cette polémique a été lancée par Kevin Yank à l’occasion de la rédaction d’un billet au titre sans nuances “Google Closure : How not to write Javascript”. Kevin y relate une série de critiques très sévères issues d’une revue effectuée par Dmitry Baranovskiy (le brillant auteur de la librairie de dessin vectoriel Raphaël JS) et portant sur les performances ou la conception générale de l’API.

Conclusion

A ce stade, il est difficile d’imaginer que Closure Library puisse concurrencer sérieusement jQuery. Closure Compiler avait déjà trouvé sa place dans l’arsenal du développeur Javascript, grâce notamment à son intégration dans Firebug via l’extension Closure Inspector. Quant à Closure Templates, on voit mal comment il pourrait s’imposer face à des technologies déjà bien établies. Il faudra probablement plus que des références prestigieuses pour influer sur la prise de décision.

Enfin, on pourra regretter que la marque Google agisse de plus en plus comme un blanc seing au point de faire perdre chez de nombreux architectes, développeurs et consultants ce qu’il y a de plus essentiel dans la pratique de leurs métiers : la nécessaire distance critique qui préside à tout choix technologique.

Partagez cet article !
  • del.icio.us
  • Partager sur Twitter
  • Facebook
  • Google
  • Wikio
  • YahooMyWeb

Abonnez vous !
  • RSS
  • Google Reader
  • Yahoo
  • Netvibes

Suivez l'auteur sur Twitter !
  • Suivre sur Twitter

Comments

3 Responses to “Google Closure Tools : sous le code, la polémique”

  1. Aurélien Pelletier
    novembre 16th, 2009 @ 15:25

    L’article sur la qualité du code est très intéressant. On y découvre la différence entre le bon javascript et le mauvais javascript. Le mauvais javascript est souvent intuitif mais lent, le bon javascript est rapide mais il faut être guru pour le maitriser.
    Mais plutôt que de s’attaquer au symptome (un code javascript non optimisé) Google s’est attaqué à la source du problème: les moteurs d’exécution du jascript.L’approche google est différente, avec V8 la machine virtuelle javascript intégré à Chrome le mauvais javascript est lui aussi rapide…

  2. Kadda SAHNINE
    novembre 16th, 2009 @ 16:15

    Tout à fait juste ! Pour abonder dans ce sens, la vidéo d’intro à HTML 5 par Brad Neuberg (Google) est instructive :
    http://www.youtube.com/watch?v=siOHh0uzcuY#t=2m56s

  3. Google et la Guerre des Etoiles : Inovia Blog
    novembre 19th, 2009 @ 18:06

    […] le 5 Novembre, ouverture du code de Google Closure Tools, dont nous avions déjà parlé […]

Laisser un commentaire





A propos d'Inovia Conseil

Inovia Conseil est un cabinet d'architecture spécialisé dans le conseil IT, l'expertise technique et le développement de systèmes informatiques.
Nous accompagnons nos clients dans toutes les phases opérationnelles d'ingénierie des systèmes d'information, allant du conseil IT aux développements à valeur ajoutée.

Flux RSS

Rechercher

Administration