8 pontos por GN⁺ 2023-08-20 | 1 comentários | Compartilhar no WhatsApp
  • Discussão sobre a construção de compiladores usando TypeScript, com ênfase em sua eficácia surpreendente
  • Historicamente, OCaml era usado para trabalhos centrados em linguagens, como especificações oficiais ou linguagens de hobby, enquanto C++ era a escolha para implementações prontas para produção
  • Rust é uma adição mais recente que combina as vantagens de ML e C++ e ainda acrescenta recursos próprios, como multithreading seguro
  • Por causa dos aspectos percebidos como antiquados do OCaml, o autor propõe TypeScript como uma alternativa prática para quem trabalha em projetos por hobby
  • O autor mostra como escrever um pequeno verificador de tipos em TypeScript começando com o Deno, que oferece uma experiência pronta para uso como runtime para TypeScript
  • O sistema de tipos flexível e ao mesmo tempo leve do TypeScript é destacado, e o autor mostra como definir uma Abstract Syntax Tree (AST) em TypeScript
  • O autor mostra como definir expressões, lidar com informações de tipo em tempo de execução e abstrair expressões semelhantes usando recursos do TypeScript
  • Em seguida, o autor passa para inferência de tipos e mostra como definir tipos, comparar tipos e inferir tipos em TypeScript
  • O autor conclui elogiando a produtividade do TypeScript por causa do fluxo de desenvolvimento eficaz do Deno, das excelentes ferramentas da linguagem e de seu poder tanto em tempo de execução quanto em tempo de compilação
  • O autor sugere que provavelmente usará TypeScript no futuro como ferramenta para pequenas experimentações com linguagens
  • O artigo termina mostrando como expressar desugaring de forma type-safe em TypeScript

1 comentários

 
GN⁺ 2023-08-20
Comentários do Hacker News
  • O TypeScript é elogiado pela combinação de programação orientada a objetos e funcional, permitindo uma codificação flexível sem a necessidade de definir classes.
  • A capacidade de funções na linguagem terem propriedades e métodos é destacada como uma característica única e valiosa.
  • O TypeScript é comparado com outras linguagens como OCaml, C#, Swift, Dart e Kotlin, e a principal diferença apontada é a falta de correspondência de padrões real de forma nativa no TypeScript.
  • Alguns usuários gostariam que o TypeScript incluísse recursos de enumerações marcadas, semelhantes aos do Rust.
  • Há discussões sobre a velocidade do compilador do TypeScript e especulações sobre como ele funcionaria se fosse escrito em uma linguagem compilada.
  • Usuários sugerem usar a função utilitária run para evitar o padrão visitor com um switch no estilo IIFE.
  • A publicação menciona o uso do Ohm-js, um frontend gerador de parser, e do mini-typescript, que ajudam a entender como o TypeScript funciona.
  • É expressa surpresa com a eficiência do TypeScript, apesar da sobrecarga percebida das interfaces.
  • É apontado que o compilador do TypeScript é escrito no próprio TypeScript, o que destaca sua confiabilidade e o uso intenso em produção.
  • Alguns usuários estão aguardando um recurso de enumeração fechada no TypeScript para verificações de exaustividade em tempo de compilação.
  • A influência de Anders Hejlsberg, principal arquiteto do TypeScript, é reconhecida como uma das razões do sucesso da linguagem.