PurelyFunctional.tv Newsletter 223: The Clojure Density of the Universe

Issue 223 - May 01, 2017

Hi Clojurers,

As I write this, I am still basking in a post-brunch afterglow. I picked up three Clojurists (and one soon-to-be Clojurist) in town for a conference and took them to brunch. It was a little hectic with rain and tons of tourists in town, and potentially bad choice of a first New Orleans brunch experience by me, but in the end, everyone was fed.

It has me thinking about the Clojure density of the universe. I mean, we literally saw Nicolás Berger and his soon-to-be-Clojurer friend standing on the sidewalk waiting for a bus and picked him up for brunch. What does this mean about the Clojure world? Has it reached a critical mass? As long as Clojure is growing faster than the world population is increasing, I think we have a chance. Is Clojure growing faster than the expansion of the universe? And as average Clojure salaries are the highest in the world, what does that mean about the collective buying power of the Clojure community? (BTW, please buy a membership :) If Clojure salaries increase faster than inflation, it could be a good investment.

Deep thoughts.

Please enjoy the issue.

Rock on!

PS Want to get this in your email? Subscribe!


Eivind Magnus Hvidevold is creating a Realtime Strategy Game in ClojureScript with WebGL. It's a pretty cool view of how something like this can be created.

Why Functional Programming?

People often ask me why they should learn functional programming. Every time they ask, I get stuck. There are so many reasons, I don't know where to start. So I wrote this up and recorded eleven reasons to learn functional programming. I would really appreciate if you'd share this with your friends on the internet.

Clojure 1.9 and clojure.spec are splitting up

Spec was announced over a year ago now. It was meant to be a part of Clojure 1.9 in order to make it a first-class, official library in the community. But it's been a while and it doesn't look like the API has stabilized yet. It is still in alpha. It is now blocking other improvements to Clojure due to be released in 1.9. According to Alex Miller, the plan now is to split clojure.spec out as its own library so that Clojure and Spec can evolved independently. It appears that Clojure 1.9 will depend on this alpha version of Spec. This is an important change. If you've started using Clojure 1.9, you will need to update some namespaces.

Clojure: a beginner's notes

I love reading beginners' views of Clojure. These are Duncan Brown's notes as he learns Clojure.

The 3 Stages of Beauty in Emacs

Sishaar Rao is seventeen years old and learning Emacs. Again, a wonderful view into the beginner's perspective from someone who didn't give up when it got hard (which all new things do at some point).

Functional Programming Property Based Testing

I was on the TestTalks podcast talking about functional programming and property-based testing. I think property-based testing easily beats example-based testing and people need to hear about it. As part of my research, I discovered that most languages have a property-based testing tool! Why aren't more people doing this? Why do you think? Reply to this email and let me know.

Clojure core.async

A while ago, when core.async was new, Rich Hickey gave a talk at Strange Loop explaining the reasoning behind it. This is a great talk explaining why Communicating Sequential Processes were chosen over other options.

Everything will Flow YouTube

Zach Tellman gave a great talk at Clojure/West 2015 about queueing theory and how to structure our queues. Beware! Zach Tellman talks typically require multiple rewatchings. They are very dense and deep.


Manifold is Zach Tellman's library which creates a unifying abstraction over core.async channels, lazy sequences, and Java BlockingQueues. Manifold has interesting properties such as a topology which can be queried and walked.