Racket v9.0

Perceived Role and Adoption

  • Many see Racket primarily as an academic / research / teaching language rather than an industry workhorse.
  • Some commenters say students almost never use it after university, interpreting that as evidence it’s niche.
  • Others counter that grads often don’t control tech choices at work, and that “seeds” planted by Racket lead later to broader PL/FP interest.
  • Racket’s “language construction kit” identity is highlighted: a meta-language for building other languages, including non-Lisp syntaxes.

Educational Use and Impact

  • Widely used in intro CS courses (e.g., HTDP/CS135). Students are polarized: some love the systematic “design recipe,” others resent it and the unfamiliar Lisp syntax.
  • Personal stories emphasize how Racket/DrScheme shifted thinking about recursion, immutability, interpreters, and PL theory, often appreciated only years later.
  • Racket is also presented as approachable even for kids; one video of a child using Racket impressed multiple readers.

Real-World and Hobby Use Cases

  • Examples include: email-reply bots, Moodle backup cleaners, C macro processors, GUI tools, math games, static site generators, option-trading systems, and DSLs (e.g., Age of Empires II map scripts).
  • Cloudflare’s Topaz policy engine and earlier use in game studios are cited as non-academic cases.
  • Some still perceive a “downward spiral” of low adoption: people don’t choose it because others don’t.

Language Features, Performance, and Comparisons

  • Praised for: strong module system, sane semantics (no implicit coercions), default immutability, good macro system, delimited continuations, and language-extensibility.
  • Complaints include verbose struct syntax and “eye-bleed” from identifiers; Rhombus is mentioned as a possible remedy.
  • One person found Racket “slow and heavy”; several others present benchmarks showing Racket generally much faster than Python and in the Java ballpark, noting DrRacket’s debug mode can dramatically slow programs.
  • Typed Racket’s guarantees vs SBCL’s more trust-based annotations are contrasted.

Concurrency and v9.0 Parallel Threads

  • Parallel threads on multiple cores are seen as the major v9.0 feature, making Racket more viable for performance-sensitive work.
  • Some argue adding this so late undermines claims of “mature/polished”; others respond that the multi-year Chez Scheme rehost was a careful refactor that preserved APIs and demonstrates maturity.
  • Prior “places” were considered powerful but awkward for sending functions; commenters hope the new model is more practical.

Tooling and Lisp Choice

  • DrRacket divides opinion: some find it clunky; others note unique strengths like the macro stepper. Many prefer Emacs, VS Code, or Vim via LSP.
  • For “which Lisp to use,” no consensus: recommendations depend on needs—Clojure for JVM/web, SBCL/Common Lisp for native performance, Racket/Guile for language design and teaching, Janet/Babashka for scripting, LFE for Erlang-style concurrency.