Last time I talked about how algebraic abstractions like “monoid” and “semigroup” didn’t seem to be pulling their weight, despite love from functional programmers. That focused on a practical issue: do these abstractions aid or harm comprehension? Do they make programming easier or harder? (Of course, there’s not a simple answer to this question.)
This time, though, I want to talk about something more exploratory: do we have the right tools to talk about these abstractions? This post is therefore going to be much longer and contain a lot more rambling.
Two weeks ago Aurynn Shaw wrote a piece called “Contempt Culture”:
And even before I finished reading it I had a thought:
Oh, this is not the article I expected to be reading.
So here’s the article I thought I was going to read, based on the tweet. A short version, anyway.
A few weeks ago I asked people a question on Twitter:
I got many interesting responses, but one of them asked if I had any recommendations for books on compilers.
Oh gosh. Books? Books about computer science? I’m actually not very well-read: while I’ve been programming since I was a kid, I “only” have an undergraduate formal education. That means the set of books I’ve read about CS is rather haphazard. But I suppose I do have a few things that come to mind.