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

The problematic culture of "Worse is Better"

Our industry has been infected by a dangerous meme, and it’s one that hasn’t been given its proper scrutiny. Like many memes that explode in popularity, “Worse is Better” gave a name to an underlying fragment of culture or philosophy that had been incubating for some time. I point to C++ as one of the first instances of what would later become “Worse is Better” culture. There had been plenty of programming languages with hacks and warts before C++, but C++ was the first popular language deliberately crippled for pragmatic reasons by a language designer who likely knew better. That is, Stroustrup had the skills and knowledge to create a better language, but he chose to accept as a design requirement retaining full compatibility with C, including all its warts.


In praise of universal warmth and kindness toward others in online discussions

A little over a month ago, I started an experiment in being “exceedingly polite” to everyone I interacted with online:


The internet has made defensive writers of us all

I was struck by this passage in Steven Pinker’s article about why academics’ writing stinks:


Making overly conservative language evolution a nonproblem

There was a recent thread on the Haskell reddit, sparked by a Neil Mitchell post arguing that various functions in the Haskell Prelude should not be generalized.


A very early demo of semantic program layout

Unison programs are viewed and edited in the browser. The frontend (which does things like code layout) is being written in Elm which talks to a backend (which does things like typechecking) written in Haskell.