Show HN: Wyzer Programming Language
Uma nova linguagem de sistemas inspirada em Rust, chamada Wyzer, está chamando atenção por tentar unificar regras de ownership para memória, threads e redes usando tipos lineares/afins, reference counting no estilo Perceus e “programação coreográfica” para gerar código distribuído. Os comentadores estão intrigados com a promessa de programas multinó sem deadlock e sem GC, mas observam repetidamente que o README e o site atuais escondem ou omitem exemplos concretos dessas ideias centrais, fazendo a linguagem parecer “Rust sem borrow checker”. Muitos veem forte potencial — especialmente dada a pouca idade do autor —, mas argumentam que ainda é cedo para adoção em produção até haver documentação mais clara, exemplos realistas de sistemas distribuídos e intensivos em memória, e tratamento explícito de trade-offs como desempenho do reference counting e tratamento de ciclos.
Recepção geral
- Muitos acham a ideia e a ambição impressionantes, especialmente dada a idade do autor, e gostam do tom claro, não escrito por IA.
- Outros veem como “apenas mais uma linguagem parecida com Rust” e são céticos de que vá se tornar mais do que um projeto pessoal.
- Várias pessoas dizem explicitamente que o conceito de coreografia é genuinamente interessante quando conseguem entender melhor.
Sintaxe e documentação
- A sintaxe é amplamente descrita como conservadora e familiar (parecida com C/Java/TypeScript/Rust), o que muitos veem de forma positiva.
- Vários კომენტadores criticam o README e o site por esconderem as ideias novas (programação coreográfica, modelo de memória no estilo Perceus) atrás de sintaxe básica e arquivos markdown espalhados.
- Pedidos por:
- Mais exemplos, e melhor organizados (especialmente programas não triviais, estruturas de dados e casos distribuídos).
- Um diretório
examples/. - Um README de cima para baixo que comece pelos recursos exclusivos.
- Alguns links (site de docs) estão quebrados ou “em desenvolvimento” no momento, o que frustra os primeiros adotantes.
Programação coreográfica
- Várias pessoas não conseguem encontrar exemplos concretos no repositório; os testes disponíveis são descritos como triviais.
- Depois de explicada no fio, a coreografia é apresentada como:
- Uma forma de alto nível de especificar passos globais de comunicação (envio+recebimento como uma única construção atômica).
- Compiladores “projetam” isso em código de endpoint, dando liberdade de deadlock por construção para os programas compilados.
- Dúvidas levantadas:
- Como a liberdade de deadlock é garantida na prática, especialmente em sistemas distribuídos complexos.
- Comparações com session types, linguagens MPI/PGAS, compiladores conscientes de arquitetura e “server functions” em frameworks web modernos.
- Como distinguir chamadas locais de remotas e lidar com latência/timeouts.
Modelo de memória e desempenho
- Wyzer usa ideias lineares/afins junto com reference counting no estilo Perceus; é apresentado como “segurança de memória sem GC por tracing”.
- Comentadores perguntam:
- Como ciclos são tratados (vazamentos, coletores de ciclos ou restrições de tipos).
- Se múltiplos owners causam problemas sutis de desempenho.
- Um subfio considerável debate se garbage collection é inerentemente mais lenta/menos previsível, com argumentos nuançados sobre diferentes designs de GC.
Maturidade e posicionamento do projeto
- Alguns sugerem que o projeto foi mostrado cedo demais; a documentação principal, exemplos distribuídos e programas realistas ainda estão faltando.
- Sugestões incluem enfatizar:
- A “regra de propriedade única” (memória/threads/redes), mas também esclarecer seus limites.
- Casos concretos em que Wyzer detecta ou previne problemas além do que Rust ou outros sistemas fazem.