
auteur de livres sur le langage de programmation
Dans un billet de blog, Stefan Baumgartner aborde cinq v�rit�s inconfortables sur le langage TypeScript. Tout d'abord, il rappelle que TypeScript n'est pas une version "corrig�e" de JavaScript, mais plut�t un sur-ensemble de ce dernier. Il ne vous �pargne donc pas JavaScript avec ses bizarreries et ses d�fauts. Malgr� son approche graduelle, TypeScript ajoute aussi de la complexit� aux projets en raison de ses nombreuses options de configuration. En outre, ce n'est pas vraiment un langage � typage s�r, en particulier lorsque des interactions avec le "monde ext�rieur" sont impliqu�es. Stefan Baumgartner affirme �galement que TypeScript existe sous une multitude de variantes implicites, chacune avec ses avantages et ses inconv�nients. Malgr� tout, il estime que TypeScript reste un langage pr�cieux pour am�liorer la productivit� et la maintenabilit� des projets, � condition de comprendre ses compromis et de l'utiliser correctement.
Stefan Baumgartner est un auteur de deux livres sur TypeScript, y compris le livre � TypeScript in 50 Lessons �. Chaque fois qu'il rencontre un nouveau groupe de d�veloppeurs, lors de ses ateliers et formations, il y a certaines r�alit�s sur TypeScript auxquelles ils sont confront�s. Ce sont ces r�alit�s qu'il a d�cid� de partager dans un billet de blog intitul� � Cinq v�rit�s inconfortables � propos de TypeScript �, ce que nous vous pr�sentons ici.
1. TypeScript ne vous �pargnera pas JavaScript
� chaque fois qu'il donne des ateliers sur TypeScript, il y a au moins une personne qui apprend TypeScript parce qu'elle a essay� JavaScript et que cela n'a pas fonctionn� pour elle. TypeScript devrait �tre meilleur, n'est-ce pas ?
Stephan Baumgartner dit avoir constat� que l'id�e fausse selon laquelle TypeScript est une version "meilleure" ou "corrig�e" de JavaScript est tr�s r�pandue. Cette id�e existe depuis les tout premiers jours o� TypeScript �tait fortement promu par des d�veloppeurs qui utilisaient g�n�ralement C#/.NET et avaient besoin d'�crire des API c�t� client �galement. C'�tait �galement la premi�re rencontre de Stefan Baumgartner avec TypeScript : quelqu'un lui a dit qu'il avait trouv� une "meilleure version". Et c'est aussi la raison pour laquelle il a initialement rejet� TypeScript.
TypeScript �tant sans aucun doute un sur-ensemble de JavaScript, M. Baumgartner rappelle que cela signifie qu'il reprend toute l'histoire, les bizarreries et les pi�ges de JavaScript. � Oui, cela vous aide � �viter les erreurs et � travailler avec un langage de programmation � typage dynamique. Cela g�n�re des erreurs lorsque quelque chose ne concorde pas. Mais en son c�ur, c'est toujours JavaScript. Si vous travaillez suffisamment longtemps avec TypeScript, vous verrez les zones jaunes transpara�tre � travers le rev�tement bleu des types statiques �. Il utilise les couleurs jaune et bleue pour faire allusion respectivement � JavaScript et TypeScript.
� Le syst�me de typage de TypeScript adopte pleinement la typage structurel - pour de bonnes raisons - et cela, combin� au fait que les types ne sont que des informations suppl�mentaires qui se superposent au code existant, peut �tre d�routant pour beaucoup de gens qui s'attendent � une transition rapide d'un langage � l'autre �, dit-il. � Si vous souhaitez vous plonger dans TypeScript, ne pensez pas que vous pouvez laisser JavaScript derri�re vous. Il vous trouvera, et il vous attrapera. �
2. TypeScript ajoute de la complexit� � vos projets
TypeScript est connu pour son approche graduelle : utilisez autant de types que vous le souhaitez, allez aussi loin que vous le voulez. TypeScript cherche �galement � abaisser continuellement la barri�re d'entr�e, en s'assurant que les personnes qui connaissent juste suffisamment de JavaScript puissent b�n�ficier des informations de typage. N�anmoins, Stefan Baumgartner affirme que TypeScript ajoute une couche de complexit� � votre projet dont vous devez �tre conscient. Et il ne parle pas seulement des types et des fonctionnalit�s avanc�es complexes comme les types conditionnels. Il parle de toutes les options de configuration, de param�tres et d'int�grations que TypeScript apporte pour �tre compatible avec absolument tout : Deno, Node, Babel, Webpack, Esbuild, de vieilles biblioth�ques de graphiques, etc. M�me avec Internet Explorer 5, dit-il pour ironiser.
� Vous avez compris l'id�e. Le compilateur TypeScript est configur� via TSConfig, un �norme fichier JSON avec de nombreuses possibilit�s pour adapter TypeScript � vos besoins. Il y a tellement d'options de configuration diff�rentes qu'il devient vraiment difficile de dire quelles r�gles sont r�ellement appliqu�es. Et une fois que vous avez surmont� cette extravagance de configuration, vous pouvez commencer � examiner tous les compromis que TypeScript fait pour vous afin d'obtenir un code s�r. TypeScript est une affaire complexe �, dit-il.
Stefan Baumgartner pr�sentant les bizarreries de TypeScript lors d'une conf�rence
3. TypeScript n'est pas vraiment un langage � typage s�r
Cela peut �tre surprenant pour beaucoup, mais Stefan Baumgartner estime TypeScript n'est pas vraiment un langage � typage s�r. La v�rification des types de TypeScript fonctionne tr�s bien dans ce que Stefan Baumgartner appelle le "monde interne des types" de votre application. Cette partie o� vous avez d�fini vos types, les op�rations sur ces types et leur flux dans tout votre programme.
� Ici, tout ce qui devrait fonctionner ensemble fonctionnera ensemble, tout ce qui ne fonctionne pas provoquera des lignes ondul�es rouges et des erreurs de compilation. Mais il y a des choses aux bords. Si vous quittez le monde interne de la s�curit� de typage et que vous avez besoin d'acc�der � des entr�es-sorties quelconques : entr�e utilisateur, acc�s aux fichiers, r�cup�ration de donn�es sur Internet. L�, TypeScript n'a aucune id�e des types en question et doit se fier � ce que vous lui dites. Vous devez faire des annotations de type, des assertions de type ou de gros contr�les de flux pour donner � TypeScript un indice de ce � quoi s'attendre. Et ces mesures sont aussi bonnes que vous. En TypeScript, vous avez la possibilit� de changer un type en quelque chose d'autre � tout moment. Vous pouvez le changer d'un type large qui autorise de nombreuses valeurs mais qui est moins sp�cifique � un type restreint qui autorise moins de valeurs mais fournit plus d'informations � tout moment, parfois sans m�me le remarquer. Et il y a des situations, notamment avec les API qui retournent "any", o� vous pouvez annoter quelque chose de compl�tement diff�rent de ce que vous obtenez en retour. �
� Et rien ne vous en prot�ge contre cela �, explique M. Baumgartner. � Non seulement cela, mais TypeScript fait quelques exceptions o� il �change la s�curit� des types contre la productivit�. Et ce sont ces sc�narios qui peuvent vraiment vous causer des probl�mes. �
4. TypeScript existe en de nombreuses variantes
Oui, pour Stefan Baumgartner, TypeScript existe en de nombreuses variantes qui ne disent pas leurs noms : vous pouvez juste faire du JavaScript avec une touche de types, ou aller � fond dans les hi�rarchies de classes et en utilisant toutes les extensions de langage comme si c'�tait en 2012. Vous pouvez �crire principalement en React et avoir besoin de l'extension TSX. Vous pouvez aussi �crire du code fonctionnel et travailler beaucoup avec des types conditionnels et des types de tuples variadiques. Ou encore, vous pouvez utiliser des d�corateurs exp�rimentaux qui fournissent des informations pour une multitude d'autres compilateurs qui s'ex�cutent par la suite. Chacun utilise TypeScript de la mani�re qui fonctionne le mieux pour lui, et son �quipe.
Stefan Baumgartner affirme que TypeScript offre tant de possibilit�s qu'il n'a jamais vu un seul projet qui ressemble � un autre. Chaque �quipe trouve quelque chose de diff�rent et utilise une vari�t� d'outils pour s'exprimer en TypeScript. Et ils viennent tous avec diff�rents fonctionnalit�s et compromis. Les enums, les classes abstraites, les types conditionnels, etc. Ils viennent tous avec des compris. Les classes abstraites, par exemple, vous aident � d�finir un comportement partag�, mais elles n'ont aucune base dans JavaScript. Et les types conditionnels n�cessitent presque toujours une documentation suppl�mentaire pour que les gens puissent comprendre ce qui a �t� fait apr�s un certain laps de temps.
Vos d�cisions d'utiliser des types ou des interfaces, des �num�rations constantes ou des �num�rations r�guli�res. Vos d�cisions d'inf�rer les types ou les annoter, etc. indiquent la variante de TypeScript que vous utilisez. Pour M. Baumgartner, c'est presque comme en C++, o� les �quipes doivent toujours d�cider d'un sous-ensemble du langage pour g�rer la complexit�. TypeScript vous demande la m�me chose.
5. TypeScript en vaut toujours la peine
Cela dit, Stefan Baumgartner estime que TypeScript en vaut totalement la peine. A condition de comprendre le langage, comprendre ses compromis et ses inconv�nients, et comprendre ce qu'il apporte � votre projet. C'est � ces conditions que vous pourrez pleinement profiter de la puissance de TypeScript en tant que syst�me de typage et langage de programmation. TypeScript devient alors un langage pr�cieux pour am�liorer la productivit� et la maintenabilit� des projets.
Source : Stefan Baumgartner
Et vous ?


Voir aussi




Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.