TypeScript 4.0 : des améliorations pour les développements à large échelle
Microsoft a annoncé la disponibilité générale de TypeScript 4. Le géant du cloud veut prouver que son sur-ensemble de JavaScript est taillé pour les entreprises.
Microsoft a généralisé la version 4.0 de son langage de programmation open source TypeScript, avec de nouvelles fonctionnalités de productivité, d’évolutivité et de facilité d’utilisation pour les développeurs.
TypeScript est un sur-ensemble syntaxique de JavaScript, ce qui signifie que les programmes JavaScript existants sont également des programmes TypeScript. Ce langage a été conçu pour la construction de systèmes de grande entreprise. Essentiellement, TypeScript s’appuie sur JavaScript en ajoutant une syntaxe pour le typage statique. Avec un langage de programmation statique, les variables n’ont pas besoin d’être définies avant d’être utilisées.
TypeScript gagne en popularité
« Le langage TypeScript est aujourd’hui au cœur de la pile JavaScript de nombreux développeurs », déclare Daniel Rosenwasser, responsable du programme TypeScript chez Microsoft, dans un article de blog. En juillet, TypeScript a fait l’objet de plus de 50 millions de téléchargements mensuels sur NPM (le gestionnaire de paquets pour la plateforme JavaScript Node rachetée par GitHub). TypeScript a également été classé deuxième langage de programmation le plus apprécié (après Rust) dans l’enquête Stack Overflow 2020 auprès des développeurs. Dans la dernière enquête State of JS Survey, 89 % des développeurs qui ont utilisé TypeScript ont déclaré qu’ils travailleraient à nouveau avec ce langage.
Les raisons de sa croissance fulgurante seraient évidentes.
Holger MuellerAnalyste, Constellation Research
« L’ascension rapide de TypeScript a été alimentée par deux choses : premièrement, son interopérabilité avec JavaScript, et deuxièmement, sa sécurité optionnelle », explique Stephen O’Grady, un analyste de RedMonk. « JavaScript est partout, et si les développeurs peuvent l’exploiter, mais le font de manière plus sûre, c’est facile à vendre ».
Microsoft a créé TypeScript pour étendre JavaScript en ajoutant des types au langage et en apportant également une forme de sécurité, puisque ce sur-ensemble doit détecter les erreurs de frappe au moment de la compilation. C’est justement le caractère statique de TypeScript qui lui confère cet avantage. Une erreur de type se produit lorsqu’une opération n’a pas pu être effectuée, généralement lorsqu’une valeur n’est pas du type attendu.
« Microsoft a réussi à faire de TypeScript un des langages de programmation les plus populaires en offrant des capacités à valeur ajoutée par rapport au JavaScript de base », considère Holger Mueller, un analyste de Constellation Research. « La version 4.0 se caractérise davantage par des améliorations du langage plutôt que par l’ajout de nouvelles fonctionnalités substantielles ».
TypeScript 4.0 : des améliorations attendues
TypeScript 4.0 apporte des améliorations de performance des applications en accélérant le processus de chargement des projets. La nouvelle version accélère l’étape de construction du programme dans le compilateur TypeScript.
La construction d’un programme est « le processus qui consiste à commencer avec un ensemble initial de fichiers, à les analyser, à résoudre leurs dépendances, à analyser ces dépendances, à résoudre les dépendances de ces dépendances, et ainsi de suite », précise Daniel Rosenwasser dans son article de blog. Plus le projet est important, plus les délais sont longs pour le développeur avant d’arriver aux opérations de base de l’éditeur, comme la complétion du code, dit-il.
Cependant, TypeScript 4.0 introduit une nouvelle expérience où l’éditeur peut faire fonctionner un serveur partiel qui ne regarde que les fichiers que l’éditeur a ouverts. C’est « suffisant pour effectuer quelques opérations de base de complétion de code, d’information rapide, d’aide à la signature et de go-to-definition la première fois que vous ouvrez votre éditeur », indique Daniel Rosenwasser.
De plus, la dépréciation du support des éditeurs de code permet aux consommateurs de bibliothèques de savoir clairement quelles fonctions doivent être utilisées et lesquelles doivent être évitées.
« Ce qui nous enthousiasme le plus, ce sont les nouvelles fonctionnalités de l’éditeur qui augmentent considérablement la productivité des développeurs », déclare Max Lynch, co-fondateur et PDG de Ionic, une société basée à Madison, Wisconsin, un framework de développement hybride et multi-plate-forme. « Le mode sémantique partiel permettra aux grands projets TypeScript d’être immédiatement modifiables et l’amélioration de l’importation automatique fera gagner beaucoup de temps aux développeurs qui n’auront plus à chercher les noms de paquets et les formats d’importation », ajoute-t-il.
Parmi les autres points forts de TypeScript 4.0, citons les types de tuple variadique, les étiquettes pour les tuples, l’inférence des constructeurs sur les propriétés des classes, les opérateurs d’affectation de court-circuit, les usines JSX personnalisées, et un nouveau site web TypeScript 4.0.
Max LynchPDG, Ionic
« TypeScript 4.0 apporte aux développeurs une tonne d’améliorations en matière d’ergonomie du langage et de typographie », considère Max Lynch. « Les auteurs de la bibliothèque accueilleront favorablement les améliorations apportées aux types de tuple variadique, qui résolvent le problème de la “mort par mille overloads” ».
Un tuple est une liste de choses qui sont ordonnées et immuables. En TypeScript, un tuple permet de définir deux ou trois valeurs de types de données différents. « Un tuple variadique est un type de tuple qui a les mêmes propriétés – longueur définie et type de chaque élément connu – mais dont la forme exacte reste à définir », explique Stefan Baumgartner, MVP de Microsoft à Linz, en Autriche, dans un article de blog.
TypeScript 4 vient couronner deux années d’innovations constantes dans le domaine du langage, notamment les dernières fonctionnalités du récent Node.js 14. La nouvelle version inclut également des fonctionnalités ECMAScript comme les champs privés, l’attente de niveau supérieur dans les modules et de nouvelles syntaxes d’exportation.
ECMAScript est une norme JavaScript qui assure l’interopérabilité des pages web entre différents navigateurs. Le mot-clé « await » fait que le moteur d’exécution JavaScript met en pause le code d’un développeur pour permettre à d’autres lignes de code de s’exécuter entre-temps.
« Étant donné la quantité de code asynchrone dans le monde, c’est une amélioration considérable pour la convivialité et l’une des caractéristiques qui nous enthousiasment le plus », considère Joe Duffy, PDG de Pulumi, un fournisseur de logiciels DevOps basé à Seattle. « Et bien que des fonctions comme les types de tuple variadique et les types cartographiés semblent sortir d’un manuel de théorie des langues, ces fonctions avancées aident à maîtriser la complexité dans le cadre de déploiements à large échelle ».
TypeScript s’attire les faveurs des développeurs des grands groupes
Environ un tiers des développeurs qui utilisent JavaScript disent également employer TypeScript, selon Forrester Research.
« Bien qu’il ne soit pas aussi fréquemment utilisé que Python ou Java, le TypeScript se situe dans une marge d’erreur par rapport à l’adoption de C# », déclare Jeffrey Hammond, analyste chez Forrester. « Il semble qu’il y ait encore de la place pour sa croissance dans les plus grandes entreprises, surtout par rapport à Java et de Python ».
De plus, les données du Stack Overflow indiquent également une utilisation plus élevée que la moyenne de TypeScript par les concepteurs, les développeurs d'infrastructure back-end et les développeurs d'entreprise.
« Je pense que cela est dû à la forte adoption du TypeScript par la communauté Angular », explique Jeffrey Hammond. « Nous constatons également une forte adoption d'Angular dans les ateliers de développement front-end ». Pour rappel, Angular est un framework JavaScript également très populaire.
Au fur et à mesure que TypeScript continue à mûrir, il y a de fortes de chance qu’il attire de nouveaux développeurs.
« La possibilité de déduire ce qu’un développeur essaie de faire – et de le faire simplement – réduit sa charge cognitive et lui permet de se concentrer sur la résolution des problèmes de l’entreprise au lieu de vérifier que tout est correctement raccordé au niveau de la plomberie », estime l’analyste de Forrester.
En fin de compte, la nouvelle version aborde certains des problèmes les plus techniques que les développeurs cherchent à résoudre, en particulier ceux qui augmentent la productivité. Par exemple, « la prise en charge du refactoring pour convertir les patterns de chaînes JavaScript communs en un nouvel opérateur de chaîne optionnel et de coalescence nulle rendra le code beaucoup plus lisible et moins sujet aux erreurs », conclut Max Lynch.