Développeur Front End ES6/React

Je m'appelle Nicolas Wendling, je suis Développeur Front-End depuis plus de 4 ans. Intégrateur Web depuis plus de 10 ans. Spécialiste en CSS, JS, ReactJS et NextJS.

J'ai travaillé sur plus de 50 projets Web durant ces 15 dernières années en accompagnant des marques, des e-commerces et des startups.

Vous avez besoin d'un Développeur Frontend expérimenté pour vous accompagner sur votre projet, n'hésitez pas à me contacter !

Pourquoi ES4 est l’avancé majeure du Javascript ?

J’ai appris à coder avec Flash et son langage ActionScript. Flash c’était logiciel qui permettait de faire des site multimédia. Le langage ActionScript était appuyé sur la norme EcmaScript. Ce qui en fait un cousin de Javascript. J’ai débuté en AS2, le langage venait de sortir et était une vraie avancée pour pour Flash, car cette version 2 du langage permettait d’étendre considérablement les possibilité de ce logiciel. Puis est arrivé AS3 qui supportait 100% de la norme EcmaScript4 (ES4).

ES4 était une norme majeure qui permettait d’implémenter des fonctionnalités telles que les class, les interfaces et les typages stricts. En d’autres termes, c’était un précurseur du TypeScript avec plus de 10 ans d’avance. Même après la sortie d’ES6 en 2015, les développeurs continuent de considérer ES4 comme une norme importante.

Cependant, malgré l’implémentation des class dans ES4 dès 2006, il a fallu attendre l’arrivée d’ES6 pour les voir officiellement adoptées en JavaScript. Bien que l’ajout des class ait fait beaucoup de bruit à l’époque et ait permis à des développeurs de langages backend de se familiariser avec JavaScript, il est important de noter que le mot-clé class n’est que du sucre syntaxique et que l’on pouvait et faisait de la POO avant son arrivée.

Il est intéressant de souligner que JavaScript est un langage très flexible qui permet d’écrire du code dans presque tous les paradigmes, tels que la programmation procédurale, OOP, prototypique, événementielle, et ainsi de suite.

Javascript, Java, Sun Microsystems

Il convient de préciser que JavaScript n’est pas breveté, mais plutôt une marque déposée de Sun Microsystems, qui a été acquise par Oracle Corporation en 2010.

Quant à l’utilisation du mot-clé “class” en JavaScript, il est vrai qu’à l’origine, JavaScript ne disposait pas de ce mot-clé, et utilisait plutôt un système de prototypes pour la programmation orientée objet. Cela s’explique notamment par le fait que JavaScript a été conçu à l’origine comme un langage de script pour les pages web, et non pas comme un langage de programmation complet.

Cependant, avec l’évolution de JavaScript et l’ajout de fonctionnalités plus avancées, le mot-clé “class” a finalement été introduit dans le langage en 2015 avec la version ES6 (ECMAScript 2015), offrant une syntaxe plus familière pour la programmation orientée objet. Cette décision n’a pas été liée à des considérations de concurrence avec Java, mais plutôt à l’évolution naturelle du langage JavaScript lui-même.

Non, Sun Microsystems n’a pas empêché l’utilisation du mot-clé “class” dans Javascript. En réalité, Sun Microsystems n’a jamais possédé de brevet sur la marque “Javascript” ni n’a exercé un quelconque contrôle sur l’évolution du langage.

En ce qui concerne l’utilisation du mot-clé “class” dans Javascript, il a été introduit dans la version ECMAScript 2015 (également connue sous le nom d’ES6) qui a été normalisée par l’organisation ECMA International. L’ajout de “class” à Javascript était une décision de l’ECMA International et n’était pas influencée par Sun Microsystems ou Java.

Il est vrai que Java et Javascript partagent certaines similarités syntaxiques, mais ce n’est pas dû à une influence directe de Sun Microsystems. Au lieu de cela, ces similarités étaient basées sur la popularité de Java à l’époque de la création de Javascript et sur la volonté de Brendan Eich de créer un langage de script facile à apprendre pour les développeurs Java.

Effectivement, Brendan Eich a conçu JavaScript avec la possibilité de faire de la Programmation Orientée Objet (POO). Cependant, il a choisi de ne pas utiliser le mot-clé “class” pour déclarer les classes en raison de préoccupations de compatibilité avec les navigateurs existants qui ne supportaient pas ce mot-clé.

Au lieu de cela, il a utilisé un système de prototype pour définir les objets et les classes. Ce système a été influencé par la langue Self, une autre langue orientée objet. En utilisant des prototypes, JavaScript est capable de fournir un modèle de POO qui est différent de celui de Java et d’autres langues similaires.

Ainsi, même si JavaScript est souvent considéré comme un langage de script simple, il a également des capacités de POO avancées grâce à son système de prototype.

Un bref historique de Javascript

JavaScript est un langage de programmation de scripts utilisé principalement pour créer des pages web interactives. Il a été créé par Brendan Eich pour Netscape en 1995, dans le but de proposer de nouvelles fonctionnalités pour le navigateur Web Netscape.

JavaScript est un langage orienté objet à prototype, ce qui signifie que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes. Il a rapidement connu une popularité importante et est devenu l’un des langages les plus utilisés aujourd’hui sur le Web.

Le langage a été normalisé en juin 1997 sous le nom de ECMAScript. La première version normalisée (ES1) a introduit de nombreuses fonctionnalités utilisées actuellement dans JavaScript. ES2 et ES3 ont suivi en 1998 et 1999, respectivement. Depuis, de nouvelles versions ont été publiées pour ajouter de nouvelles fonctionnalités et améliorer le langage.

Est-ce que Javascript a vraiment était écrit en 10 jours ?

La version officielle de l’histoire de la création de JavaScript est que Brendan Eich a créé le langage en dix jours pour Netscape en 1995.

Cependant, cette version est quelque peu simplifiée. Bien que Eich ait en effet créé la première version du langage en un temps relativement court, il a également travaillé sur des projets connexes à Netscape, tels que la création de la première implémentation de Java dans le navigateur, avant de travailler sur JavaScript.

De plus, l’équipe de Netscape a continué à travailler sur le langage pendant plusieurs mois après la création initiale de Eich, ce qui a permis d’ajouter des fonctionnalités et de le rendre plus stable avant sa sortie publique. En fin de compte, il est donc juste de dire que Brendan Eich a joué un rôle clé dans la création de JavaScript, mais qu’il n’a pas travaillé seul et que la création du langage a pris plus de dix jours.

QU’est-ce que devez apporter ES4 à javascript

ES4, également connu sous le nom de ECMAScript 4, était une version majeure de la spécification ECMAScript qui a été abandonnée avant sa publication finale. Elle était prévue pour apporter des améliorations significatives par rapport à la précédente version majeure, ES3. Voici quelques-unes des fonctionnalités prévues dans ES4 :

Cependant, en raison de désaccords entre les membres du comité ECMAScript sur la direction à prendre pour la spécification, ES4 a finalement été abandonné en faveur d’une version révisée de ES3 appelée ECMAScript 5, qui a introduit certaines des fonctionnalités prévues dans ES4 mais dans une mesure plus limitée. Depuis lors, ECMAScript 6 et les versions ultérieures ont été publiées, apportant de nombreuses autres fonctionnalités majeures au langage.

Les interfaces en ES4

Effectivement, ES4 prévoyait également l’ajout de l’interface en tant que constructeur d’objets. Les interfaces ont été conçues pour permettre aux développeurs de définir des contrats abstraits pour les classes.

Les interfaces décrivent les propriétés et les méthodes que les classes doivent implémenter. Cependant, l’ajout des interfaces a suscité des débats importants, notamment en raison de leur complexité et de leur impact sur les performances, et finalement, elles ont été retirées de la spécification finale d’ECMAScript 5.

Un typage strict

Les typages stricts introduits dans ECMAScript 4 étaient destinés à ajouter une vérification de type statique au langage JavaScript. Cela permettait de détecter les erreurs de type pendant la phase de compilation plutôt que pendant l’exécution, ce qui peut aider à prévenir les bogues et les erreurs.

Le typage strict a été implémenté en ajoutant des annotations de type explicites aux variables et aux paramètres de fonction, permettant aux développeurs de spécifier les types de données attendus. Les types de base incluaient “string”, “number”, “int”, “boolean”, “null”, “undefined” et “void”.

En plus de cela, ES4 a introduit les classes et les interfaces, qui permettaient une syntaxe plus orientée objet pour la programmation en JavaScript. Les classes permettaient de définir des objets avec des méthodes et des propriétés, tandis que les interfaces définissaient des contrats pour les objets qui implémentaient ces interfaces.

Cependant, ECMAScript 4 n’a jamais été finalisé et n’a jamais été mis en œuvre par les principaux navigateurs Web, ce qui a conduit à l’abandon de la spécification en 2008. Les fonctionnalités prévues pour ES4 ont finalement été divisées en plusieurs versions d’ECMAScript, avec des fonctionnalités similaires mais souvent avec une syntaxe différente et une approche plus pragmatique, comme l’introduction du typage optionnel avec TypeScript.

ES4 / ActionScript 3

Flash ActionScript 3 (AS3) a été développé avant l’adoption de la norme ECMAScript 5 (ES5) qui a introduit des fonctionnalités telles que les classes. À l’époque où AS3 a été développé, la norme ECMAScript 4 (ES4) était en cours de développement et elle incluait des classes. C’est pourquoi Flash AS3 a implémenté des classes dès le départ.

Cependant, l’adoption de la norme ES4 a été retardée en raison de diverses raisons, notamment des différends sur les fonctionnalités à inclure dans la norme et des préoccupations quant à sa compatibilité ascendante. En fin de compte, la norme ES4 n’a jamais été adoptée, mais certaines de ses fonctionnalités ont été intégrées dans les versions ultérieures de la norme, notamment ES6.

Ainsi, l’absence de classes dans ES5 est simplement due au fait qu’elles n’ont pas été incluses dans cette norme. Cependant, depuis l’adoption de la norme ES6, les classes sont maintenant une fonctionnalité standard de JavaScript.