“You have to be quite heavily invested in someone to do them the honour of
telling them you’re annoyed with them.” ― Alain de Botton

Every language has warts. This is not the first wart piece written on Clojure,
but it’s my unique take on it. There are some workarounds, but these will bite
newbies. Despite these minor annoyances, I still find Clojure to be the best
environment to work in for many years to come.

Programming in Lisp is a different kind of programming. Some things seem similar
to your daily imperative treadmill, but mostly it’s different. There’s a
different lexicon of terms, REPL-driven (or rather, -dominated) programming,
there’s immutability, a really different type of (par)editing, a higher level of
conciseness, a naturalness to using HoFs, a leaning on a small set of primitives,
recursion as the norm, and so on.

It’s worth gaining some proficiency with a Lisp, if anything, to change the way
you think about programming. In this post I explore the Lisp landscape, and try
to convince you to get in on the Racket, for edification, fun, and
even profit.

Lisp Engines

Lisp is embedded in a lot of places.

Despite Lua being often recognized as being The Embeddable Language,
surprisingly many tools are programmable in Lisp. Some examples include: Gimp,
Guix, Emacs, AutoCAD, LilyPond,
GnuCash,
Festival

It has been a difficult decision to consider moving to Emacs. Besides
discovering that it had some superpowers that Vim lacked, I had a
niggling feeling that most of my programming heroes were already using
Emacs. So I did some digging around to see who were the luminaries.

The digging turned up that the following all use Emacs. (Sorry for
not recording many references.)

“A captain of a ship, no matter his rank, must follow the book.” —Captain James T. Kirk

I’ve been keeping an "Outages Log" for the last few years to track
downtime and causes of failures (sometimes they’re only theories).
This has turned out to be an invaluable record, so I’ll share the idea
here and encourage you to keep one, too.

About Micah

Saluton! Welcome to my blog. I’m a developer, sysadmin, and
entrepreneur interested in education, functional programming
(Clojure, Racket, OCaml), Linux, FreeBSD,
Emacs, Ansible, and lots of other FOSS. Most of the content
herein takes the form of recipes and opinions. See the
README for more.