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.