Language itself

The Racket logo

Racket is a dialect of /Scheme, which is a member of Lisp family. The language is dynamically typed, multiparadigm, /FP capable. Racket has an interactive REPL, a cross-platform compiler, even its own IDE, Dr.Racket.

For now, the Racket team is migrating the language’s core to the Chez Scheme so Racket will be pretty fast someday!

Language-Oriented Programming

The core idea behind the language is “Language-Oriented Programming”: you are designing and implementing the domain-specific languages just for every domain you work with! Here is a great talk about LOP: “Lambda World 2019 - Language-Oriented Programming with Racket”".

Also, there is a book “Beautiful Racket” just about the LOP.

Batteries included

The Racket as a platform has a nice set of “batteries”. For example, a really great set of libraries to work with graphics/animations/games. Here is a talk about this aspect: “big-bang: the world, universe, and network in the programming language”. I have played with this stuff myself: made some pieces of generative art. You can take a look at them here.

Another thing in Racket world I played with is /Pollen: my recursive.one site was made using it.


Notable packages

  • infix, an infix notation as an eDSL.
  • syntax/parse, “a framework for writing macros and processing syntax”, helps to define macros with very descriptive error reporting.
  • racket-gui-easy, a neat wrapper around Racket’s own /GUI library. It uses the concept of observables those look very similar to /Clojure’s atoms.


Need to play with

  • racket-sdl2, a bindings to the [libsdl2(https://libsdl.org/)