Need information on Racket language

Next month is the Summer of Sexps, which will feature Racket. I probably won’t have time to do an introduction video beforehand, but we will do the monthly introduction video. For that, I usually do write up a script for the actual introduction video and then use its contents. This time though, I’m severely limited in my time, so I was wondering if perhaps anybody could give me a starting point? Of course, you don’t need to write the actual contents and I can probably fairly quickly write up the “history” part of it, but the “Why it’s great” and “Standout features” sections are harder for me.

Thanks in advance!

Maybe the following are useful?


Not entirely related, but still:

I would be entirely OK with dropping the history and names-of-the-original-authors parts. A programming language’s history is very likely to be

  • wrong, or
  • uninteresting, or
  • too long for the introductory video.

Also, it is very likely to be irrelevant to a novice.

Some articles:

I might not have been clear in what I was asking for, sorry. What I meant was something along the line of (this is Rust’s introduction):

Why it’s great

  • Safe, both memory-safety and thread-safety via ownership and lifetimes. It is possible to write “unsafe” code. Immutable by default
  • Powerful type system, catching many bugs at compile time (especially memory-related). Compiler outputs really helpful errors
  • Fast, partly due to minimal core and standard library
  • All batteries included: compiler, build tool, formatter, package manager, IDE integrations
  • Lovely documentation (there is even a massive document on how the compiler works)
  • Portable: compiles to single, static binary and does not require runtime to be installed
  • Easy interop with C code

Standout features

  • Zero-cost abstractions: high-level, functional code performs just as well
  • Fearless concurrency
  • Macros

So basically a couple of one-liners.

I see, I thought you were looking for articles to synthesize yourself.

My attempt:

Why it’s great

  • Simple, expressive syntax that’s both ideal for beginners and powerful in the hands of experts
  • Supports many programming paradigms: functional programming, object-oriented programming, design by contract, logic programming, metaprogramming, parallelism and concurrency…
  • Pretty fast, especially compared to other languages in the Lisp/Scheme family
  • A comprehensive standard library
  • Comes with DrRacket, a complete IDE designed for learning and exploration with a minimum of hassle, but also works with any editor that supports the Language Server Protocol
  • Excellent documentation with plenty of background information and examples

Standout features

  • Designed to support language-oriented programming and writing domain-specific languages
  • Provides dialects that extend the base language in various useful ways, like the Student Languages (with extra debugging support for learners), Typed Racket (with gradual static typing), Rosette (a logic programming language) and Scribble (a rich documentation tool)
  • Includes a powerful hygienic macro system
1 Like

I would stretch that a bit and include the dialects that are made to learn racket in a step-by-step manner that was designed to ease students into the language.
It will gently guide you from a few keywords to learn the complete language. First and foremost the “How to Design Programs” Teaching languages .

I have written a complete multiplayer game that works with a GUI and a game server in a couple of weeks with the included tools and tutorials.