8 puntos por GN⁺ 2023-08-20 | 1 comentarios | Compartir por WhatsApp
  • Discusión sobre construir compiladores con TypeScript, destacando su sorprendente efectividad
  • Históricamente, OCaml se usó para trabajos centrados en el lenguaje, como especificaciones oficiales o lenguajes de hobby, mientras que C++ era la opción para implementaciones listas para producción
  • Rust, una incorporación más reciente, combina las ventajas de ML y C++ y añade capacidades propias como multihilo seguro
  • El autor propone TypeScript como una alternativa práctica para quienes trabajan por hobby, debido a los aspectos de OCaml que se perciben como anticuados
  • El autor muestra cómo escribir un pequeño verificador de tipos en TypeScript comenzando con Deno, que ofrece una experiencia lista para usar como runtime para TypeScript
  • Se destaca el sistema de tipos flexible pero ligero de TypeScript, y el autor muestra cómo definir un Abstract Syntax Tree (AST) en TypeScript
  • El autor muestra cómo definir expresiones, manejar información de tipos en tiempo de ejecución y abstraer expresiones similares usando capacidades de TypeScript
  • Luego pasa a la inferencia de tipos y muestra cómo definir tipos, compararlos e inferirlos en TypeScript
  • El autor concluye elogiando la productividad de TypeScript por el flujo de desarrollo eficaz de Deno, las excelentes herramientas de TypeScript y la potencia del lenguaje tanto en tiempo de ejecución como en tiempo de compilación
  • El autor sugiere que es muy probable que en el futuro use TypeScript como herramienta para experimentar con lenguajes pequeños
  • Cierra el artículo mostrando cómo expresar desugaring de forma type-safe en TypeScript

1 comentarios

 
GN⁺ 2023-08-20
Opiniones de Hacker News
  • TypeScript recibe elogios por su combinación de programación orientada a objetos y funcional, lo que permite programar con flexibilidad sin necesidad de definir clases.
  • Se destaca como una característica única y valiosa la capacidad del lenguaje para que las funciones tengan propiedades y métodos.
  • TypeScript se compara con otros lenguajes como OCaml, C#, Swift, Dart y Kotlin, y se señala que una diferencia importante es la falta de un verdadero pattern matching en TypeScript.
  • Algunos usuarios quieren que TypeScript incluya una funcionalidad de enumeraciones etiquetadas similar a la de Rust.
  • Hay discusión sobre la velocidad del compilador de TypeScript y especulación sobre cómo funcionaría si estuviera escrito en un lenguaje compilado.
  • Un usuario propone usar una función utilitaria run para evitar el patrón visitor con un switch al estilo IIFE.
  • En la publicación se menciona el uso de Ohm-js, un frontend de parser generator, y de mini-typescript, lo que ayuda a entender cómo funciona TypeScript.
  • Se expresa sorpresa por la eficiencia de TypeScript a pesar de la percepción de sobrecarga de las interfaces.
  • Se señala que el compilador de TypeScript está escrito en el propio TypeScript, lo que subraya su confiabilidad y su uso intensivo en producción.
  • Algunos usuarios están esperando una funcionalidad de enumeraciones cerradas en TypeScript para verificaciones de exhaustividad en tiempo de compilación.
  • Se reconoce la influencia de Anders Hejlsberg, arquitecto principal de TypeScript, como una de las razones del éxito del lenguaje.