Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'historique de JavaScript : Brendan Eich l'a écrit en seulement 10 jours
Et c'est ainsi qu'il a changé le monde pour toujours

Le , par Bill Fassinou

151PARTAGES

18  0 
JavaScript apparaît comme l’un des langages les plus utilisés aujourd’hui sur le Web. L’histoire la plus courte qu’on raconte sur ce langage est qu’il a été créé en dix jours à peine par Brendan Eich pour le compte de Netscape en 1995. Le langage a porté successivement les noms Mocha puis LiveScript et enfin JavaScript, respectivement en mai, septembre et décembre de la même année. À sa création, il avait une syntaxe un peu proche de celle du Java, des fonctions de première classe comme on en trouve dans le langage Scheme, des types dynamiques comme Lisp et des prototypes comme ceux présents dans le langage Self.

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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de rawsrc
Modérateur https://www.developpez.com
Le 27/06/2019 à 9:51
Bon, on est pas encore vendredi mais je pense que s'il avait pris un ou deux jours de plus, ça n'aurait pas été plus mal
7  0 
Avatar de danielhagnoul
Rédacteur https://www.developpez.com
Le 27/06/2019 à 11:35


Le contenu de l'article est intéressant.

Pour les débutants qui pourraient être légitimement effarés à la lecture des origines du JS et qui ne liront pas l'article jusqu'au bout, je les rassure en leur disant qu'entre les possibilités offertes par le JS d'aujourd'hui (basé sur ES2019) et le JS des origines il y a un fossé de la taille du Grand Canyon.
4  0 
Avatar de TheLastShot
Membre extrêmement actif https://www.developpez.com
Le 27/06/2019 à 14:03
Il aurait pu prendre un peu plus de temps ça aurait pas fait de mal...
4  2 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 27/06/2019 à 12:55
Citation Envoyé par danielhagnoul Voir le message


Le contenu de l'article est intéressant.

Pour les débutants qui pourraient être légitimement effarés à la lecture des origines du JS et qui ne liront pas l'article jusqu'au bout, je les rassure en leur disant qu'entre les possibilités offertes par le JS d'aujourd'hui (basé sur ES2019) et le JS des origines il y a un fossé de la taille du Grand Canyon.
On pourrait faire la même chose avec le PHP, il me semble.
1  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 28/06/2019 à 17:08
On oublie ici un événement qui a tout changé dans la vie de JavaScript, à savoir la chasse aux sorcières des greffons navigateurs au carrefour des années 2000 et 2010. Sans Silverlight, ni Java, ni Flash, ni... que restait-il aux développeurs pour faire du Web côté client ? JavaScript et rien que JavaScript.

Pour le reste WASM c'est bien, mais qui manipule directement du WASM ? Il faudra toujours des bindings pour le manipuler dans la page Web. Donc du JS, qui reste ainsi plus increvable que jamais. WASM c'est bien si le code navigateur côté client n'interagit pas avec le reste de la page Web. Pour le reste il faudra encore du JS.

JS ne disparaîtra que le jour où il ne sera plus le seul langage de script interprété par les navigateurs dans la majorité des navigateurs.
1  0 
Avatar de Neckara
Expert éminent sénior https://www.developpez.com
Le 28/06/2019 à 22:10
Citation Envoyé par Sodium Voir le message
Bon, je suis désolée mais je suis contractuellement obligée de poster ce troll : 10 jours et il n'est arrivé qu'à ça ???
Bah en même temps, 10 jours ça ne fait qu'un week-end.
1  0 
Avatar de CoderInTheDark
Membre chevronné https://www.developpez.com
Le 29/06/2019 à 7:51
Il aurait du l'appeler LiveScript, ça crée trop de confusion

JS c'est permissif tu peux écrire une connerie et ça passe, comme PHP, mais j'aime bien PHP quand même, surtout depuis la version 7, qui a amélioré le modèle objet.
Au moins dans Java & cie tu te prends une erreur dans la tête, quand tu ecris un truc débile, ça te rapelles de faire attention à ce que tu écris
1  0 
Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 27/06/2019 à 11:19
Citation Envoyé par Bill Fassinou Voir le message
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.
Pour donner plus de détails, ce sont les supérieurs de Brendan Eich qui ont finalement imposé à ce dernier que le nouveau langage à implémenter dans le navigateur ait une syntaxe proche du Java.

Voici ce qu'à écrit Brendan Eich à ce sujet :
As I’ve often said, and as others at Netscape can confirm, I was recruited to Netscape with the promise of “doing Scheme” in the browser.
[...]
Whether that language should be Scheme was an open question, but Scheme was the bait I went for in joining Netscape.
[...]
Whether any existing language could be used, instead of inventing a new one, was also not something I decided. The diktat from upper engineering management was that the language must “look like Java”. That ruled out Perl, Python, and Tcl, along with Scheme.
Source : https://brendaneich.com/2008/04/popularity/

Ah, si seulement c'était Scheme qui avait été choisi !

Si l'utilisation de Scheme s'était popularisée dans l'industrie, on aurait eu un vrai saut paradigmatique. La métaprogrammation aurait été un paradigme plus connu que maintenant.

On aurait quand même eu un écosystème qui serait parti dans tous les sens, car Scheme est touché par la malédiction du Lisp. Mais, si JavaScript a pu survivre et se développer à cause de son statut privilégié par les navigateurs, malgré le désordre qui l'entoure, alors Scheme et son écosystème auraient survécu aussi.

En tout cas, les performances auraient été bien meilleures car, malgré le fait que Scheme possède un ramasse-miettes (comme Java et JavaScript), il facilite la mise en place d'abstractions qui n'ont pas de coût au runtime. Plus précisément, on peut facilement choisir quelles portions du code sont exécutées à la compilation et lesquelles sont exécutées au runtime.
0  0 
Avatar de psychadelic
Expert confirmé https://www.developpez.com
Le 27/06/2019 à 12:33
"JavaScript : un développeur l'a écrit en seulement 10 jours" Avec plus de 10ans de métier
0  0 
Avatar de melka one
Membre éprouvé https://www.developpez.com
Le 27/06/2019 à 12:40
As I’ve often said, and as others at Netscape can confirm, I was recruited to Netscape with the promise of “doing Scheme” in the browser.
[...]
Whether that language should be Scheme was an open question, but Scheme was the bait I went for in joining Netscape.
[...]
Whether any existing language could be used, instead of inventing a new one, was also not something I decided. The diktat from upper engineering management was that the language must “look like Java”. That ruled out Perl, Python, and Tcl, along with Scheme.
et en français ça donne quoi
0  0