6 pontos por GN⁺ 2024-05-02 | 1 comentários | Compartilhar no WhatsApp
  • O TypeSpec é uma nova linguagem para desenvolvimento orientado a API, projetada para atender às necessidades de desenvolvedores, designers e gerentes de API
    • Foi desenvolvido em um contexto no qual se torna cada vez mais complexo e importante oferecer APIs e experiências de API consistentes de alta qualidade
    • O TypeSpec não é apenas uma linguagem simples; é uma plataforma que permite abstração, incentiva reutilização de código e usa ferramentas modernas para permitir um desenvolvimento ágil

Principais características do TypeSpec

  • Interoperabilidade
    • O TypeSpec não é apenas uma linguagem de descrição de API, mas uma linguagem de definição de alto nível capaz de definir APIs e emitir simultaneamente vários protocolos, clientes, servidores e documentos
    • É interoperável com linguagens padrão da indústria para definição de API, reduzindo a lacuna entre diferentes alternativas
  • Produtividade
    • O TypeSpec oferece uma ótima experiência de desenvolvedor ao tornar o processo de dados e definição de API agradável e produtivo
    • A linguagem é concisa e permite definir dados e formatos de API complexos com o mínimo de entrada possível
  • Padrões de API
    • O TypeSpec melhora a qualidade de API encapsulando componentes reutilizáveis de alto nível, como tipos de dados, padrões de API e diretrizes, que podem ser compartilhados em todo o time ou ecossistema
  • Familiaridade
    • O TypeSpec é inspirado em TypeScript e C#, então é fácil de aprender e familiar para muitos desenvolvedores
  • Extensibilidade
    • O TypeSpec pode ser expandido com vocabulário de decoradores personalizados e templates de tipos, permitindo modelar APIs em domínios de lógica de negócio ou aplicação
  • Ecossistema
    • Com TypeSpec, é possível empacotar tipos comuns, extensões de linguagem, linter e emitters e distribuí-los no NPM em toda a organização ou ecossistema

Comunidade e colaboração

  • Em uso na Microsoft
    • A Microsoft está usando o TypeSpec para revolucionar seu processo de desenvolvimento de API
    • Muitos serviços da Azure adotaram o TypeSpec, e esse número aumenta diariamente
    • O time do Microsoft Graph está aproveitando o potencial do TypeSpec para aumentar a produtividade e simplificar a personalização
  • Convite à participação
    • O TypeSpec é mais que uma linguagem: é uma comunidade
    • Convida desenvolvedores de todas as formações a participar da beta pública para experimentar em primeira mão o potencial do TypeSpec

Opinião do GN⁺

  • O TypeSpec parece ser uma linguagem de definição de API de alto nível de abstração que tem potencial para melhorar de forma inovadora a forma de desenvolver APIs
    • O suporte à abordagem "API First" deve ajudar a aumentar a eficiência de desenvolvimento e a qualidade do produto final
    • Devido ao suporte a múltiplos protocolos, extensibilidade e ecossistema robusto, espera-se que seja aplicável em uma ampla gama de cenários de desenvolvimento
  • No entanto, como a adoção de uma nova linguagem sempre gera custo de aprendizado, deve haver capacitação adequada antes da adoção no time
    • É positivo que tenham se esforçado para reduzir a curva de aprendizado ao adotar sintaxe de TypeScript e C#
  • Parece necessário deixar mais claros os diferenciais frente a linguagens de definição de API com papéis semelhantes, como Swagger, RAML e API Blueprint
    • Como ela supera limitações de linguagens existentes, se a migração é simples e assim por diante
  • A prática de uso interno na Microsoft para melhora contínua passa confiança
    • Porém, como ainda foi aberta como projeto open source há pouco tempo, a continuidade de evolução e o suporte da comunidade nos próximos anos se tornarão críticos
  • A direção de padronizar o desenho de API e elevar a reutilização é correta, mas passa a impressão de que tenta resolver demais de uma vez
    • Seria melhor fortalecer os recursos de forma progressiva, com priorização

1 comentários

 
GN⁺ 2024-05-02
Comentários do Hacker News
  • Se você já usa TypeScript para tipagem de API, o ts-json-schema-generator, que gera JSON Schema diretamente a partir do TypeScript, pode ser uma alternativa.
  • Em comparação ao YAML do OpenAPI, qualquer coisa parece melhor, mas ainda assim o OpenAPI é visto como um dos maiores avanços.
  • Esperava-se que o TypeScript abrisse caminho como linguagem de schema, mas o TypeSpec parece ter removido o JavaScript e deixado apenas tipagem para JSON.
  • Ao usar o TypeSpec para APIs modernas, encontrei uma ferramenta para descrever APIs e desenvolver de forma design-first semelhante ao GraphQL; enquanto os editores de OpenAPI são muito rudes e tornam pouco claras as relações de dados dentro da API, o TypeSpec foi uma grande ajuda.
  • Como é feito pela Microsoft, imagino que seja a resposta deles para o GraphQL; se é usado internamente, a ferramenta pode ser boa se comparada às de um consórcio de código aberto.
  • Parece uma versão de TypeScript do WSDL, mas não sei se vai durar mais do que o WSDL.
  • Não consegui encontrar a principal dúvida sobre quais linguagens de saída são suportadas, e fora de exportar para OpenAPI e usar geradores ruins, não parece haver alternativa.
  • Seria ótimo poder importar um arquivo TypeSpec para TypeScript e obter tipos automaticamente, mas geração de código é chata e propensa a erros.
  • Parece um concorrente/alternativa ao Smithy, e se alguém da equipe do TypeSpec estiver por aqui, gostaria de ouvir como ele se compara.
  • Fico curioso se isso pode ser convertido para uma cadeia de ferramentas com foco em YAML.
  • Faria bem ter uma IDL de alto nível que forneça schema e geração de stubs para múltiplas linguagens, como a CORBA IDL fazia há 25 anos.