TypeScript contre. JavaScript – La nouvelle pile

Il n’y a pas de réponse simple à la décision sur le débat Typescript vs. JavaScript. La réponse dépend en grande partie des besoins de votre organisation ainsi que des préférences personnelles et de l’expertise des développeurs/techniciens qui travaillent directement pour vous.

Lorsque l’on considère Typescript vs. JavaScript, commencez par regarder votre organisation et vos cas d’utilisation spécifiques et non un tableau de comparaison générique sur le Web, a recommandé Adam Abrams, directeur de l’architecture d’Optimove. « Par exemple, nous utilisons beaucoup JavaScript sur le frontend et le backend, mais nos systèmes backend exploitent également d’autres piles technologiques, principalement .NET et Java. De plus, nous développons des microservices dans des équipes de taille moyenne (environ six développeurs) et avons besoin de pouvoir maintenir le même code par différentes personnes sprint par sprint.

Les développeurs Optimove sont habitués aux langages de typage, avec une méthodologie de test qui repose sur des bases telles que les références nulles et les variables non initialisées, à gérer par le compilateur, et non à la main par les développeurs, a expliqué Abrams. “C’est pourquoi nous avons standardisé Typescript dans la plupart de nos services. Des services plus petits ou ponctuels sont toujours développés en JavaScript pour accélérer la réalisation d’un POC ou tester une hypothèse. Nous avons déjà effectué plus tard la migration du code vers TypeScript de manière progressive pour certains d’entre eux. C’est un processus indolore (qui améliore généralement le code et découvre quelques bogues cachés.) »

EN RELATION: TypeScript et la puissance d’un langage à typage statique

Abrams a ajouté : « Plus vous mettez de logique métier dans votre code (au lieu de simplement E/S), mieux vous utiliserez TypeScript pour auto-documenter votre code avec les types appropriés. En JavaScript, il est facile de mélanger les unités/types et d’obtenir des résultats absurdes sans préavis. Nous avons remarqué que cela impose également une bonne discipline aux développeurs pour utiliser les bonnes parties de JavaScript dans le code réel et laisser de côté les parties idiosyncratiques.

Défis avec Typescript et JavaScript

Andrew Pierno, directeur de l’ingénierie de Veritone, voit des défis avec l’une ou l’autre réponse dans le TypeScript vs. Débat JavaScript.

JavaScript est déroutant, frustrant, apparemment facile à utiliser et impossible à maîtriser, a expliqué Pierno. Il est si flexible qu’il est facile de se nouer. Il y a un million de façons de faire les choses, de nouveaux outils sortent chaque jour, et depuis qu’ils existent, c’est le vilain petit-fils des langages de programmation.

Selon Pierno, un avantage de JavaScript est qu’il est facilement disponible pour des utilisations allant des applications Web aux applications de bureau et même pour des utilisations liées à la blockchain. TypeScript résout le problème de JavaScript ayant des types “étranges”.

“Mais d’après mon expérience, ce n’est pas un problème réel”, a déclaré Pierno. “Pas une seule fois je n’ai vu un système de production tomber en panne à cause d’un problème TypeScript. TypeScript représente deux fois plus de travail pour résoudre un problème que je n’ai jamais vu ni eu. TypeScript offre le confort d’un langage fortement typé pour les personnes venant d’autres langages de programmation. Vous pouvez l’intégrer à la plupart des applications et l’introduire au coup par coup dans les parties les plus critiques de l’application.

Protection supplémentaire de Typescript pour les grandes équipes en ajoutant l’introduction de bogues qu’un compilateur détecterait normalement dans d’autres langages mais ne serait pas détecté sans TypeScript en JavaScript vanille, selon Pierno.

Différences mineures entre TypeScript et JavaScript

“Si vous utilisez déjà des frameworks ou des composants d’application ou si vous travaillez avec du code existant basé sur JavaScript, la conversion vers TypeScript impliquera probablement une amélioration majeure, en particulier si vos développeurs et les personnes de support ont une expertise en JavaScript et non en TypeScript”, selon Jacob Ansari. , défenseur de la sécurité de Schellman et analyste des cybertendances émergentes. Sans vainqueur convaincant dans le Typescript vs. Discussion JavaScript, tout avantage situationnel que vous pourriez tirer du changement de langue entraînera probablement un coût important en termes de test de fonctionnalité et de recyclage des personnes.

“Je soupçonne que faire un geste comme celui-là sur une base de code existante pour des raisons de sécurité en vaut rarement la peine, à moins que vous n’obteniez soudainement une nouvelle équipe de développement qui a beaucoup d’expertise dans le nouveau langage et déteste l’ancien”, a ajouté Ansari. « La plupart des organisations feraient mieux de comprendre pleinement les compromis de sécurité que leurs langages, leurs ensembles d’outils et leurs technologies fournissent et de prendre des décisions de conception et de mise en œuvre en fonction de ces facteurs. mieux pour ses besoins (et pourquoi) ? »

Le cas de TypeScript

Malgré le cas d’Ansari pour rester avec tout ce que vous utilisez maintenant, Carl Saunders, co-fondateur et développeur full stack pour Raven Code Limited, affirme que TypeScript est clairement le gagnant de ce débat.

“TypeScript est le seul que vous devriez utiliser, car il se transcompile en JavaScript”, a déclaré Saunder. “Vous n’avez même pas besoin d’écrire TypeScript dans la plupart des cas – les éditeurs modernes tels que Visual Studio Code et WebStorm déduiront les types (intégrés à TypeScript) prêts à l’emploi. Cela présente d’énormes avantages, car la prise en charge d’IntelliSense complétera automatiquement le code et mettra même en évidence lorsqu’un développeur fait quelque chose de mal (vérification de type). Cela seul empêchera la plupart des erreurs d’être commises dans la base de code avant qu’une révision du code ne soit effectuée.

Avec TypeScript, un développeur peut facilement écrire du code propre et maintenable, ce qui lui permet de se concentrer sur l’écriture de la fonctionnalité, a déclaré Saunders. Un autre avantage de TypeScript est qu’un développeur peut adopter les premières propositions de spécification ECMAScript avant qu’elles ne soient accessibles au public, et dans les coulisses, TypeScript remplira ces fonctionnalités.

“TypeScript peut également être utilisé comme interface de ligne de commande (CLI)”, a ajouté Saunders. “Cela signifie qu’un développeur peut l’exécuter dans le cadre du flux de travail du développeur et dans le cadre d’une tâche en arrière-plan. Plus important encore, il peut être exécuté dans le cadre du pipeline de construction d’intégration continue (CI). Cela permet aux erreurs d’être avant même que le code ne soit transmis aux utilisateurs.

Lequel devriez-vous utiliser ?

Il est clair que le choix entre Typescript vs. JavaScript dépendra si vous utilisez déjà l’un ou l’autre et que vous êtes à l’aise avec. Si tel est le cas, parcourez la discussion ci-dessus pour voir s’il existe une raison impérieuse de changer.

Si vous partez de zéro, vous voudrez lire la discussion ci-dessus, expérimenter un peu et voir ce qui semble être le mieux adapté à votre organisation.

Leave a Comment