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 via require.
  • 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.