Definition

JavaScript

JavaScript est un langage de programmation qui a débuté simplement comme un mécanisme permettant d'ajouter de la logique et de l'interactivité à un navigateur Netscape par ailleurs statique. Au cours des années qui ont suivi son introduction, il a non seulement supplanté une série d'autres langages et technologies concurrents pour devenir la norme en matière de programmation basée sur le navigateur, mais il s'est également étendu au-delà de l'espace client pour devenir un langage dominant du côté du serveur.

Ce que JavaScript peut faire

Le protocole de transport d'hypertexte, ou HTTP, a été conçu pour faire exactement ce que son nom indique, c'est-à-dire transporter du texte HTML à travers un réseau pour qu'il soit visualisé. Mais le problème du HTML est qu'il est complètement statique et qu'il ne permet pas de mettre en œuvre une logique.

Les fonctions de base que nous tenons actuellement pour acquises, telles que la validation des entrées, la correction automatique, les barres de progression ou la modification d'un graphique lors du passage de la souris, seraient toutes impossibles à exécuter par un navigateur sans une certaine capacité de script. C'est pourquoi, lorsque le web a commencé à prendre de l'importance, tous les fournisseurs de cet espace ont proposé un mécanisme permettant de rendre les pages web HTML plus interactives.

Alternatives à JavaScript

Microsoft a fait la promotion d'un concurrent de JavaScript appelé VBScript, ainsi que de technologies de plug-in, telles que ActiveX Data Object (ADO). Sun Microsystems a fait la promotion des applets Java qui étaient multiplateformes et pouvaient être utilisés dans n'importe quel navigateur.

De nombreuses autres technologies sont apparues et ont disparu au fur et à mesure de la maturation de l'internet. Finalement, c'est JavaScript qui a gagné la bataille de la popularité, et c'est la seule technologie de script côté client prise en charge par les navigateurs Chrome, Firefox, Safari et Internet Explorer.

JavaScript est un langage interprété, par opposition aux langages compilés, tels que C++ et Java. Cela signifie que le code écrit en JavaScript ne passe pas par une étape intermédiaire de compilation au cours de laquelle le code source est transformé en langage machine facile à traiter par une unité centrale.

Au lieu de cela, JavaScript est interprété à la volée par l'ordinateur qui le traite. Le code JavaScript n'étant pas présenté sous une forme adaptée au processeur, comme le bytecode Java ou un exécutable binaire, l'exécution du programme peut être plus lente que celle d'un programme comparable écrit en Scala ou en F#. Toutefois, les moteurs JavaScript modernes sont hautement optimisés et les inefficacités sont rarement perceptibles lors de l'utilisation de matériel moderne.

Petite note sur JavaScript versus Java

Compte tenu des quatre premières lettres du nom, il existe une idée fausse selon laquelle JavaScript et Java sont similaires. S'il est vrai que Java et JavaScript partagent certains éléments syntaxiques de base, tels que l'utilisation de points-virgules pour terminer une déclaration, l'utilisation d'accolades pour délimiter un bloc de code et des constructions similaires pour créer des structures en boucle et itératives, les similitudes s'arrêtent là.

Les deux langages ne proviennent pas du même fournisseur, les deux langages ne sont pas maintenus par le même consortium et les caractéristiques fondamentales du langage, telles que l'orientation objet et le typage fort, sont des exemples majeurs de différences entre les deux langages. Java et JavaScript sont deux langages de programmation très séparés et distincts qui ne doivent pas être confondus l'un avec l'autre.

Les bases de la programmation JavaScript

HTML fournit une balise spéciale

Lequel sera-t-il ?
paper

Bibliothèques JavaScript modernes

Le moteur JavaScript de base fourni avec un navigateur moderne n'offre qu'un ensemble rudimentaire d'API pour le développement de logiciels. Pour effectuer des tâches complexes, telles que la mise en œuvre d'un cycle demande-réponse basé sur Ajax ou même l'analyse avancée du DOM ou la manipulation de chaînes, il est nécessaire d'écrire beaucoup de code.

Le fait qu'il existe des différences entre les principaux fournisseurs en ce qui concerne les versions de JavaScript qu'ils implémentent, ainsi que le degré d'absence de bogues dans ces implémentations, complique encore la tâche consistant à écrire du code pour réaliser des tâches de programmation courantes mais complexes.

Pour tenir compte des différences entre les navigateurs tout en fournissant un code préétabli pour l'exécution de tâches très courantes, les bibliothèques JavaScript sont devenues un pilier du développement d'interfaces utilisateur basées sur les navigateurs. La bibliothèque JavaScript la plus utilisée aujourd'hui est jQuery, tandis que des concurrents tels que Prototype et Dojo restent assez populaires.

Les lacunes de JavaScript

Deux critiques courantes à l'encontre de JavaScript sont le fait qu'il est faiblement typé et qu'il ne s'agit pas d'un langage orienté objet. Les développeurs de logiciels ont tendance à préférer les langages orientés objet fortement typés, car ces caractéristiques tendent à accélérer le développement des logiciels tout en contribuant à maintenir un niveau élevé de qualité.

Cependant, JavaScript étant devenu le langage de facto des navigateurs internet, la capacité à écrire un code de haute qualité et sans bogues est devenue une priorité pour de nombreux membres de la communauté des développeurs de logiciels.

En conséquence, de nouveaux langages, tels que TypeScript, sont apparus, qui sont à la fois fortement typés et orientés objet. TypeScript ressemble beaucoup à JavaScript, bien qu'il applique un typage fort et fournisse des fonctionnalités permettant de développer de manière orientée objet. TypeScript est également un langage compilé, contrairement à JavaScript, qui est interprété.

Cependant, contrairement à Java ou C++ où le code source est compilé en bytecode ou en binaire, TypeScript se compile en JavaScript pur qui peut être optimisé en fonction du navigateur cible.

A propos des cadres JavaScript

L'une des grandes tendances de l'industrie en matière de conception d'interface utilisateur est de transférer autant de logique, de traitement et de gestion d'état que possible sur le client et d'interagir avec le serveur par le biais d'API RESTful légères et de services web. Cela a conduit au développement de cadres JavaScript complets qui contrôlent tous les aspects de la présentation côté client, poussant souvent l'expérience utilisateur vers une interface à page unique (SPI).

Les frameworks populaires dans cet espace sont Angular, React et Ember, ces frameworks s'appuyant souvent sur des langages JavaScript compilés, tels que TypeScript et des bibliothèques JavaScript comme jQuery pour la logique et Handlebars.js ou Mustache.js pour le templating des pages web.

Cette définition a été mise à jour en avril 2024

Pour approfondir sur Langages