Site icon Blog ARC Optimizer

Hé développeurs Python, ne sous-estimez pas TypeScript


Python est mon pain et le beurre, et je l'adore. Même si j'ai quelques points de critique  contre le langage, je le recommande fortement à quiconque débute dans la science des données. Les personnes plus expérimentées dans le domaine ont de toute façon tendance à être des évangélistes Python.

Cependant, cela ne signifie pas que vous ne pouvez pas défier les limites de votre domaine de temps en temps, par exemple en explorant un [19659005]un paradigme de programmation différent ou un nouveau langage.

TypeScript : JavaScript, but type-safe

Il y a une dizaine d'annéesles ingénieurs logiciels de Microsoft ont remarqué que JavaScript ne répondait pas à tous leurs n'a plus besoin. D'une part, le langage évoluait rapidement et ajoutait de nouvelles fonctionnalités extrêmement intéressantes. D'un autre côté, aucune des fonctionnalités du pipeline ne pouvait résoudre un problème fondamental : JavaScript était idéal pour les petits programmes, mais écrire des applications entières avec lui était un gâchis.

Il y avait plusieurs possibilités pour résoudre le problème : on pouvait , par exemple, utilisez un langage différent ou redéfinissez JavaScript avec une meilleure syntaxe. L'équipe de développement de Microsoft a adopté une approche différente : ils ont créé TypeScript en développant JavaScript. De cette façon, ils ont pu utiliser toutes les nouvelles fonctionnalités de JavaScript tout en se débarrassant de tout ce qui n'était pas bon pour les grands projets.

Similaire à Python, JavaScript est compilé au moment de l'exécution, ce qui signifie que vous devez exécuter le code pour le déboguer. TypeScript, en revanche, est compilé. Cela fournit une couche de sécurité supplémentaire car les programmeurs obtiennent des informations sur les bogues possibles avant le moment de l'exécution. Avec des langages non compilés comme Python ou JavaScript, il peut être assez long de localiser les bogues une fois que vous vous êtes rendu compte que votre code ne se comporte pas comme prévu.

La principale différence entre JavaScript et TypeScript, cependant, est la vérificateur de type. Lors de la compilation, chaque programme TypeScript est vérifié si les types de données sont cohérents les uns avec les autres.

Cela peut sembler trivial à faire manuellement. Mais lorsque vous travaillez sur des projets avec des milliers de lignes de code, vous remercierez le Seigneur de l'avoir.

Il y a quelques autres différences, comme le fait que TypeScript a des fonctions anonymes et des fonctions asynchrones. Les fonctions anonymes sont une caractéristique clé de la programmation fonctionnellequi peut rendre un programme plus efficace avec des charges de données volumineuses.

La programmation asynchrone est extrêmement utile lorsque vous devez effectuer plusieurs opérations en parallèle, ou lorsque vous traitez des opérations d'E/S qui ne devraient pas interrompre les processus d'arrière-plan. La programmation asynchrone est possible en Python et Javascriptmais dans TypeScript, elle est intégrée à partir du noyau.

TypeScript est un sur-ensemble de JavaScript.

La liste des Le concurrent de Pythonrs est long : Rust, Go, ScalaHaskell, JuliaSwift, C++, Java et R y trouvent tous une entrée. Dans un domaine aussi encombré, il est tout à fait compréhensible que JavaScript et TypeScript n'aient pas tendance à être autant reconnus.

Cela ne signifie pas que TypeScript n'est pas un incontournable dans le monde de la programmation générale. Parmi les scientifiques des données, cependant, il n'a jamais été particulièrement populaire.

Vous pourriez conclure que TypeScript n'est peut-être pas un bon match pour la science des données. Mais ne vous précipitez pas. Bien qu'il puisse ne pas convenir à tous les aspects de la science des données, il existe des domaines où il présente des avantages distincts par rapport à Python.

Si vous travaillez dans l'un de ces domaines, cela vaut la peine d'essayer TypeScript. Et si vous ne le faites pas, qui sait où vous atterrirez ensuite ? Le terrain avance vite. Vous avez un avantage concurrentiel si vous pouvez regarder au-delà de votre nez.

[VousvouleztravaillerchezTNW ?Nous recherchons des développeurs front-end pour rejoindre notre équipe]

Comment TypeScript est devenu populaire

Si vous détestez les illogiques mais hilarants WTF-moments qui continuent de se produire en JavaScript, alors j'ai une mauvaise nouvelle pour vous : vous verrez tout cela aussi dans TypeScript.

Mais ces problèmes de syntaxe ne sont pas la raison pour laquelle les programmeurs aiment autant TypeScript. Au contraire, cela se résume à l'idée que vous prenez un excellent produit – JavaScript – et ajoutez quelque chose d'encore plus grand – le typage statique.

Bien sûr, je ne dis pas que JavaScript est toujours génial, ou que le typage statique est toujours le meilleure façon de faire les choses. Mais pour créer de grandes applications de style Microsoft, cela semble fonctionner extrêmement bien.

Cela étant dit, TypeScript n'a encore qu'une fraction de la popularité de JavaScript. Cela pourrait être attribué à l'âge : TypeScript a huit ans. JavaScript est trois fois plus vieux ! Et Python est aussi un ancien dans le domaine avec ses trente ans.

Malgré son jeune âge, il y a des domaines où TypeScript est inévitable. Cela ajoute à sa popularité. Par exemple, lorsque Google a annoncé qu'Angular.js fonctionnerait avec TypeScript en 2016, le nombre de balises sur StackOverflow a explosé.

Crédit : Stack Overflow Trends
TypeScript ne partage qu'une fraction de la traction que Python et JavaScript ont. Pourtant, c'est inévitable dans certains domaines

Où TypeScript pourrait avoir un avantage sur Python

Ce qui a rendu JavaScript populaire à l'époque, c'est qu'il s'exécute partout. Vous pouvez l'exécuter sur un serveur ou dans votre navigateur ou où vous le souhaitez. Vous le compilez une fois, et cela fonctionne partout. Lorsque cela est sorti pour la première fois, cela semblait presque magique.

Comme il est construit sur JavaScript, TypeScript partage cette magie. Python aussi ! Certes, il a une implémentation légèrement différente puisqu'il utilise un interpréteur au lieu d'une machine virtuelle. Mais cela ne change rien au fait qu'en termes de run-me-anywhereTypeScript et Python sont à égalité.

Des fonctionnalités telles que les génériques et le typage statique facilitent la programmation fonctionnelle. en TypeScript qu'en Python. Cela pourrait être un avantage car la demande de code fonctionnel augmente en raison des développements de la science des données, de la programmation parallèle, de la programmation asynchrone, etc. et d'autres fonctionnalités de programmation fonctionnelle. Et en ce qui concerne la science des données, l'apprentissage automatique et plus encore, Python est à l'avant-garde des frontières.

Cela laisse la programmation parallèle et la programmation asynchrone sur la table. Même si vous pouvez extraire les deux ces choses  dans les deux langages, il y a une grande différence : en Python, vous devez utiliser des bibliothèques particulières pour la tâche . Dans TypeScript, toutes les bibliothèques sont asynchrones par rapport au noyau. Et comme ce dernier est un peu plus fonctionnel par défaut, il est souvent un peu plus facile de faire de la programmation parallèle.

En d'autres termes, si vous êtes un développeur Python impliqué dans des processus asynchrones et du calcul parallèle, vous voudrez peut-être pour essayer TypeScript.

Ce qui rend TypeScript idéal pour la science des données – ou non

De nombreux scientifiques des données traitent de la programmation asynchrone et parallèle. Vous envisagez peut-être déjà d'écrire votre prochain projet en TypeScript plutôt qu'en Python. Cependant, que ce soit une bonne idée dépend de nombreux autres facteurs.

Tout d'abord, TypeScript n'a pas de moyen simple de faire liste comprehensions. Cela peut être frustrant lorsqu'il s'agit de grands tableaux, par exemple.

Deuxièmement, il n'y a pas d'opérations matricielles natives dans TypeScript. Python a NumPy, ainsi qu'une foule d'autres outils, qui les rendent faciles. Donc, si votre projet est lourd en algèbre linéaire, vous voudrez peut-être rester à l'écart de TypeScript.

Troisièmement, si vous n'êtes pas trop familier avec JavaScript, vous êtes presque assuré d'avoir quelques moments de confusion. Étant donné que TypeScript est basé sur JavaScript, il a hérité de toutes ses fonctionnalités : les bonnes, les mauvaises et les WTF. Bien que, si je suis honnête, rencontrer ces phénomènes peut aussi être assez amusant…

Enfin, vous voudrez prendre en compte que la programmation n'est pas une occupation solitaire. Il existe une énorme communauté pour Python en science des données qui offre un soutien et des conseils. Mais à l'heure actuelle, TypeScript n'est pas très populaire parmi les data scientists. Vous ne pourrez donc peut-être pas trouver autant de réponses utiles à vos questions sur StackOverflow et ailleurs.

Cela étant dit, si vous démarrez un petit projet sans trop de grands tableaux et opérations matricielles, vous voudrez peut-être donner TypeScript un aller quand même. Surtout s'il s'agit d'une programmation parallèle ou asynchrone.

En résumé : sachez où utiliser vos outils

Il n'y a pas un langage pour chaque tâche. Bien sûr, certaines langues sont plus amusantes ou plus intuitives que d'autres. Bien sûr, il est important que vous aimiez vos outils, car ils vous permettront de continuer lorsque les temps sont durs. Commencer avec un langage bien-aimé comme TypeScript ou Python n'est donc pas une mauvaise idée.

Mais en fin de compte, vous ne devriez pas vous en tenir à un langage comme à une religion. Les langages de programmation sont des outils. L'outil qui vous convient le mieux dépend de ce que vous essayez d'en faire.

Pour le moment, Python est énorme pour la science des données. Mais dans un domaine en évolution rapide, vous devez être capable de regarder au-delà de votre nez. Au fur et à mesure que vos tâches changent, vos outils évoluent également.

TypeScript, d'autre part, a une communauté animée autour du Web frontal, du nœud principal et du développement mobile. Ce qui est intéressant, c'est que ces domaines se recoupent avec la science des données  plus souvent  qu'on ne le pense. Node, en particulier, gagne de plus en plus de terrain parmi les scientifiques des données.

Bien sûr, cela ne signifie pas que vous devez vous familiariser avec une douzaine de langues à la fois. Il est très important de bien connaître une langue. Mais être curieux des autres langages et technologies vous aidera à garder une longueur d'avance sur le long terme.

Alors n'hésitez pas à essayer quelque chose de nouveau quand vous en avez envie. Pourquoi pas avec TypeScript ?

Cet article a été écrit par Rhea Moutafis et a été initialement publié sur Towards Data Science. Vous pouvez le lire ici.




Source link
Quitter la version mobile