Source linked

Rhombus v1.0 Naves: Racket con sintaxis y extensión que importa

blog.racket-lang.org@brave_hedgehog3 hours ago·Developer Tools·3 comments

Rhombus 1.0 proporciona el poder macro de Racket en una sintaxis convencional, con un nuevo sistema de clases, ajuste de patrones pervasivo y notación de arbustos para la metaprogramación.

racketrhombusprogramming languagesmacro systemsopen sourcelisp

Rhombus 1.0 hit the registry today, and it's not just Racket with new parentheses - it's a full rebundling of the Racket ecosystem into a language that finally makes macro extensibility accessible without the Lisp syntax penalty.

Why Rhombus Isn't Just Racket Without S-Expressions

The FAQ puts it bluntly: Rhombus is to Racket what Elixir is to Erlang or Kotlin is to Java. Start a module with #lang rhombus instead of #lang racket and you get the same macro engine but with a conventional, non-homoiconic syntax. That trade-off matters because Lisp's parenthesis-oriented notation has been a barrier for the very people who'd benefit most from its macro system.

But syntax is only half the story. Rhombus ships with better predefined data structures (especially lists), a new class system, pervasive pattern matching, and "extensible static information" - a point on the spectrum between contracts and types. These aren't cosmetic; they're fundamental improvements that were co-designed with the new syntax. The team says language-syntax codesign produced a whole greater than the sum of its parts.

The Bicameral Syntax and Shrubbery Notation

"Hello, fellow Lisper!" - the FAQ knows its audience. Rhombus uses a bicameral syntax where the S-expression layer is replaced by shrubbery notation. That's the analog to the classic Lisp reader, but it's designed for macros and metaprogramming without forcing you to read and write nested parentheses all day. There's even a metacircular interpreter in shrubbery notation to prove the point.

Nineteen contributors built this release, including Matthew Flatt, Robert Bruce Findler, and a dozen others from the Racket core team. They've published benchmarks at rhombus-lang.org and the full FAQ spells out the rationale: extensibility is the big differentiator, and Rhombus makes Racket's state-of-the-art facilities more consistent and accessible to a wide audience.

What's Under the Hood: Ellipses, Data Structures, and the Toolchain

Compact repetitions using ellipses (...) and a default set of functional data structures with good asymptotic complexity are in the base language. The class system is new. Pattern matching is pervasive - not bolted on. And the hierarchical namespace organization cleans up what #lang racket inherited from Scheme's flat module system.

You can use DrRacket, Magic Racket for VSCode, or Emacs with Racket mode. The raco command-line suite works as expected. Rhombus is simply Racket, but with a different syntax and a deliberately improved set of defaults. The goal isn't to replace Racket; it's to push Racket's multi-language capabilities forward and enable more dialects built on both Rhombus and Racket.

Rhombus 1.0 is available now at rhombus-lang.org. If you've ever wanted Racket's macro system without the Lisp syntax, this is the language that finally delivers on that promise.


Source: Rhombus v1.0: A Racket flavored language with syntax
Domain: blog.racket-lang.org

Read original source ->

External source stays available while the OJO article and comment thread stay local.

Comments load interactively on the live page.