Racket Language
Overall sentiment & use cases
- Many commenters like Racket as a practical, well-engineered Lisp with strong tooling, docs, and cross‑platform GUI support.
- Concrete uses mentioned: e‑commerce site, native macOS/iOS app, Kafka desktop client, web services, parsing (JSON/XML/text), internal tools, and educational software.
- Others feel Racket (and some LISPs) are “academic” and more suited to learning, AoC‑style puzzles, and PL research than to “weekend web apps” or industry work.
REPL, workflow, and tooling
- DrRacket’s REPL is criticized as “bad” because it resets state on Run; this is intentional for beginners.
- Experienced users often avoid DrRacket, using Emacs, Vim/Neovim (vim‑slime, Conjure) or editor+shell workflows closer to Common Lisp/SLIME.
- Racket deliberately discourages a stateful top‑level; “the top level is hopeless” is a community slogan due to macro/semantics issues.
- Some report REPL/startup as slow; others say performance is fine if the installation is set up correctly, uses
racket/base, or precompilation.
Academic vs practical & teaching debates
- Strong split: some praise Racket/How to Design Programs as excellent for teaching problem decomposition and recursion; others say starting with Racket left students unprepared for loops, mutation, and imperative data structures in later courses.
- Disagreement over whether universities should prioritize “job readiness” vs foundational thinking; several argue Racket is superb for the latter.
Language features, #lang system, and types
- Racket’s #lang mechanism lets each module choose a language (e.g.,
racket,typed/racket,scribble/base,racket/gui), which can interoperate viarequire. - Newcomers find the proliferation of “languages” confusing and want clearer examples of combining them in one application.
- Typed Racket’s gradual typing and powerful macros are highlighted as major strengths; macro system seen as saner than CL’s by some, weirder by others.
GUI, docs, and ecosystem
- Racket’s GUI toolkit is praised as one of the more straightforward cross‑platform native options (GTK, Win32, Cocoa), with higher‑level helpers like
gui-easy. - Others report hitting limitations and bugs for complex GUIs, especially with pasteboard/canvas, and note sparse community usage outside DrRacket.
- Documentation tools (Scribble, Pollen) and integrated package docs are widely liked, though some find many package docs terse or uneven.
Adoption, community, and comparisons
- Racket lauded for backwards compatibility, concurrency model, and packaging; criticized for small community and lack of a “killer app” driving industry demand.
- Comparisons:
- Common Lisp seen as more “industrial,” with a superior REPL/monkey‑patching and CLOS; Racket seen as more correctness‑ and semantics‑driven.
- Clojure praised for JVM ecosystem but criticized for compromises imposed by the JVM.
- Community generally described as friendly, though one linked interpersonal conflict around a core academic figure is noted; others downplay it as non‑representative.
- Several argue niche languages need a “halo product” (like Emacs for Emacs Lisp or the browser for JavaScript); Racket currently lacks such a driver.