Most programmers are still locked into the idea of making a program out of a large pile of tiny files containing pieces of programs. They do not realize that this organization was forced by the fact that machines like the PDP 11 only had 8k of memory and a limit of 4k buffers in the editor. Thus there was a lot of machinery built up, such as overlay linkers, to try to reconstruct the whole program.

Tim Daly, “Clojure In Small Pieces”

The idea of “mostly functional programming” is unfeasible. It is impossible to make imperative programming languages safer by only partially removing implicit side effects. Leaving one kind of effect is often enough to simulate the very effect you just tried to remove. On the other hand, allowing effects to be “forgotten” in a pure language also causes mayhem in its own way.

Unfortunately, there is no golden middle, and we are faced with a classic dichotomy: the curse of the excluded middle, which presents the choice of either (a) trying to tame effects using purity annotations, yet fully embracing the fact that your code is still fundamentally effectful; or (b) fully embracing purity by making all effects explicit in the type system and being pragmatic by introducing nonfunctions such as unsafePerformIO. The examples shown here are meant to convince language designers and developers to jump through the mirror and start looking more seriously at fundamentalist functional programming.

Monthly recap: February 2016


February went by really fast.

Went to a bunch of places, ate a bunch of stuff, but it’s all a blur.

Tara turned 15 months (so, one-twelfth of the distance to 15 years), and can spout little mono- and bi-syllabic words.

Played around with a couple of apps/games as “time fillers” during the month. The first was “Lumosity”, which is gimmicky but fun, and the second was “Chess Light”, which I barely made any progress at, but has made the few occasions I’ve had to wait in a line somewhere quite satisfying.

Subjected my draft mini-story-thing (about 25.5k words) to a couple of rounds of revision and now wondering what to do next. It is this year’s plan to put it out there, just have to make time for it.

Miscellaneous stuff: Tara was sick for a week, and we’re getting ready for a her longest trip yet, a three-week visit to India in March. I continued to run at least once a week, which is not bad at all (I thought I would have given up by now).