Saturday, September 6

language things

So there’s this internet explosion about various players in the set of entities that use Markdown (Jeff Atwood, the Pandoc dude, a reddit dude, a GitHub dude, etc.) trying to put together a spec and probably not going about it in the best way. Gruber’s mad, Hacker News hates it, they’re calling it CommonMark now instead of anything with “Markdown” in the name, there are flamewars on the mailing list.

I use Markdown for a lot of different things. For example, I’m writing this blog post in it. I use it for projects like userland-book. At SparkFun, we render tutorials and blog posts and user comments with a particular superset of it based on spackling some cheesy regex substitution on top of a PHP wrapper around Discount.

I’m interested in this. It’ll affect some decisions I make. But I’m having kind of a hard time feeling too worked up about the whole thing. I appreciate a number of things about Markdown’s design, and I think it’s proven to be a really important contribution to web technology, but I also can’t help thinking that the position of “dominant lightweight markup language used by smart web people” is pretty goddamned historically contingent and moderately accidental. People have been coming up with alternatives to expressing things directly as HTML for just about as long as we’ve had HTML, and if you squint, it kind of seems like all of the heat and light that has ever surrounded one of these efforts has been more or less the same meta-argument that inheres in every iteration of the discussion about semantics and syntax and ownership of the definitions.

I had this conversation the other day about programming languages. Pretty much a bunch of PHP, I said. You could write Ruby, they said. I have this exact fucking conversation like once a week, on average, with the specific languages swapped out for other languages. It’s completely exhausting. It’s like here, I baked you a cake, and people are all hey thanks but don’t you feel bad about how hard your oven sucks?

Let’s define an axis of technical argument called Language Things. Language Things is about representation and expression and models. It is about aesthetics and correctness. It is about hurt feelings and bone-deep convictions and the inescapable desire for some kind of ground on which to feel that one can safely model the experienced universe and the expressed understanding of it. It is somehow or another about identity and ownership.

I’ve spent a lot of my life caring way too hard about Language Things. In a certain sense, I care too hard about Language Things for a living. I’m probably never going to stop caring about Language Things, because they define and condition all of the meaningful work that I have ever done or am ever likely to do. And yet, in a certain sense, I think I have outgrown Language Things. Is the syntax worth thinking really hard about? Does it matter how you have chosen to express your model of reality? Do the specific symbols in your toolbox shape your whole experience of work and life? Well, yes. Sure enough. But then are these things the crux of my actual problems? Well, no, not really. Not these days. They haven’t been for a while.