HN
Today

Show HN: Wyzer Programming Language

Wyzer is a new programming language aiming to surpass Rust by offering distributed safety and simpler memory management through choreographic programming and a Perceus memory model. Its ambitious goal is to unify memory, thread, and network safety under a single ownership rule, promising Rust's guarantees without the steep learning curve. Hacker News found it intriguing for its innovative approach, sparking significant debate on its ambitious claims, documentation clarity, and the feasibility of its core ideas.

109
Score
58
Comments
#3
Highest Rank
15h
on Front Page
First Seen
Aug 7, 2:00 PM
Last Seen
Aug 8, 4:00 AM
Rank Over Time
4337617222325272022232527

The Lowdown

Wyzer is a new statically typed, compiled programming language presented on Hacker News, aiming to tackle complex safety issues that existing languages like Rust don't fully address. Developed out of frustration with Rust's limitations in distributed systems, Wyzer proposes a unified approach to safety across memory, concurrency, and networks.

  • Distributed Safety via Choreography: Wyzer's core innovation lies in choreographic programming, which aims to prevent distributed deadlocks, protocol mismatches, and cross-service correctness issues by defining system-wide interactions at a high level, then deriving code for individual participants.
  • Perceus Memory Model: For memory management, Wyzer employs Perceus reference counting, aiming for performance comparable to C without a garbage collector or the complexity of Rust's borrow checker and lifetimes. It suggests a simpler model for tooling like Language Server Protocols (LSPs).
  • Unified Ownership Principle: The language is built around a single, consistent ownership rule intended to govern memory, thread, and network resources, simplifying the mental model for developers.
  • Rust Comparison and Learning Curve: Wyzer positions itself as an alternative offering Rust's safety guarantees but with a gentler learning curve, asserting that its model avoids the common difficulties associated with Rust's strict type system.
  • Early Stage and AI Assistance: The project is in early research and development (v0.1.0 upcoming), actively seeking contributions. The author openly notes the use of AI for commit messages, research, and branding.

While still in its nascent stages, Wyzer presents an ambitious vision for a safer, more predictable programming paradigm, particularly for distributed systems. Its integration of academic concepts into a general-purpose language generated considerable interest and scrutiny from the HN community, eager to see if its grand promises can be delivered.

The Gossip

Documenting the Distributed Details

Many commenters criticized the project's documentation and examples for not adequately showcasing its core innovations, particularly choreographic programming and the Perceus memory model. They felt the README focused too much on basic syntax, hiding the truly novel aspects in other files or requiring extensive digging. The author acknowledged this feedback, committing to restructuring the documentation to lead with the unique features.

Choreographic Conundrums

The concept of choreographic programming and its promise to prevent distributed deadlocks sparked intense interest and questions. Commenters sought clarity on how such guarantees are made, drawing comparisons to Rust's memory safety model where invalid programs are rejected. Explanations emerged that described choreography as defining a global protocol where communication is inherently synchronized, thus preventing accidental deadlocks.

Memory Model Musings & GC Grumbles

The Perceus memory model, described as reference counting, led to a discussion about its implications for performance and safety, especially when compared to traditional garbage collectors and Rust's borrow checker. One commenter strongly refuted the generalization that GCs are universally slower than C++, detailing the nuances of different GC algorithms. Another commenter raised critical questions about how Perceus handles cycles with mutable data, which is a known challenge for reference counting.

Youthful Vision, Ambitious Undertakings

A few comments highlighted the surprising fact that the author is a 14-year-old, having started programming at 8. This revelation led to expressions of admiration and mild incredulity about the complexity and ambition of the project. While not a technical theme, it added a unique human element to the discussion, emphasizing the remarkable dedication behind Wyzer.