8 points par GN⁺ 2023-08-20 | 1 commentaires | Partager sur WhatsApp
  • Discussion sur la construction de compilateurs avec TypeScript, en insistant sur son efficacité surprenante
  • Historiquement, OCaml était utilisé pour des travaux centrés sur les langages, comme des spécifications officielles ou des langages de loisir, tandis que C++ était choisi pour des implémentations prêtes pour la production
  • Rust, nouveau venu, combine les avantages de ML et de C++ tout en ajoutant ses propres fonctionnalités, comme le multithreading sûr
  • En raison de certains aspects perçus comme vieillissants d’OCaml, l’auteur propose TypeScript comme alternative pratique pour les personnes qui bricolent des langages comme loisir
  • En partant de Deno, l’auteur montre comment écrire un petit vérificateur de types en TypeScript ; Deno offre une expérience immédiatement exploitable comme runtime pour TypeScript
  • Le système de types flexible mais léger de TypeScript est mis en avant, et l’auteur montre comment définir un Abstract Syntax Tree (AST) en TypeScript
  • L’auteur montre comment définir des expressions, gérer les informations de type à l’exécution et abstraire des expressions similaires à l’aide des fonctionnalités de TypeScript
  • L’auteur passe ensuite à l’inférence de types et montre comment définir des types, comparer des types et inférer des types en TypeScript
  • L’auteur conclut en saluant la productivité de TypeScript grâce au workflow de développement efficace de Deno, à l’excellente outillage de TypeScript et à la puissance du langage à la fois à l’exécution et à la compilation
  • L’auteur suggère qu’il utilisera probablement TypeScript à l’avenir comme outil pour de petits bricolages de langages
  • L’article se termine en montrant comment exprimer le desugaring de manière type-safe en TypeScript

1 commentaires

 
GN⁺ 2023-08-20
Avis Hacker News
  • TypeScript est salué pour sa combinaison de programmation orientée objet et fonctionnelle, qui permet un code flexible sans avoir à définir de classes.
  • La capacité du langage à permettre aux fonctions d’avoir des propriétés et des méthodes est mise en avant comme une caractéristique unique et précieuse.
  • TypeScript est comparé à d’autres langages comme OCaml, C#, Swift, Dart et Kotlin, l’absence de véritable pattern matching dans TypeScript étant signalée comme une différence majeure.
  • Certains utilisateurs souhaitent que TypeScript intègre une fonctionnalité d’énumérations taguées similaire à celle de Rust.
  • Il est question de la vitesse du compilateur TypeScript, ainsi que de spéculations sur son fonctionnement s’il était écrit dans un langage compilé.
  • Des utilisateurs proposent d’utiliser une fonction utilitaire run afin d’éviter le visitor pattern avec un switch de style IIFE.
  • Le billet mentionne l’usage de Ohm-js, un frontend de générateur de parseur, ainsi que de mini-typescript, pour mieux comprendre le fonctionnement de TypeScript.
  • Une certaine surprise est exprimée quant à l’efficacité de TypeScript, malgré la surcharge perçue des interfaces.
  • Le fait que le compilateur TypeScript soit lui-même écrit en TypeScript est souligné, ce qui met en avant sa fiabilité et son usage intensif en production.
  • Certains utilisateurs disent attendre dans TypeScript une fonctionnalité d’énumérations fermées pour des vérifications d’exhaustivité à la compilation.
  • L’influence d’Anders Hejlsberg, architecte principal de TypeScript, est reconnue comme l’une des raisons du succès du langage.