Composable parts

February 08, 2016
Composition is an important idea in programming, and Functional Programming brings it to the forefront. But what does it mean to say things are composable?

Can I do FP in my language?

August 02, 2017
We address the question directly, but then look deeper to the beliefs behind the question.

Global Mutable State

January 06, 2016
Global mutable state is one of the biggest drivers of complexity in software systems. We tackle a definition and how to reduce our reliance on it.

What do I have to learn to be hirable in Clojure?

July 22, 2016
You actually need to learn nothing. But it's more complicated than that. This article will show you what can set you apart.

How to Switch from the Imperative Mindset

December 12, 2015
Functional programming, from one perspective, is just a collection of habits that affect our programming. I've identified the cues for those habits and a routine for replacing imperative code with functional code.

How can more layers be more efficient?

February 20, 2016
It's common that adding more layers of abstraction or indirection will make things slower. However, React and ClojureScript make web pages faster than doing it by hand -- essentially programming the bare web. The lesson is that if you choose your layers well, they can actually make your system faster.

Object-Oriented Dispatch is the Dual of Functional Dispatch

March 11, 2015
Object-oriented dispatch is contrasted with functional dispatch, but they are shown to be two one-dimensional projections of the same two-dimensional data. Clojure does not provide the two-dimensional representation, but does interesting things to transcend the one-dimensional views.

Object-Oriented Programming is the Dual of Functional Programming

February 08, 2015
Object-Oriented Programming is often shown in contrast to Functional Programming. But they are so exactly opposite that they are duals, and so equivalent in important ways. Which one to use should be left up to the programmer, as is done in Clojure and Javascript.

The Paper Metaphor

February 27, 2015
Functional programs follow a simple rule: never write on the same paper twice. Imperative programs are free to define their own rules. Both have interesting consequences.

Programming Paradigms and the Procedural Paradox

August 30, 2017
I break down two perspectives (their features and their methodologies) for the three most common paradigms. I also explore why paradigms are so easy to argue about, and what we can do about it.