Lorsque Tim Berners-Lee a inventé le premier navigateur Web en 1990, les pages Web qu’il affichait manquaient encore de dynamisme et d’interactions plus conviviales. En 1993, Marc Andreessen et Eric Bina ont aidé le Centre national des applications de calcul intensif de l'Université de l'Illinois à lancer Mosaic. Il s’agit d’un nouveau navigateur Web graphique convivial. Internet était en train de devenir un univers multimédia pour les utilisateurs grand public.
Andreessen a, par la suite, fondé la société privée dénommée Mosaic Communications Corporation et publié un navigateur commercial appelé Mosaic Navigator en 1994 (le nom a été changé pour Netscape après le règlement d'un litige). Netscape Navigator a été un succès et l'introduction en bourse de Netscape a établi de nouveaux records. La part de marché du jeune navigateur a augmenté très rapidement pour atteindre les 80 %, mais un besoin se faisait toujours ressentir. Les pages Web manquent d'interactions et de dynamisme. Les développeurs ont essayé de combler cette lacune avec l’aide du langage Java de Sun Microsystem (aujourd’hui racheté par Oracle), mais cela ne leur convenait toujours pas.
Microsoft travaillait également pour innover dans le monde des navigateurs Web. Pour Netscape, il fallait trouver une solution innovante pour maintenir l’avance sur le concurrent. Autrement dit, Andreessen et les siens se sentaient dans le besoin de proposer de nouvelles fonctionnalités pour conserver leur position dominante. Les navigateurs Web devaient aller au-delà de l'affichage de documents statiques et exécuter un logiciel véritablement interactif. En 1995, ces derniers ont décidé de recruter Brendan Eich pour implémenter Scheme pour le navigateur, tout en lui mettant la pression pour produire un prototype assez rapidement pour contrer la menace de Microsoft.
Sous pression, Brendan Eich a présenté une dizaine de jours après Mocha, un langage qui possède les superficialités et les structures de contrôle du Java et des fonctionnalités à la fois minimalistes et flexibles. Le nouveau langage possède également un aspect fonctionnel et orienté objet qu’il a hérité des langages de programmation Scheme et Self. Eich avait, semble-t-il, tenu son pari. Il a créé un outil qui répond aux exigences (“ressembler à Java”, “être petit”, “être accessible”), mais qui offre un potentiel plus grand que celui que tout le monde avait prévu. Il était connu en interne sous le nom de Mocha, renommé LiveScript et enfin, JavaScript.
Le JavaScript (JS) est un langage de programmation de scripts principalement employé dans les pages Web interactives pour le rendu côté client, mais depuis quelques années, son utilisation côté serveur s’est également répandue (avec Node.js par exemple). C'est un langage orienté objet à prototype, c'est-à-dire que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes. Les objets sont chacun équipés de constructeurs permettant de créer leurs propriétés notamment une propriété de prototypage.
En 1996, Microsoft et Bill Gates auraient procédé à l’ingénierie inverse du JavaScript pour l’introduire ensuite dans le navigateur Internet Explorer 3, en lui donnant le nom de JScript. La concurrence est repartie de plus belle et cette fois-ci, Microsoft passe devant Netscape. Néanmoins, Netscape a soumis le langage à la normalisation ECMA International (ECMAScript) la même année. ECMAScript est un standard de langage de programmation. Il définit la syntaxe, les types de variables, les structures de contrôles, et bien d’autres encore. JavaScript est un des langages qui respecte le standard ECMAScript. Il y a d’autres langages qui respectent ce standard, comme ActionScript ou JScript (la réécriture de JavaScript effectuée par Microsoft).
En juin 1997, la première version normalisée de JavaScript (ES1) est approuvée. Il possède de nombreuses fonctionnalités utilisées actuellement dans JS, telles que des fonctions, des objets et un héritage prototypique de première classe. ES2 et ES3 sont apparus respectivement en 1998 et en 1999. ES3 a été publié avec la gestion des exceptions. Jusque-là, JavaScript a bien évolué, mais à partir des années 2000, il va connaître quelques revers, notamment avec l’échec d’ECMAScript 4.
Un grand nombre de fonctionnalités sont proposées pour ES4 en 2000, telles que les classes, les interfaces, les types facultatifs et d'autres mécanismes destinés aux besoins des grandes entreprises. Cependant, la norme n'a attiré grand monde dans la communauté. Le comité TC-39 décide donc de développer parallèlement ECMAScript 3.1 (version simple) et ECMAScript 4 (version entreprise). En fin de compte, cette approche échoue et ES4 ne voit jamais le jour. Pendant les cinq années qui ont suivi, le JavaScript ne faisait plus réellement parler de lui et souffrait de nombreux problèmes.
L’incompatibilité entre les différents navigateurs du marché était l’un des problèmes majeurs du JavaScript à cette époque. Microsoft a profité de ce moment de faiblesse. Son navigateur Internet Explorer domine désormais le marché avec environ 90 % de part de marché. La société contribue à ECMAScript, mais joue principalement selon ses propres règles. Elle profite également pour intégrer de nouvelles fonctionnalités pour JS dans son navigateur. En particulier l’AJAX qui ouvre la voie aux applications à page unique du futur. Cela dit, JavaScript va recevoir un coup de pouce lorsqu’en 2006, John Resig a publié la bibliothèque JQuery.
Par sa création, il aide principalement à résoudre les problèmes extrêmement frustrants liés à la compatibilité entre les navigateurs qui existaient à l'époque. Il fournit également une API succincte et bien documentée qui définit un nouveau standard pour l'expérience du développeur. Aujourd'hui, elle reste la bibliothèque JS la plus largement utilisée en termes de chargement de page. Il est notamment utilisé par Bootstrap de Twitter, mais les développeurs de Bootstrap ont déclaré qu'ils n'utiliseront plus JQuery dans la version 5.0 du framework CSS qui est en cours de développement. Les choses deviennent encore plus intéressantes l’année suivante avec l’annonce de Google sur la sortie d’un nouveau navigateur.
En septembre 2008, Google publie le navigateur Chrome et ouvre en open source son moteur d'exécution appelé moteur V8. Cela ouvre la porte à de nouvelles possibilités sur le Web. Dorénavant, le JavaScript verra son écosystème se développer plus que jamais. Nous sommes en 2009 et Ryan Dahl présente Node.JS. Il est basé sur le moteur V8 de Google. Node.JS est unique pour sa capacité à exécuter du code non bloquant avec une boucle d'événement sur le serveur. Cela donne naissance au paradigme JavaScript Everywhere. Le langage va ainsi retrouver petit à petit l’engouement que les développeurs lui vouaient à ses débuts. L’année 2009 était presque à sa fin lorsqu’une nouvelle version de JavaScript a été publiée, l’ES5.
Dès le début de la nouvelle décennie (les années 2010), les nouveaux frameworks et bibliothèques JavaScript se sont multipliés. Google s’entoure d’une communauté de développeur et publie AngularJS et Jeremy Ashkenas annonce également Backbone.js. Ce dernier est un framework JavaScript libre et open source basé sur la bibliothèque Underscore.js. Ces deux outils sont devenus extrêmement populaires pour différentes raisons. AngularJS est déclaratif et exprimé, alors que Backbone est impérative et minimale. Cela marque le début des applications modernes à page unique (SPA) et d’autres applications.
Facebook aussi publie en 2013 son framework pour créer des interfaces utilisateur, ReactJS. Par la suite, des dizaines d'autres frameworks frontend, backend et fullstack ont fait leur apparition approximativement à cette époque. On peut citer : Angular, Ember, Meteor, Sails, Vue.JS, Svelte, Mithril, Knockout, Polymer, etc. L’écosystème JavaScript est devenu plus grand que jamais. Plusieurs nouvelles fonctionnalités arrivent avec la sortie d’ECMAScript 6 en 2015, modifiant ainsi la façon dont les développeurs JS écrivent leur code.
La nouvelle norme a réécrit quelques fonctionnalités présentées avec ES4, mais qui n’avaient jamais vu le jour. Il donne naissance aux transpileurs tels que Babel et Typescript, permettant ainsi aux développeurs d'écrire du code moderne, tout en prenant en charge les navigateurs traditionnels exécutant encore des versions antérieures de JS. Le développement du langage s’est également accéléré et les années qui ont suivi, ES7, ES8 et ES9 sont respectivement publiés en 2016, en 2017 et en 2018. Cette année, il est prévu que ES10 sera publié avec de nouvelles fonctionnalités.
L’avenir du langage semble prometteur, mais d’autres normes et d’autres technologies se profilent à l’horizon. Il existe, entre autres, le WebAssembly (WASM). Il s’agit d’un standard du World Wide Web pour le développement d’applications. Il est conçu pour compléter JavaScript avec des performances supérieures. Le standard consiste en un bytecode, sa représentation textuelle et un environnement d'exécution dans une sandbox compatible avec JavaScript.
Source : Vidéo
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Prise en main d’ES6.Aperçu des principales fonctionnalités
Quelles sont les nouvelles fonctionnalités qui pourraient débarquer dans JavaScript en 2019 ? Un tour d'horizon des candidats pour ES2019
La version 12 de Node.js est disponible et serait 30 % plus rapide au démarrage que les versions précédentes
Apprendre à programmer en Node.js avec MongoDB : découvrir le paradigme de MongoDB axé sur les documents dans Node.js, un tutoriel proposé par IBM