L’évolution de l’informatique et des langages Web

Télécharger le PDF du cours


Livret PDF du cours
L’objectif de cette leçon est de souligner la rapide évolution du domaine informatique et des langages web. Cela permet notamment de comprendre pourquoi en informatique il ne faut jamais rien prendre pour acquis et continuer à se documenter et à suivre l’évolution du domaine.

Nous allons également répondre aux questions suivantes : qui crée les langages web et décide de leur évolution ? Comment cette évolution est-elle intégrée dans le web ?

 

L’informatique, un domaine en constante et rapide évolution

L’informatique est un domaine qui évolue vite et dont les normes ne sont pas encore tout à fait fixées, à la différence de matières comme les mathématiques par exemple. En effet, il y a 20 ans de cela, le web était bien différent d’aujourd’hui et il sera certainement à nouveau très différent dans quelques années.

En effet, l’évolution des technologies et des composants physiques toujours plus performants soutiennent cette perpétuelle évolution.

Pour rappel, jusqu’au début des années 2000, les données étaient stockées sur des disquettes dont la capacité de stockage n’excédait pas les 1440 Ko c’est-à-dire le poids d’une image de qualité moyenne aujourd’hui et nous avions des modems de connexion avec une capacité de transmission des données de 64 Ko/s.

Avec le succès et la démocratisation des ordinateurs et d’internet un peu partout, cependant, les technologies n’ont cessé d’évoluer de plus en plus vite et les composants physiques sont devenus de plus en plus performants entre les années 2000 et 2010.

Or, avec plus de puissance dans nos ordinateurs et des connexions beaucoup plus rapides, de nouvelles opportunités se sont ouvertes dans le monde de l’informatique et du web en particulier.

Les langages informatiques, qui sont au centre du web, ont donc bien évidemment évolué en même temps que le champ des possibilités s’est ouvert, en s’enrichissant et en multipliant leurs fonctionnalités.

L’augmentation de la vitesse de connexion a entre autres permis de créer des sites web beaucoup plus complexes et d’intégrer de plus en plus de médias, comme de l’audio et de la vidéo ou des images de plus en plus lourdes, ce qui était inconcevable avant car ces médias auraient mis des jours à charger.

L’augmentation des performances des différents composants physiques a elle permis de réaliser des calculs toujours plus complexes côté serveur et de multiplier également les capacités de stockage de ceux-ci.

 

Langages de programmation : création et évolution

Pour bien comprendre comment sont créés et comment évoluent les différents langages de programmation, il faut avant tout savoir qu’il existe deux types de langages :

  • Les langages dits « Open Source » : ce sont des langages qu’on va pouvoir utiliser sans licence et n’importe qui va (généralement) pouvoir participer à leur développement ;
  • Les langages créés et gérés par des entreprises privées comme le langage Java qui appartenait à l’origine à la société Sun qui a ensuite été rachetée par la société Oracle.

Concernant les langages Open Source, comme je viens de le dire, n’importe qui peut en théorie contribuer à leur évolution en testant ou en fournissant des notes sur les sites officiels des groupes qui gèrent les différents langages.

En effet, bien qu’Open Source, des groupes de travail différents se sont constitués autour des différents langages. Deux groupes vont particulièrement nous intéresser dans le cadre du HTML et du CSS : le W3C ou « World Wide Web Consortium » et le WHATWG ou « Web Hypertext Application Technology Working Group ».

Pour vous donner un peu de contexte sans entrer dans la polémique, le W3C était à l’origine le groupe de référence chargé de définir et de veiller au développement des langages HTML et CSS.

Cependant, en 1998, le W3C décide d’abandonner l’évolution du HTML pour se concentrer sur un autre langage qui devait lui succéder : le XHTML.

Certaines personnes, mécontentes de l’inertie du W3C et du temps que prenait le développement de nouveaux standards et qui voyaient du potentiel dans le HTML ont alors décidé de continuer son évolution en formant un groupe nommé le WHATWG.

Face à l’échec du XHTML, en 2006, le W3C revient sur ses pas et exprime son intérêt pour travailler avec le WHATWG sur le HTML. Ce travail en commun a fonctionné jusqu’en 2011, date à laquelle l’écart entre les objectifs et les méthodes des deux groupes est devenu trop grand.

En effet, le WHATWG milite pour un « Living Standard » pour le HTML, c’est-à-dire des améliorations constantes et immédiatement intégrées tandis que le W3C préfère mettre à jour le HTML dès que beaucoup d’avancées ont été faites et après s’être assuré que chaque nouveau composant fonctionne parfaitement.

Ce qu’il faut bien comprendre ici est que le W3C est un groupe composé de plus de 300 grandes entreprises qui font du lobbysme et donc que ce groupe subit de grandes pressions. A l’inverse, le WHATWG est le résultat de l’effort commun de trois « entreprises du web » : Opera, Mozilla et Apple, ce qui le rend beaucoup plus flexible.

Aujourd’hui, on se retrouve donc dans une situation conflictuelle où le WHATWG avance beaucoup plus vite que le W3C et accuse le W3C de voler les différents standards créés par le WHATWG pour les porter à leur crédit.

Dans ce cours, je me baserai sur les recommandations du W3C puisque ce sont celles communément admises et puisqu’elles reprennent (c’est un fait) la majorité du travail du WHATWG, avec un peu de retard certes mais ce « retard » laisse le temps aux navigateurs d’intégrer les changements ce qui est finalement plutôt une bonne chose.

Le W3C définit trois états d’avancement pour ses différents documents qui vont chacun traiter d’un aspect d’un langage :

  • Le statut de recommandation, ce qui veut dire que le document sert de standard et que le support pour les éléments ou pratiques qu’il définit doit être intégré par les navigateurs ;
  • Le statut de candidat à la recommandation, ce qui signifie que les points abordés dans le document sont à priori fixés et attendent une dernière validation ;
  • Le statut « travail en cours », ce qui signifie que le document possède encore des zones d’ombre à mettre au clair, etc.

Notez qu’il est bien évidemment également très important pour un développeur de se tenir au courant des nouveautés pour d’une part exploiter toutes les possibilités des langages et d’autre part savoir lorsque certains codes ou pratiques sont dépréciés, c’est-à-dire lorsque le support d’un certain élément de langage est abandonné pour pouvoir mettre à jour les parties du code d’un site les utilisant et éviter les bugs sur le site en question.

Concernant le langage CSS, c’est beaucoup plus simple puisque dans ce cas le W3C est le seul groupe qui s’occupe de son évolution et cela n’est contesté par personne.

Pour résumer, voici les groupes de travail faisant autorité sur les langages Open Source les plus populaires :

  • HTML : W3C / WHATWG ;
  • CSS : W3C ;
  • JavaScript : ECMA ;
  • PHP : PHP Group ;
  • Python : Python Software Foundation.

 

Les versions actuelles du HTML et CSS

Jusqu’à récemment, les évolutions des langages HTML et CSS étaient « brutales » pour l’utilisateur final puisque le travail d’amélioration était effectué sur l’ensemble du langage avant d’être donné comme recommandation au public.

Ainsi, on est passé du HTML version 1 en 1991 au HTML version 2 en 1994 au HTML3 et etc. jusqu’au HTML5 en novembre 2014.

Concernant le CSS, nous sommes passés de la version 1 en 1996 au CSS2 en 1998 puis finalement au CSS2.1 en 2011.

La durée entre le CSS2 et le CSS2.1 s’explique par les nombreux allers-retours qui ont été faits entre les statuts de « candidat à la recommandation » et de « travail en cours » suite aux rejets consécutifs du W3C de valider la nouvelle version du langage comme recommandation.

Cela a permis de montrer les limites de ce système de travail sur l’ensemble du langage : il était même devenu quasiment impossible de procéder comme cela suite à la multiplication des fonctionnalités de chaque langage et le travail était mal organisé.

Sous la pression du WHATWG et pour pouvoir les concurrencer, le W3C a donc commencé à organiser le travail sur chaque langage par « modules ». Chaque module va concerner un aspect précis d’un langage et son développement va pouvoir avancer plus ou moins indépendamment des autres modules.

Par exemple, pour le CSS, nous avons un module de travail sur la couleur, un autre sur la police d’écriture, un autre sur la mise en page, etc.

Cela nous a ainsi permit de commencer à travailler sur l’évolution de chaque fonctionnalité d’un langage de manière indépendante.

Dès qu’un module est suffisamment avancé, on l’envoie comme candidat au statut de recommandation et il peut alors être validé comme nouveau standard (ou pas).

Dans ce cours, j’utiliserai toujours les derniers modules reconnus comme « recommandation » par le W3C. Certains possèdent l’étiquette « HTML5 », d’autres « HTML Living Standard » ou « CSS3 » ou « CSS4 ». Parfois, j’aborderai également certaines fonctionnalités qui ne sont que candidates à la recommandation mais qui vont très probablement obtenir le statut de recommandation dans un futur proche. Je vous l’indiquerai dans ce cas.

Laisser un commentaire