Criticisms of Racket
Jun 2025 - Alex Alejandre

Matthew Butterick, esteemed member of the community and author of its best textbook Beautiful Racket sadly quit (but seems back to evangelizing the language). Leonardo Facchinetti did too:

Spritely migrated from Racket to Guile too. I asked two members about this:

Spritely … moved away as Racket became more focused on Rhombus and other things and didn’t feel particularly aligned to Spritely’s long-term vision. Racket tends to favor academics and educational use-cases whereas Guile has more of a focus on real-world production usage. The Guile community, including the Guile maintainers, are more receptive to the object capability security paradigm. Guile has a better REPL-driven development story and notably has Guix as a sort of flagship project which Christine and I have been users/developers of for years before Spritely. Andy Wingo’s compiler engineering is another factor since he’s applied a lot of techniques that production JavaScript engines use to Guile, and is now working on a state-of-the-art garbage collector. IMO Guile is the best Scheme overall, though other implementations have their advantages over Guile in certain areas. Hope this helps! — David Thompsen

We pivoted to Guile because:

  • Guile was more easily debuggable
  • Guile’s community aligns with ours a lot (esp with Guix etc)
  • Racket’s future, language-wise, was kind of unclear with Rhombus. It was clear s-expressions would be “supported” but not if they were the future of the language, and it wasn’t clear what effects this would have on Racket, and we needed stability
  • Guile is way more performant, and way less memory usage

— Christine Lemmer-Webber

The Rhombus effort really hurt enthusiasm among the core Lisp audience and some messaging validated fears for Racket’s future and made some leave.


I do not understand criticisms of the packaging system etc. as Racket tooling seems miles ahead of more popular languages like Java and Python. Guile’s competitive performance sounds awesome though!

Unfortunately, the motivated, contributing Racket community is small and a single person shines brightly.

Matthias behaves this way consistently, is unapologetic for it, and when pressed will explain that his “challenging behavior” (i.e. abuse) is some kind of test of your ideas, your willpower, or your capacity for success. — parenwielder

His temper is a hazard I (personally) am willing to weather in exchange for learning from someone with his level of passion, dedication to teaching, dedication to research, experience both in academia and industry, breadth and depth of knowledge, first-hand history, et cetera. — a5c11

if the prof let the lazy student be lazy and silently condemn them to mediocrity, nobody would raise a peep and everyone would be fine. It’s only when the prof cares about to go take a personal risk to try to get through to the student (which they would only care to do because they care about the student) can someone complain — xyzelement

Felleisen offends many modern people. He nobly tries to maintain “free speech” and “keep out politics”, but definitions, sensibilities, mores change, what was once political is now mere decency to many. With time, we eat our elders, kill our heroes. I understand both sides and wish there were an amiable path. I choose the “politics” example, because culture war assumptions seem to have taken over, when the original statement revolved around “parentheses aren’t scary, we don’t need to hide them!” This is a problem our whole civilization is wrestling with. Anyway, the broader context is that leadership and development effort’s focussed on Rhombus, to satisfy people outside of the community:

it feels like a marketing driven effort vs. an engineering driven effort i.e. prioritizing psychological appeasement over technical excellence … owith the hope that people who rejected Racket previously will now respect us for bending over backward to accommodate them, and join us — Brian Adkins

I largely agree with these fears but understand the opposite view. Racket can support Rhombus and improve its DSL-build abilities, improving the overall experience without harming traditional Lispers. I believe weaknesses lie less in the language than community/materials, but e.g. Bodgan Popa is building out the web experience. The Rhombus effort is something greater:

If Racket can demonstrate and provide a practical solution for taking random code (e.g. by adding #lang r4rs as the first line of a file), and having the semantics just work, then that would be game changing beyond the wildest dreams of even the most cynical academics. This couldn’t happen without a monumental effort to provide facilities for capturing language semantics in a meaningful way beyond simple syntax. … The real challenge (it seems) is to provide a tool that makes it possible to translate the semantics of one language to another in a way that is consistent, understandable, and ideally, performant. … I can appreciate why Matthew might like to consider alternate direction after having spent the last 2 years working on performance optimizations and semantics translation. However, I wonder whether the knowledge gained as a result is equally valuable. Could it be implemented into Racket itself? Said another way, can we have #lang common-lisp with all the syntax, working as a Lisp-2, and have a performant implementation of unwind-protect that can be used in #lang r4rs with-extended-semantics? — Tom Gillespie

wonder whether Racket is now ideally poised to act as the bridge for the infinite and as yet unimagined syntaxes of the future and the enormous variety of existing runtimes — Tom Gillespie

I feel that Racket is the best Scheme and DSL builder we have and it makes little sense to throw out the baby with the bathwater and waste a decade rebuilding what we already have. But:

how I personally feel is irrelevant if enough other folks start looking around for lispier pastures :( — Brian Atkins