Paul Chiusano

Functional programming, UX, tech, econ


Consulting services

I offer Scala and FP consulting services. If you're interested in working together, please contact me.

About my book

My book, Functional Programming in Scala, uses Scala as a vehicle for teaching FP. Read what people are saying about it.

Popular links

Unison: a next-gen programming platform the worldwide elastic computer (coming soon)
Type systems and UX: an example
CSS is unnecessary

A new project: Unison

In between consulting work, wrapping up the book, and enjoying spending time with my new daughter, I’ve been doing some work on a new side project. I don’t have anything to release just yet, but it’s an exciting project for me and I decided I should start talking about it.


Unimaginative naysaying in tech discussions

It’s the early days of man, a chilly day, and Alice and Bob are attempting to start a fire by rubbing sticks together. It’s a struggle, on account of some freezing rain earlier in the day that’s left the sticks damp. Suddenly, there is a brilliant flash of light, and a mysterious portal opens up next to Alice and Bob. A Stranger steps through carrying a blowtorch.

The Stranger explains he is from the Future and has come to speed along Alice and Bob’s technological evolution. He demonstrates use of the blowtorch and has a roaring fire going within a minute or two. He explains how the torch works by burning a substance called butane.

Bob’s immediate response: “Look Stranger, I don’t know who you are, but I don’t like your elitist tone, and I’m going to keep starting my fires by rubbing sticks together. If I start using your so-called ‘blowtorch’, it’s going to be a real problem finding ‘butane’ fuel for it.”


When the fancy technique that seems relevant is the wrong tool (a note of caution on zippers)

Update: I changed the title of this post and toned it down considerably to be less trollish. There was also some confusion / disagreement about the meaning of the term “zipper”, so I’ve tried to clarify that as well.


CSS is unnecessary given a layout language with means of abstraction and combination

CSS, a language for specifying visual appearance on the web, is … so complex that it has never been implemented correctly; yet, successive versions specify even more complexity. At the same time, it is so underpowered that many elementary graphic designs are impossible or prohibitively difficult, and context-sensitivity (or anything computational) must be addressed externally. Most CSS lore is dedicated to describing the tangles of brittle hacks needed to circumvent incompatibilities or approximate a desired appearance.

Bret Victor


Capability-based snail mail and ending junk mail

Here is a question: why should knowledge of my address grant anyone in the world (inlcuding both L.L. Bean and Unabombers) the capability to cause a physical artifact to be delivered to my place of residence? Moreover, anyone with knowledge of my address retains this capability until the end of time, at least until I move! If we were designing a physical delivery network from scratch today, in the age of software, is this really how we’d choose to set things up? Clearly not! Here is a proposal: