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.