L’évolution du web : 2015-2016 (statistiques et prospective)

Il est toujours bon d’avoir en tête les statistiques d’usage des différents navigateurs web afin d’exploiter au mieux les technologies disponibles.

Cette synthèse s’appuie sur un échantillon de plusieurs dizaines de milliers utilisateurs sur le 4ème trimestre 2015.

Le site en question étant responsive, les plateformes ciblées sont aussi bien ordinateur que tablette ou mobile.

Le site en question est destiné à un public français.

ORdinateur, tablette, mobile ?

69 % des utilisateurs sont sur un ordinateur de bureau, 17,5 % sur mobile et 13,5 % sur tablette.

Ignorez le mobile et la tablette : vous perdrez 1/3 des utilisateurs. Sans parler des conséquences en termes de référencement.

Les navigateurs web

Ces statistiques s’appuient sur l’ensemble des navigateurs, toute plateforme confondue.

Chrome reste le favori, avec 32,8 % des parts de marché.

Il est suivi par Firefox, à 23,4 %. Puis Safari, notamment grâce à sa version mobile, qui est à 19,75 % des parts. Internet Explorer est – toutes versions confondues – à 16,14 %. Suivi par son successeur Edge, navigateur par défaut de Windows 10, qui s’octroie seulement 3,6 % du marché. Le reste (~ 5 %) est réparti entre Opera, quelques navigateurs Android natifs et autres appareils spécifiques.

Le cas Internet Explorer

Après la déclaration officielle de désuétude de Windows XP (et donc Internet Explorer 8) depuis le 8 avril 2014, Microsoft a récemment renforcé sa démarche de modernisation en n’assurant plus le support des versions inférieures à la version 11 de son navigateur historique Internet Explorer à partir du 12 janvier 2016.

La réaction des utilisateurs ne s’est pas faite attendre.

Parmi l’ensemble des utilisateurs d’Internet Explorer, seuls 16,5 % utilisent une version obsolète. Ramené à l’ensemble des navigateurs, cela représente seulement 2,7 % des utilisateurs.

Côté mobile et tablette

Les 3 systèmes les plus populaires sont iOS, Android et Windows.

Si iOS (47,2 %) et Android (47 %) sont au coude à coude, Windows reste en retrait avec seulement 5 % du marché. Blackberry et les autres ne sont plus représentatifs.

iOS

Sur l’ensemble des versions de iOS, les 3 dernières sont les plus représentées.

iOS 9 en représente 66,3 %, iOS 8 est à 16,9 % et iOS 7 à 12,3 %. Les 4,5 % restants sont partagés par iOS 6 et les versions inférieures.

En visant iOS 7 et supérieurs, on atteint 95,5 % des utilisateurs iOS.

Android

Pour Android, les choses sont un peu différentes.

La dernière version du système (6) est peu représentée à 1,2 % des parts. L’avant-dernière version (5) commence à émerger à 37 %. La version la plus représentée est la version 4 à 60 % des installations.

Sur cette version 4, les différentes déclinaisons se partagent ainsi les parts de marché du système : la 4.0 n’est pas très représentative (2 %), la 4.1 est plus présente (12 %), la version 4.2 est à 7 %, la 4.3 à 4 % et la 4.4 à 35 %.

En conclusion, en visant Android 4.1 et supérieurs, on peut atteindre 95 % des utilisateurs Android.

Les technologies de 2016

En conclusion, les navigateurs les plus utilisés sont ceux de Android 4.1 et iOS 7 ainsi que les navigateurs de type Internet Explorer 11 et supérieurs.

HTML5

Voici une synthèse des possibilités des différents navigateurs : https://html5test.com/compare/browser/chrome-44/firefox-40/ie-11/android-4.0/ios-7.0.html .

Le HTML5 est donc particulièrement bien supporté. Notamment tout ce qui concerne :

  • la gélocalisation,
  • la vidéo (H264 de préférence),
  • l’audio (MP3 de préférence),
  • les canvas 2D,
  • le PNG pour les images avec transparence,
  • le format SVG pour les visuels vectoriels,
  • le WebGL sur ordinateurs de bureau,
  • l’envoi de fichiers côté Javascript,
  • la communication via WebSocket,
  • le copier-coller dans les navigateurs de bureau,
  • CORS,
  • le cache dans les applications,
  • le stockage local de données par système de « clé-valeur »,
  • les bases de données locales sur ordinateurs de bureau,
  • la gestion des données binaires et des fichiers.

CSS3

Le support des composants HTML est une chose. Le support des éléments de style en est une autre.

Là-dessus, les choses se présentent encore mieux. On pourra maintenant utiliser les propriétés suivantes :

  • align-*
  • border-image-*
  • flex-*
  • justify-content
  • order
  • transform-style
  • etc.

Javascript

La technologie Javascript a déjà connu une première révolution avec son arrivée sur les serveurs grâce à Node et Express.

Les performances du Javascript sont aujourd’hui telles qu’il faut maintenant en combler le principale défaut : la standardisation et la fiabilité.

Le travail est en cours grâce aux standards ECMAScript et TypeScript, qui permettent une évolution en douceur.

A cela s’ajoutent des technologies de plus en plus performantes, telles que asm.js qui permet d’obtenir des performances impressionnantes.

Cette technologie évolue très vite, et cette évolution pourrait bien s’accélérer encore en 2016. Au sein des navigateurs web comme ailleurs.

Impact sur les frameworks

Chaque frameworks va pouvoir profiter d’un allègement. En particulier en se déchargeant de bibliothèques externes – telles que jQuery – dont l’intérêt pour le framework n’est plus justifié. Mais également en allégeant le code par la suppression du code supplémentaire lié aux navigateurs obsolètes.

De plus, de nombreux frameworks se standardisent en utilisant des langages tels que TypeScript qui permettent d’avoir un code Javascript plus fiable et plus performant.

Parmi ceux qui en tirent les bénéfices des nouveaux navigateurs, on peut citer :

  • Angular 2.0, standardisé grâce au TypeScript, qui lui permet une compatibilité IE9 et supérieurs, IE11 et supérieurs très rapidement, puis Edge et autres navigateurs Evergreen à terme,
  • Bootstrap 4, compatible IE9 et supérieurs, standardisé grâce à ECMAScript 6 (similaire dans les grandes lignes à TypeScript)
  • jQuery 3, compatible IE9 et supérieurs, pourra obtenir un allègement important, bien que son usage devienne de moins en moins justifié, si ce n’est pour les animations.

Les tendances

Avec des moteurs Javascript performants et une compatibilité étendue, il est clair que la face du web va encore changer.

Les serveurs web vont pouvoir se libérer d’une partie de leurs tâches en profitant des capacités des navigateurs web.

Les graphistes et autres concepteurs d’interface vont enfin pouvoir montrer au monde le vrai visage de leurs créations grâce au SVG qui leur permet d’afficher des contenus de qualité, sans pixels grossiers, tout en permettant une légèreté optimale.

La 3D sur le web va enfin pouvoir devenir une réalité, grâce au support du WebGL. Une technologie également supportée par les principaux moteurs de jeu vidéo, dont le fameux Unity.

MEAN : le futur de LAMP ?

Le développement web a régulièrement évolué depuis quelques années. Les standards évoluent et une nouvelle révolution est en marche.

Les années 95-2000 : LAMP

LAMP réunit plusieurs technologies nées dans les années 95 :

  • Linux qui fait référence au système d’exploitation GNU/Linux
  • Apache : le serveur web
  • MySQL : la base de données relationnelle
  • PHP : le langage de programmation.

Ces 4 outils étaient à l’époque une petite révolution dans le monde du web.

Grâce à des outils gratuits (et libres), tout le monde pouvait créer une site web dynamique. C’est à dire un site dont le code HTML était généré par un script et dont les données étaient issu d’une base de données.

A cette époque, les machines virtuelles n’existaient pas encore. Du moins, pas comme on les connait aujourd’hui.

On était déjà contents d’avoir un environnement de programmation relativement rapide et facile à appréhender.

Côté client (ce qui est vu par le navigateur web), on faisait en sorte de structurer le code HTML, utiliser à fond le CSS et éviter au maximum le javascript qui était alors un langage très lent à l’exécution. En plus, il fallait faire attention à la compatibilité avec Internet Explorer, qui prenait certaines libertés.

MEAN : une approche nouvelle

Fin 2008, le web a connu un tournant majeur avec l’arrivée du navigateur web Chrome de Google et en particulier son moteur Javascript V8 qui était déjà relativement performant.

En quelques années, le Javascript est passé d’un langage très lent à l’un des plus rapides au monde. Une véritable révolution qui allait changer les choses.

En parallèle, les différents navigateurs se sont standardisés. Internet Explorer a bien évolué – même s’il est devenu obsolète avec l’arrivée de son successeur Edge.

Tous les navigateurs web ont commencé à avoir des performances très correctes, y compris les navigateurs mobiles.

Le Javascript s’est standardisé (ECMAScript / TypeScript / AtScript / Babel / Dart) et celui qui se distingue est TypeScript. Notamment grâce à son support par Microsoft et son intégration dans Angular 2 (et autres).

Tout ceci est représenté par l’ensemble MEAN (MongoDB Express Angular Node).

Node

Node est une plateforme logicielle utilisant le moteur Javascript V8 de Google. En gros, grâce à node, on peut exécuter du Javascript. Et, cerise sur le gâteau, Node intègre les capacités d’un serveur web rudimentaire.

L’avantage est qu’un serveur web très performant et utilisant peut de ressources peut être monté grâce à quelques lignes de code.

Un atout idéal à l’ère de la scalabilité, des technologies IoT et autres solutions utilisant des ressources minimales.

Angular

Angular : une première révolution apportée par le Javascript.

Dans sa version 1, Angular propose une architecture MVC (modèle vue contrôleur) côté client. En clair, le serveur web ne charge qu’une fois du HTML. Puis c’est le Javascript qui modifie la page pour charger à la volée le contenu. La charge côté serveur est donc amoindrie ce qui améliore les performances globales en laissant le navigateur faire le job.

En gros, Angular 1 a apporté les premières applications web clientes qui se détachent du serveur.

Dans sa version 2 (en version développement), qui est une réécriture complète en se basant sur l’expérience de Angular 1, on va encore plus loin.

Déjà, la standardisation est à l’ordre du jour avec l’utilisation de TypeScript. TypeScript permet d’utiliser un javascript « avancé » qui est compilé pour être compatible avec la majorité des navigateurs.

Egalement, l’approche MVC devient une approche MV, orientée composants. (à l’instar des Web Components)

Plus besoin de JQLite (JQuery allégé) : les navigateurs modernes intègrent la majorité des concepts apportés par cette version allégée de JQuery.

Pour la version 2, il va falloir attendre un peu car elle est encore en version Alpha et risque de passer en Beta uniquement début 2016. Mais c’est à surveiller quand même. En attendant, Angular 1 fait bien le job.

Ce qu’il faut retenir de Angular, c’est que le navigateur devient une puissance de calcul au coeur de la plateforme web tout en ayant des capacités de travail hors ligne et un détachement de l’aspect serveur, qui devient adapté à de multiples usages (services web).

MongoDB et le NoSQL

Le NoSQL (Not only SQL) est une approche récente qui veut que les bases de données relationnelles ne soient pas forcément indispensables pour le web et le Big Data. D’autant que l’idée est généralement de traiter de grandes quantités de données.

Le SQL était assez lourd à appréhender. Le NoSQL est certes moins structuré, mais bien plus performant sur la recherche dans de gros volumes de données et surtout plus souple.

C’est idéal pour des recherches utilisant la géolocalisation par exemple. Et bien d’autres usages que l’on retrouve dans les services web justement.

MongoDB a une force : V8, le fameux moteur javascript de Google, qui lui permet d’être performant tout en utilisant un langage connu de tous. Non seulement les données extraites sont directement exploitables en Javascript sans transformation pour dire. MongoDB stocke les données en BSON (Binary JSON). Ces données sont facilement transformable en JSON (JavaScript Object Notation) par nature. Le JSON est efficacement compressé grâce à l’algorithme GZip utilisé par les serveurs web. Et, bien entendu, les données JSON peuvent être directement exploitées par le Javascript côté client, à savoir par le navigateur web.

De plus, afin d’obtenir de meilleures performances, certaines fonctions Javascript peuvent être pré-compilées directement dans MongoDB.

Express

Node est puissant mais limité en termes de fonctionnalités.

Express est un framework qui apporte un ensemble d’outils permettant de concevoir une solution web structurée exploitant pleinement les performances et la souplesse de Node.

Seul, le framework Express reste relativement simpliste, ce qui peut être problématique lorsque l’on recherche une solution professionnelle efficace.

Pour cela, le framework LoopBack, construit au dessus du framework Express, permet d’apporter des services complémentaires. Il intègre aisément les API REST, la sécurité et plein d’autres fonctionnalités. Avec un support professionnel payant de qualité.

D’ailleurs, la société à l’origine de LoopBack a récemment été rachetée par IBM, ce qui est une bonne garantie pour l’avenir.

Faut-il abandonner tout le reste ?

si vous utilisez un bon framework (Ruby on Rails, Django, Symfony, Play) et que vous êtes content, ne changez pas tout. N’y perdez pas en productivité.

Pour ma part, j’utilise ces technologies sur des projets de taille modeste ou pour des usages ciblés. Je reste globalement fidèle à Ruby on Rails (RoR) qui reste à ce jour plus productif et plus fiable sur les gros projets. Mais la solution MEAN atténue chaque jour cette limite.

Ils m’arrivent également d’en faire un usage ponctuel, là où RoR a ses limites. Par exemple sur tout ce qui est temps réel via les WebSockets. Ou bien pour les sites statiques, où les enjeux sont moindres et où on n’a pas besoin de sortir l’artillerie lourde.

Ceci étant, pour un débutant, le gros avantage est qu’il peut tout faire avec un seul langage de programmation. Un atout non négligeable.

Les technologies autour de Node sont de plus en plus populaires et son adoption récente par la plateforme de blog WordPress au détriment du PHP en est un indicateur significatif.