A multi-language veteran argues GNU Guile Scheme beats Haskell for prototyping due to interactive REPL workflows, hygienic macros, and lower abstraction overhead.
Key Takeaways
Haskell’s IO monad forces refactoring to add a print statement; Scheme lets you drop (write ...) anywhere for instant inspection.
Haskell’s Hackage ecosystem fragments into dozens of incompatible DSLs (Parsec, Servant, xml libs) each with its own learning curve; Scheme’s macro system unifies extension.
Guile’s REPL with Emacs/Arei allows live function redefinition in running processes, including production, eliminating edit-compile-run cycles.
Template Haskell metaprogramming requires language extensions and a complex AST API; Scheme define-syntax macros reshape syntax with minimal boilerplate.
Author concedes Scheme lacks JVM-scale batteries-included ecosystem and Haskell’s optimizing compiler, framing both as trade-offs rather than defects.
Hacker News Comment Review
Commenters immediately noted Clojure as the obvious synthesis: Lisp ergonomics plus JVM ecosystem, which the author conspicuously avoids endorsing.
Practical live-debugging claims drew scrutiny: hot-patching in production is well-documented in Common Lisp but commenters found it unclear how available it is in Racket or Guile specifically.
A commenter flagged structural similarity to a 2012 HN post titled “Why I prefer Scheme to Haskell,” raising mild plagiarism concern without resolution.
Notable Comments
@evdubs: Wrote substantial Racket code across multiple repos and never needed a macro, questioning how central macros really are day-to-day.
@wild_egg: Suggests Coalton as a direct alternative for Lisp developers who want Haskell-style types without leaving the Lisp world.