Reddit choisit TypeScript pour leur frontend

Le , par yahiko, Rédacteur/Modérateur
Reddit choisit TypeScript pour leur frontend


Le célèbre site communautaire reddit vient d'annoncer qu'il avait choisit le langage TypeScript, surensemble typé de JavaScript, pour la réécriture de leur site.
L'auteur de l'article, Niranjan Ramadas, Engineering Manager, présente les différents critères qui ont amené l'entreprise à choisir ce langage plutôt qu'un autre :
  • Le typage ;
  • L'outillage ;
  • L'utilisation dans des applications de grande ampleur ;
  • La facilité d'apprentissage pour l'équipe en place ;
  • La capacité à opérer côté serveur et client ;
  • L’interopérabilité avec les bibliothèques existantes.


On apprend que le débat s'est porté principalement entre JavaScript+Flow d'un côté, et TypeScript de l'autre avec une évaluation sur trois axes :
  1. La compilation vs. l'annotation ;
  2. La consistance du système de typage (soundness) ;
  3. L'écosystème.


Concernant les différences entre la compilation et l'annotation, l'auteur de l'article indique que l'annotation, l'approche de Flow, a pour avantage de ne pas trop complexifier la chaîne de développement, à contrario de TypeScript (ndr: même si c'est loin d'être insurmontable). En revanche, l'auteur montre que la compilation a pour avantage d'écrire les types de façon plus naturelle, moins verbeuse, que son équivalent en annotation où il faut en plus coder en JavaScript l'implémentation des types. L'exemple d'une énumération montre bien ce phénomène.

Concernant la détection éventuelle d'erreur dans le typage, l'auteur a une préférence pour Flow qu'il estime plus pointu dans ce domaine. En effet, TypeScript a historiquement privilégie la correction syntaxique du typage (pour des raisons de facilité d'implémentation et de compatibilité avec JavaScript) avant la consistance, là où Flow a été principalement développé en ce sens. C'était vrai encore il y a quelques mois, mais depuis les versions les plus récentes de TypeScript et notamment la 2.4 où la contravariance sur les types génériques a été introduite, le jugement de l'auteur pourrait être amené à évoluer.

Enfin, le dernier axe d'évaluation, la richesse de l'écosystème, l'auteur indique que TypeScript bénéficie d'un net avantage sur Flow grâce à une vaste collection de typages sur les bibliothèques JavaScript les plus courantes, grâce à un grand support du langage dans les outils de développement, notamment l'Intellisense qui se retrouve dans nombre d'éditeurs, grâce à la capacité de TypeScript à comprendre les commentaires à la JSDoc pour en inférer le type sur des projets JavaScript existants, et grâce aux garanties "sociales" de TypeScript dans la mesure où le langage a été adopté dans nombre de projets de grande ampleur, notamment Angular. L'inquiétude de l'auteur envers Flow est que celui-ci a été développé plus spécifiquement pour les besoins de Facebook (ndr : et notamment React), alors que TypeScript a d'emblée eu une vocation généraliste. En aparté, l'auteur estime que puisque TypeScript se veut comme un surensemble de JavaScript, il y a une certaine garantie que la part de Microsoft que le langage suive les évolutions de la norme ECMAScript en faisant évoluer son système de typage en conséquence.

Pour conclure sur les mots de l'auteur :

Nous avons choisi TypeScript parce que nous sommes confiant dans le fait que les devs puissent l'appréhender rapidement (le nombre d'ingénieur frontend a triplé en un an), que le langage peut accomplir nos objectifs sur la refonte complète du site,
qu'il soit pérenne pendant un moment, et qu'il puisse être interopérable avec notre base de code existante. Mais plus important, nous avons basculé vers un langage qui est typé. Utiliser un langage typé pour notre frontend a déjà été payant : notre code a moins de bugs liés au typage, nous sommes plus confiants lors des grands remaniements de code, et notre documentation au sein du code est davantage orientée sur les concepts que sur la structure des objets et des paramètres de fonctions. Globalement, nous sommes très contents de notre choix.

.
source : Blog officiel de Reddit

Que pensez-vous de la décision de Reddit ?
Existe-t-il une réflexion similaire dans votre entreprise ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Développeur Angular
Algonomia - Ile de France - Levallois-Perret (92300)
Développeur Drupal (H/F) Bordeaux
Smile - Aquitaine - Bordeaux (33000)
DEVELOPPEUR EXPERT FULLSTACK JAVA/JAVASCRIPT 55K
Oostaoo Consulting - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique TypeScript : Xavier Lecomte - Lana Bauer -