HN
Today

Hoot: Scheme on WebAssembly

Hoot brings Scheme to the web browser via WebAssembly, leveraging Guile for a full-featured, self-contained toolchain. This announcement sparks interest among Lisp enthusiasts, eager to explore Scheme's potential in modern web environments. The discussion quickly pivots to a lively debate comparing Guile's developer experience, particularly its debugging and tooling, against alternatives like Racket.

56
Score
11
Comments
#2
Highest Rank
10h
on Front Page
First Seen
Feb 7, 1:00 PM
Last Seen
Feb 7, 10:00 PM
Rank Over Time
2434523477

The Lowdown

Hoot is a project by the Spritely Institute designed to bridge the gap between the venerable Scheme programming language and the modern WebAssembly (Wasm) ecosystem. It provides a robust solution for running Scheme code directly in Wasm GC-capable web browsers, aiming to unlock new possibilities for interactive web applications.

  • Hoot compiles Scheme code to WebAssembly, enabling execution in compatible web browsers.
  • It is built upon Guile, GNU's extensible Scheme implementation, requiring no additional dependencies.
  • The project includes a self-contained Wasm toolchain and a Wasm interpreter for testing Hoot binaries within the Guile REPL.
  • The Spritely Institute highlights Hoot's utility for building interactive web pages and demonstrates its low-level Wasm tooling through examples like "Wireworld."

Hoot represents a significant effort to bring the power and flexibility of Scheme to the browser, offering a novel approach for developers looking to explore functional programming paradigms in web development.

The Gossip

Guile's Grumbles and Glories

Many commenters express appreciation for Hoot's concept but voice reservations about its reliance on Guile, particularly citing a difficult debugging experience in recent versions and perceived shortcomings in documentation and onboarding. They often contrast Guile with Racket, which is lauded for its superior debugging tools and integrated development environment, reminiscent of classic Lisp systems. Conversely, Guile is defended for its rich library ecosystem, integration with Guix for reproducible builds, and advanced concurrency features like fibers and futures, while acknowledging existing debugging challenges.

Wasm's Wider Reach

Commenters are keen to understand Hoot's broader applicability within the WebAssembly ecosystem. A key question raised is its compatibility with serverless platforms like Cloudflare Workers, indicating interest in leveraging Hoot beyond client-side browser execution for diverse Wasm deployment scenarios.