6 puntos por GN⁺ 2024-05-02 | 1 comentarios | Compartir por WhatsApp
  • TypeSpec es un nuevo lenguaje para el desarrollo centrado en APIs, diseñado para satisfacer las necesidades de desarrolladores, diseñadores y gerentes de APIs
    • Fue desarrollado en un entorno en el que ofrecer APIs de alta calidad y experiencias relacionadas de manera consistente se vuelve cada vez más compleja y crítica
    • TypeSpec es más que un lenguaje; es una plataforma que habilita la abstracción, fomenta la reutilización de código y aprovecha herramientas modernas para un desarrollo ágil

Características principales de TypeSpec

  • Interoperabilidad
    • TypeSpec no es un lenguaje de descripción de API simple, sino un lenguaje de definición de alto nivel que permite definir APIs y generar al mismo tiempo múltiples protocolos, clientes, servidores y documentación
    • Es interoperable con los lenguajes de definición de API estándar de la industria, reduciendo la brecha entre distintas opciones
  • Productividad
    • TypeSpec ofrece una excelente experiencia de desarrollador para hacer que la definición de datos y APIs sea más agradable y productiva
    • El lenguaje es conciso y permite definir datos y formas complejas de API con una entrada mínima
  • Patrones de API
    • TypeSpec encapsula tipos de datos comunes, patrones de API y guías en componentes reutilizables de alto nivel que pueden compartirse en todo el equipo o el ecosistema, mejorando así la calidad de las API
  • Familiaridad
    • Inspirado en TypeScript y C#, TypeSpec es fácil de aprender y se siente familiar para muchos desarrolladores
  • Extensibilidad
    • TypeSpec puede ampliarse con vocabularios de decoradores personalizados y plantillas de tipos, lo que permite modelar APIs en dominios de lógica de negocio o lógica de aplicación
  • Ecosistema
    • Con TypeSpec, puedes empaquetar tipos comunes, extensiones de lenguaje, linters y emitters para distribuirlos en NPM dentro de la organización o en todo el ecosistema

Comunidad y colaboración

  • Uso en Microsoft
    • Microsoft está transformando su proceso de desarrollo de API con TypeSpec
    • Muchos servicios de Azure lo han adoptado y su número aumenta todos los días
    • El equipo de Microsoft Graph está aprovechando el potencial de TypeSpec para aumentar la productividad y simplificar la personalización
  • Invitación a participar
    • TypeSpec es más que un lenguaje: es una comunidad
    • Invita a desarrolladores de cualquier perfil a unirse a la beta pública y experimentar personalmente el poder de TypeSpec

Opinión de GN⁺

  • TypeSpec parece un lenguaje de definición de API con un alto nivel de abstracción que podría mejorar de forma innovadora la forma de desarrollar APIs
    • Al soportar un enfoque "API First", debería ayudar a mejorar la eficiencia de desarrollo y la calidad final del producto
    • Se espera que sea aplicable a una amplia gama de escenarios de desarrollo gracias a su soporte para múltiples protocolos, extensibilidad y un ecosistema robusto
  • Sin embargo, la adopción de un lenguaje nuevo siempre implica costos de aprendizaje, por lo que antes de introducirlo en un equipo debería haber capacitación suficiente
    • Es positivo el esfuerzo por reducir la curva de aprendizaje al tomar prestadas la sintaxis de TypeScript y C#
  • Parece necesario aclarar con más nitidez los puntos de diferenciación frente a otros lenguajes de definición de API existentes (Swagger, RAML, API Blueprint, entre otros)
    • Cómo supera las limitaciones de los lenguajes existentes, si la migración es sencilla, etc.
  • El enfoque de dogfooding de usarlo primero dentro de Microsoft y mejorarlo a medida que avanza genera confianza
    • Pero como todavía se publicó hace poco como proyecto de código abierto, su evolución sostenida y el apoyo de la comunidad durante los próximos años serán cruciales
  • La dirección de estandarizar el diseño de API y mejorar su reutilización es correcta, aunque también da la impresión de querer resolver demasiadas cosas al mismo tiempo
    • Sería recomendable priorizar y fortalecer gradualmente las funcionalidades

1 comentarios

 
GN⁺ 2024-05-02
Opinión de Hacker News
  • Si ya estás usando TypeScript para tipar APIs, ts-json-schema-generator, que genera JSON Schema directamente desde TypeScript, podría ser una alternativa
  • Puede parecer que cualquier cosa se ve mejor que el YAML de OpenAPI, pero aun así, OpenAPI sigue siendo uno de los mejores avances
  • Se esperaba que TypeScript fuera el punto de quiebre como lenguaje de esquema, pero TypeSpec parece haber eliminado JavaScript y dejado solo tipado para JSON
  • Encontré TypeSpec para APIs modernas, y como herramienta para describir APIs de forma similar a GraphQL y desarrollar con enfoque de diseño primero; los editores de OpenAPI eran demasiado toscos y hacían confusas las relaciones de datos dentro de la API, mientras que TypeSpec fue de gran ayuda
  • Como lo hizo Microsoft, se estima que será su respuesta a GraphQL, y si se usa internamente, la herramienta podría ser decente en comparación con algo hecho por un consorcio de código abierto
  • Parece una versión de WSDL en TypeScript, aunque no sé si tendrá mayor vida útil que WSDL
  • No encontré el punto clave: qué lenguajes de salida se soportan; parece que no hay otra opción más que exportar a OpenAPI y usar un generador bastante malo
  • Sería ideal poder importar archivos de TypeSpec a TypeScript para obtener tipos automáticamente, pero la generación de código es engorrosa y propensa a errores
  • Se ve como un competidor/alternativa a Smithy, y si aquí hay alguien del equipo de TypeSpec, me gustaría saber cómo se compara
  • Me pregunto si podría convertirse al pipeline de herramientas que uno quiera en YAML
  • Me encantaría tener un IDL de alto nivel que entregue esquemas y generación de stubs para múltiples lenguajes, como el CORBA IDL que ofrecía hace 25 años