Comment un d�veloppeur JavaScript anti-TypeScript est devenu un fan de TypeScript ?
Voici les raisons de Chirag Swadia, un d�veloppeur JavaScript reconverti en d�veloppeur TypeScript
TypeScript est un langage libre et open source d�velopp� et maintenu par Microsoft. C'est un surensemble de JavaScript, c'est-�-dire qu'il contient tous ses �l�ments. Le langage a gagn� en popularit� ces derni�res ann�es et est le langage principal du framework Angular con�u par Google. Selon certains rapports, environ 60 % des d�veloppeurs JavaScript utilisent d�j� TypeScript, et environ 22 % souhaitent l'essayer. Alors, TypeScript est-il un meilleur choix que JavaScript ? Existe-t-il des raisons pour lesquelles un d�veloppeur devrait choisir TypeScript au lieu de JavaScript ?
JavaScript a-t-il une courbe d'apprentissage plus facile que TypeScript ?
Historiquement, JavaScript est le principal langage de script des pages et applications Web. Il est maintenant possible d'utiliser JavaScript � la fois sur le front-end et le back-end avec des frameworks comme Node.js et Deno. De m�me, des outils comme Electron ont rendu JavaScript encore plus populaire, car il permet d�sormais de concevoir des applications pour le bureau. De nombreuses applications populaires pour le bureau utilisent d�j� cette technologie, que ce soit sur macOS, sur Windows ou sur Linux. En fait, Electron est un framework permettant de d�velopper des applications multiplateformes en utilisant des technologies du Web.
TypeScript, �tant un surensemble de JavaScript, a ajout� des �l�ments comme les types aux fonctions/variables et beaucoup d'autres concepts qui manquaient au JavaScript pour l'"am�liorer" et r�pondre aux exigences du compilateur TypeScript. Cependant, Chirag Swadia, alors d�veloppeur JavaScript, a d�clar� qu'il voyait tout ceci comme de l'ing�nierie excessive qui n'apportait aucun avantage significatif. Ce dernier a ajout� qu'il trouvait TypeScript lent et "ennuyeux", car il obtenait toujours des erreurs de compilation difficiles � comprendre. � Je me grattais la t�te pour essayer de comprendre le probl�me �, a-t-il d�clar�.
� Cela a provoqu� une certaine frustration, et j'ai commenc� � d�tester TypeScript. L'autre raison pour laquelle je d�testais TypeScript �tait ses concepts avanc�s, dont les g�n�riques. Ils �taient tr�s difficiles � comprendre et j'ai commenc� � avoir l'impression d'�tre dans le monde Java, o� chaque morceau de code est fortement typ� et �crasant. M�me �crire un petit code en quelques lignes me faisait peur lorsque j'ai commenc� � apprendre TypeScript �, a confi� Swadia. Il a d�clar� que, pour ces raisons, m�me s'il continuait d'apprendre TypeScript avec des tutoriels ou en lisant des livres, il n'a jamais travaill� sur une application d'entreprise �crite en TypeScript.
� En fait, j'avais l'habitude de choisir JavaScript plut�t que TypeScript (s'il y avait un choix) pour les devoirs � domicile dans le cadre du processus d'entretien avec les entreprises �, a-t-il d�clar�. Cependant, apr�s avoir accept� un poste o� travailler avec JavaScript n'�tait pas une option, il n'a pas eu d'autres choix que de revoir ses habitudes, car toutes les applications sur lesquelles il devait travailler �taient �crites en TypeScript (avec seulement du code h�rit� en JavaScript). Alors comment passe-t-on d'un d�veloppeur JavaScript pur � un fan incontest� de TypeScript ?
Les raisons pour lesquelles l'on devrait "pr�f�rer" TypeScript � JavaScript
Swadia dit avoir �t� submerg� par la situation dans un premier temps, ajoutant que sa "rage" contre TypeScript s'est accrue. Toutefois, il a d�clar� qu'il a fini par comprendre quelques mois apr�s les avantages et les raisons pour lesquelles l'on devrait pr�f�rer TypeScript � JavaScript. Voici les 3 principales raisons pour lesquelles Swadia est devenu un fan de TypeScript.
Rendre les �tats impossibles impossibles
� C'est la raison principale pour laquelle j'aime TypeScript �, a d�clar� Swadia. Il s'agit en effet d'une phrase populaire chez les d�veloppeurs utilisant le langage Elm, mais le concept est �galement utilis� dans la communaut� TypeScript, ainsi que d'autres langages de programmation. Dans la communaut�, les �tats impossibles, ou �tats absurdes, sont d�crits comme les �tats du syst�me qui n'ont aucun sens. Il s'agit tr�s probablement d'un sous-produit de la fa�on dont vous stockez votre �tat. L'id�e de "rendre les �tats impossibles impossibles" signifie essentiellement que ces situations ne devraient jamais se pr�senter.
Cela signifie que vous devez concevoir des API qui font une distinction claire entre les �tats possibles d'un composant. Cela rend le composant plus facile � maintenir et � utiliser. Notez que le syst�me de types vous aide � pr�venir les bogues avant qu'ils n'arrivent en production, mais il ne peut pas identifier tous les bogues sans votre aide. Si vous vous assurez que vos types ne permettent pas d'�tats invalides, votre syst�me de types prendra soin de s'assurer que votre programme ne se retrouvera pas dans un mauvais �tat. Cette vid�o du d�veloppeur Richard Feldman illustre bri�vement le concept dans le langage Elm.
Par ailleurs, l'approche "rendre les �tats impossibles impossibles" ne sera pas utile s'il n'y a pas un moyen d'exprimer l'impossibilit� par un syst�me de types. Enfin, l'on estime que l'approche "rendre les �tats impossibles impossibles" n'est qu'un des types d'erreurs dites de "logique m�tier" qu'il est possible de pr�venir � l'aide du syst�me de types. Enfin, les d�veloppeurs avertissent cependant que "rendre les �tats impossibles impossibles" n'emp�che pas les boucles infinies et ne prouve pas que tous les �tats sont atteignables.
Ainsi, vous devez garder � l'esprit que cette technique r�duira consid�rablement le nombre de bogues dans votre application, mais cela ne signifie pas que vous en avez formellement prouv� l'exactitude.
Rep�rer les bogues rapidement
Selon Swadia, la deuxi�me raison pour laquelle vous devriez choisir TypeScript au lieu de JavaScript est que le premier vous permet de rep�rer facilement les bogues. � En travaillant sur JavaScript, j'ai rencontr� de nombreux cas o� des bogues ont �t� rep�r�s en production en raison d'un cas particulier qui s'est produit parce qu'il n'y avait pas de v�rification de type sur le front-end. Ces bogues peuvent �tre �vit�s et d�tect�s au moment de la compilation par le compilateur TypeScript, ce qui vous fera gagner des heures dans le cycle DEV-QA �, a d�clar� Swadia.
Il continue en disant qu'avec TypeScript, tout reste tel qu'il a �t� d�fini initialement. Si une variable est d�clar�e comme bool�enne, elle le sera toujours et ne se transformera pas en un nombre. � Cela augmente la probabilit� que le code fonctionne comme il �tait initialement pr�vu. En bref, le code est pr�visible �, justifie-t-il.
Un support riche dans les EDI et un refactoring facile
En troisi�me position, Swadia a d�clar� que les EDI offrent un support complet et riche pour TypeScript et qu'il rend facile le refactoring. � Les informations sur les types rendent les �diteurs et les environnements de d�veloppement int�gr�s beaucoup plus utiles. Ils peuvent offrir des fonctionnalit�s telles que la navigation dans le code et l'autocompl�tion, en fournissant des suggestions pr�cises. Vous obtenez �galement un retour d'information pendant la saisie : l'�diteur signale les erreurs, y compris celles li�es aux types, d�s qu'elles se produisent �, a �crit Swadia, citant un rapport de la soci�t� de conseils en technologie AltexSoft.
Selon lui, tout cela vous aide � �crire un code facile � maintenir et se traduit par une augmentation significative de la productivit�. En outre, Swadia estime que le refactoring, ou la mise � jour de l'application sans changer son comportement, est n�cessaire pour que la base de code reste robuste et maintenable. Il a d�clar� que TypeScript rend cet important processus moins p�nible. � Avec des IDE qui en savent beaucoup sur votre code, vous �tes �quip� d'outils de navigation tels que "trouver toutes les r�f�rences" ou "aller � la d�finition" �, a-t-il expliqu�.
� De plus, de nombreuses erreurs sont rep�r�es automatiquement. Par exemple, si vous renommez une fonction et que vous oubliez ensuite de changer le nom quelque part, TypeScript vous alertera sur le probl�me. Cela simplifie et acc�l�re le refactoring, ce qui est particuli�rement b�n�fique lorsque vous traitez de grandes parties de la base de code �, a-t-il ajout�.
Source : Chirag Swadia
Et vous ?
Quel est votre avis sur le sujet ?
Utilisez-vous TypeScript ? Le pr�f�rez-vous � JavaScript ?
Selon vous, faut-il pr�f�rer TypeScript � JavaScript ? Si oui, quelles sont les raisons ?
Voir aussi
The State of the Octoverse 2020 : Python et TypeScript gagnent en popularit� parmi les langages de programmation, alors que JavaScript continue d'�tre le langage le plus populaire sur GitHub
State of JavaScript 2020 : TypeScript leader incontestable des d�clinaisons de JavaScript, le typage statique devient la fonctionnalit� la plus demand�e et React reste le framework front-end dominant
La version b�ta de TypeScript 3.7.0 est disponible avec la prise en charge de l'op�rateur de cha�nage d'optionnels (?.) et l'op�rateur (??)
La version 3 de Svelte, un framework JavaScript de composants graphiques, supporte officiellement le langage de programmation TypeScript, depuis juillet 2020
Partager