Além de Zig e Rust: Uma Abordagem Mais Amigável para Metaprogramação
Este artigo explora um novo design de linguagem de programação que combina os pontos fortes do sistema de tipos Hindley-Milner do Rust e as capacidades de tempo de compilação do Zig, evitando ao mesmo tempo as complexidades da abordagem 'tipos como valores' do Zig. Ao introduzir o operador `@` para execução em tempo de compilação, o tipo `Abstract` para abstrações em tempo de compilação, os tipos `TypeInfo` e `Field` para introspecção de tipos e as funções `Code` e `parse` para manipulação de código, este design alcança poderosas capacidades de metaprogramação, como geração automática de código e a implementação de tipos utilitários semelhantes ao TypeScript, como `Partial`, mantendo a legibilidade do código e a facilidade de raciocínio. Isso representa uma nova abordagem para alcançar metaprogramação poderosa enquanto preserva a facilidade de uso do sistema de tipos, oferecendo novas perspectivas para o design de linguagens futuras.