vendredi, mars 20, 2009

Javascript: le nerf de la la guerre des browsers. Pourquoi?

Avec son site Chrome Experiment, Google met en avant la supériorité de son navigateur Chrome dans les performances Javascript. La fondation Mozilla le fait également régulièrement: voir le blog de Tristan.

Pourquoi ?
  1. Parce que l'on se dirige tout doucement vers le Cloud Computing intégral où tout est stocké dans le réseau y compris le code front-end et back-end
  2. Parce que ce code applicatif est alors téléchargé en live sur le client au moment où l'application est activée. C'est la fameuse "empreinte nulle" (sur le disque dur - "zero footprint" en bon jargon) de l'application elle-même et de ses pré-requis. Il s'agit que l'application puisse fonctionner le plus localement possible voire en mode déconnecté comme Google Docs ou Google Calendar
  3. Parce que le client qui active cette application est le plus souvent inconnu et hors de contrôle (il arrive par Internet) de la société qui publie l'application. A l'époque du self-service (i.e de l'efficacité / économie à tout crin), il faut que ce soit l'utilisateur externe qui fasse le boulot. Pour que cela fonctionne, il ne faut imposer aucun pré-requis complexe d'installation
  4. Parce que cet utilisateur externe doit malgré tout avoir accès à une interface graphique riche (les fameuses RIA) pour donner une bonne image et soigner aussi la productivité de cette source externe de travail non rémunéré
  5. Parce que les développeurs de cette application doivent pouvoir travailler à un niveau de productivité élevé (orientation objet, support des IDEs, etc...)
Quand on combine tous ces facteurs: on arrive à un langage de programmation qui doit être
  • nativement embarqué dans tous les browsers standards du marché
  • utilisable par des programmes arrivant en temps réel par le réseau
  • offrir l'accès intégral aux structures HTML rendues par le navigateur et au système back-end par un mécanisme RPC performant (le XHR, partie critique d'AJAX inventée par Microsoft pour Outlook)
  • doté d'une riche palette d'outillage sur Eclipse, Netbeans, etc.... et de techniques de programmation avancée (objets, prototypes, etc...)
  • ouvert pour fonctionner fluidement avec l'ensemble des extensions, plus-ins et autres add-ons qui sont souvent déterminants dans la maximisation de la productivité retirée d'un browser ou l'autre

Si l'on fait la synthèse de ces caractéristiques, je ne trouve que Javscript qui réponde au mieux à toutes. J'exclus d'entréee Flash et Silverlight à cause de leur côté propriétaire qui les empêche de satisfaire certains points ci-dessus.

Seul hic: Javasript est un langage interprété donc "flexible". Il n'y qu'un pas pour transformer cette flexiblité en un chaos insupportable, surtout dans le travail en équipe...

[Je suis intéressé par vos analyses d'autres langages meilleurs que JS dans la satisfaction simultanée de toutes ces contraintes!]

Pour ceux qui pensent (encore) que Javacript n'est bon qu'à ajouter de mignonnes petites animations à leurs pages web, je leur conseille de regarder des frameworks comme GWT de Google, Dojo ou ZK pour découvrir différentes approches maximisant l'étendue des vraies possibilités professionnelles de Javascript....

Tout ceci pour dire que l'on va donc charger et faire exécuter des applications Javacript de plus en plus énormes dans nos navigateurs.

Ouvrir la bataille de la différentiation sur le terrain des performances Javascript est donctrès judicieux.

[PS à mes lecteurs non-technophiles: j'avais aujourd'hui envie d'un billet "dans les bits"...]

Source: blog Media & Tech (par didier durand)

5 commentaires:

mikaelcom a dit…

Salut,
Juste pour informer, le framework de Yahoo, YUI, existe mais semble ignoré! Est-ce part manque de recherche, de réelle analyse des possibilités et des réels caractéristiques que doit proposer un framework Ajax/JS, j'entends une doc technique - des exemples concrets qui nous parle et correspondent à nos besoins - les ressources accessibles en ligne (on n'est pas obligé de le télécharger, j'avoue c'est accessoire) - une réelle communauté derrière - une constante évolution - etc.
Voila, cela me paraissait important de le signaler.
Bonne continuation.

Laurent a dit…

J'ai toujours détesté, haï, conchié, compissé, vomi, recraché le Javascript, le considérant comme le language le plus pourri, cochon, illisible, permissif, tordu... Bref, pour produire du code jetable avec le développeur.

Jusqu'au jour ou j'ai découvert jQuery !

Et depuis ce jour là, Javascript et moi, nous nous sommes réconciliés.

Daniel H a dit…

J'approuve à 1000% le commentaire de Laurent, jQuery !

Anonyme a dit…

j'approuve également pour jquery.

Mais j'ajouterais que j'avais sous estimé Javascript car je pensais que c'était un petit langage de scripting jusqu'à ce que je découvre le livre de Douglas Crockford, 'JAVASCRIPT The Best Part'
la Vidéo ici

Depuis je suis devenu un inconditionnel fan des RIA

d.durand a dit…

@ Laurent, Daniel H, Mikaelcom,

On est donc tous passé par le même chose: le dédain pour JS puis la "passion".

Moi, c'est depuis que j'ai découvert les aspects OO et la librairie YUI que je suis devenu hyper-fan!

cordialement

didier