Quand on regarde se qui se passe, entre l’envoie d’une requête par le navigateur et l’affichage du résultat, on est frappé par l’incroyable gâchis, à tous les niveaux.
Incroyable à un niveau difficile à imaginer. Intuitivement, je dirais au moins 1000, mais la réalité est sans doute bien plus élevée.

1000 ? 1000 quoi ?

1000, entre ce que ferait un système avec des performances optimisées, et ce qu’on fait actuellement.

Un exemple croustillant :

La page à afficher contient du Javascript.
Ce javascript est envoyé en texte sur le réseau. Il prend donc une bande passante correspondante.
De plus, il est bien souvent dans un fichier à part. Cela veut dire un échange spécifique, entre le client et le serveur, pour ramener ce script sur le client.
Bon, le script est là…. Le navigateur doit analyser ce texte, caractère par caractère, pour transformer tout ça en un programme exécutable.
Si, à la place, on avait un « bytecode » : un code binaire universel (comme le java par exemple, ou le flash), il y aurait, sur le client, une lecture incroyablement plus rapide, pour un code beaucoup plus léger.

Des exemples comme celui là, il y en a des dizaines, des centaines, qui s’accumulent les uns aux autres…

C’est toute la chaîne Internet / Web qui est construite sans aucune réflexion de performance, comme si les ressources étaient illimitées.

Résultat, pour mettre en ligne des services, avec des temps de réponse raisonnable (moins d’une seconde… une éternité pour un ordinateur), on doit mettre en œuvre des monstres de puissance : batterie de serveurs octo-processeurs, giga octet de Ram, systèmes de cache, … Bref, un système capable de performances hallucinantes… Tout ça pour servir quelques pages web à la seconde… Pages qui ne comportent en général aucune complexité au niveau des calculs…

Comment en est-on arrivé là ?

Simplement, très simplement : grâce à Mr Moore, ou, pour être plus précis, à l‘incroyable évolution de la puissance des machines.

Pourquoi optimiser, si les machines gagnent un facteur 2 tous les 18 mois tant côté serveurs que côté client ?

La question suivante est naturellement : mais que va-t-on devenir ?

Je veux dire : va-t-on continuer à « gâcher » à ce point les ressources IT ou les choses vont elles « naturellement » évoluer, pour aller vers un peu plus de raison…

toujours difficile et risqué de répondre…

Je pense que les choses vont évoluer, avec des sauts technologiques, poussés par des nouvelles solutions, qui seront acceptées, parce qu’elles trouveront un axe malin pour se propager…

Google peut naturellement être un acteur de ces révolutions à venir, ils travaillent à plusieurs niveaux pour optimiser un peu « tout ce bazar » !