Show HN: Wyzer Programming Language

A new Rust-inspired systems language called Wyzer is drawing attention for its attempt to unify ownership rules across memory, threads, and networks using linear/affine types, Perceus-style reference counting, and “choreographic programming” to generate distributed code. Commenters are intrigued by the promise of deadlock-free, GC-free, multi-node programs, but repeatedly note that the current README and website bury or omit concrete examples of these core ideas, making the language look like “Rust without a borrow checker.” Many see strong potential — especially given the author’s young age — but argue it’s too early for prime-time adoption until there are clearer docs, realistic distributed and memory-heavy examples, and explicit treatment of trade-offs such as reference-counting performance and cycle handling.

Overall reception

  • Many find the idea and ambition impressive, especially given the author’s age, and like the clear, non-AI-written tone.
  • Others see it as “just another Rust-like language” and are skeptical it will become more than a personal project.
  • Several people explicitly say the choreography concept is genuinely interesting once they dig for it.

Syntax and documentation

  • Syntax is widely described as conservative and familiar (C/Java/TypeScript/Rust-like), which many view positively.
  • Multiple commenters criticize the README and site for burying the novel ideas (choreographic programming, Perceus-style memory model) behind basic syntax and scattered markdown files.
  • Requests for:
    • More and better-organized examples (especially non-trivial programs, data structures, and distributed cases).
    • An examples/ directory.
    • A top-down README that leads with the unique features.
  • Some links (docs site) are currently broken or “under development,” which frustrates early adopters.

Choreographic programming

  • Several people cannot find any concrete examples in the repo; available tests are described as trivial.
  • Once explained in-thread, choreography is framed as:
    • A high-level way to specify global communication steps (send+receive as one atomic construct).
    • Compilers “project” these into endpoint code, giving deadlock freedom by construction for the compiled programs.
  • Questions raised:
    • How deadlock freedom is guaranteed in practice, especially for complex distributed systems.
    • Comparisons with session types, MPI/PGAS languages, architecturally-aware compilers, and “server functions” in modern web frameworks.
    • How to distinguish local vs. remote calls and handle latency/timeouts.

Memory model and performance

  • Wyzer uses linear/affine ideas plus Perceus-style reference counting; pitched as “memory safety without tracing GC.”
  • Commenters ask:
    • How cycles are handled (leaks, cycle collectors, or type restrictions).
    • Whether multiple owners cause subtle performance issues.
  • A substantial sub-thread debates whether garbage collection is inherently slower/less predictable, with nuanced arguments about different GC designs.

Project maturity and positioning

  • Some suggest the project was shown too early; core docs, distributed examples, and realistic programs are still missing.
  • Suggestions include emphasizing:
    • The “one ownership rule” (memory/threads/networks) but also clarifying its limits.
    • Concrete cases where Wyzer catches or prevents issues beyond what Rust or other systems do.