2018 Racket Reading Group
Happy 2018!
Every year it is good to start something new and particularly something outside of your current wheel house. This year I am organizing a reading group to learn about the Racket programming language.
Why Racket?
The main reason to choose Racket is to learn to think differently about computation. In my day job, we spend a large amount of time writing Typescript and Javascript using frameworks that help us deliver large single-page applications. When a framework does a lot for you it can make programming feel magical and not always in a good way. Racket removes the familiarity of a syntax we know so that we can focus on what is happening.
Our book club will be reading through Realm of Racket and parts of How to Design Programs. Realm of Racket is particularly interesting because its goal is to introduce Racket programming through the development of small games. It quickly introduces concepts that are more familiar from the day-to-day languages which helps developers make relevant connections and to strengthen mental models. How to Design Programs is important for teaching skills necessary to break down problems. As a group, we will figure out how to best pick concepts from that book for studying.
Finally, Lisps have a long history and are still practical today. Lisps are powerful because of their simplicity and their extensibility with mechanisms like macros. Once a Lisp is understood it is easy to jump to other powerful languages like Clojure, Clojurescript, and Elisp.
Why not something else?
There are many languages that could be a ton of fun to learn. A main consideration for choosing Racket is that (most) batteries are included. When I’m learning a language it helps in the beginning to not become encumbered with setup and installation as it detracts from the actual learning. Secondly, documentation in Racket is amazing. It is easy to navigate and it is clearly written.
Why not a language with strong static types? Haskell, Scala, Purescript or even Swift are great languages but dynamic languages are good for small applications when the people involved are relatively new to programming. Perhaps we’ll check out something more strongly typed in the future.
Reading group format
We are going to meet once a week for 1 - 2hrs each session. The first week we are covering the first 4.5 chapters of the Realm of Racket. This introduces enough of the language basics to begin development of the games that appear later in the book.
Hopefully, we can all identify a small game that we’d like to develop. We can use this time to show off what we’ve made and talk about the problems we faced during development.
Stay tuned for updates.