Rhombus Language
Syntax, Goals, and Design Intent
- Rhombus aims to keep Racket’s powerful macro tradition while replacing S-expressions with a more familiar, Python/ML-style indentation-based syntax (“shrubbery”).
- The stated goal is not just “nicer syntax” but LISPy macro power in a non-parenthetical surface language; this is positioned as research/exploration rather than an industry-takeover attempt.
- Some want a clearer “Why Rhombus?” story and/or a “killer app”; others say pedagogy and language design research are sufficient justification.
S-expressions, Readability, and Accessibility
- Several commenters welcome an attempt to move beyond “parenthesis-ridden” Lisps, arguing S-exprs are objectively hard to visually parse, especially for beginners.
- Others push back, saying Lisp readability issues are overstated and real difficulty is in unfamiliar vocabulary and abstractions, not parentheses.
- There’s discussion of empathy for syntax-sensitive learners and analogies with accessibility in UI design; BASIC is mentioned as historically beginner-friendly due to simplicity, despite technical flaws.
Relation to Racket, Lisp, and Haskell/ML
- Rhombus is essentially Racket/Scheme underneath, with full access to Racket libraries; some see it as “Python-like Racket,” others as “ML-syntax on a Lisp core.”
- Comparisons to Haskell focus mostly on surface similarities (pattern matching,
::, indentation). Commenters stress it’s strict and impure, so very unlike Haskell semantically. - Prior work on non-S-expression Lisps (Dylan, M-expressions, sweet-expressions, etc.) is cited; Rhombus is seen as a new, more systematic approach.
Macro System and Pattern Matching
- The macro system and enforestation/shrubbery model are highlighted as Rhombus’s main innovation: many core constructs (classes, patterns, operators) are supposedly implementable as library macros.
- Compared to Scala/Rust/Elixir macros, Rhombus is described as significantly more expressive.
- Its pattern-matching with ellipses (
...) draws mixed reactions: powerful and compositional to Racket users, but “too magic” or counterintuitive to others.
Adoption, Ecosystem, and Production Use
- Some question what niche Rhombus fills versus established macro-heavy or typed languages (Scala, Rust, Elixir, OCaml/F#).
- Racket itself is reported in production for CLIs, web, desktop, and even mobile (via SwiftUI integration), but a few complain about weaker libraries compared to mainstream ecosystems.
- Rhombus is dynamically typed; annotations act as runtime contracts rather than HM-style static typing, though related HM experiments exist in the Racket family.