There is no “my” in open source

If you use Node, you’ve probably been following this week’s story between Azer Koçulu, Kik and npm.

A brief rundown: Azer made an npm module called “kik”, which shares its name with a company. Kik asked him to rename the module, and Azer refused, so npm intervened and reassigned it to Kik.

In response, Azer took down all of his modules from npm, including one called “left-pad”, which many other people depended on. After his actions effectively broke the Internet, npm took the unprecedented step of “un-unpublishing” Azer’s module, to restore widespread functionality.

So that’s the story. And there are enough implications in here to fill a law school textbook.

But I’d like to highlight just one of those, which is how we’re talking about and interpreting the conflict.

When I spoke with — for lack of a better term — let’s call them the “GitHub generation” of developers about what happened, they said of npm’s decision: “That’s fucked up. It’s his code.”

Or, if they sided with npm, they said: “That makes sense. It was a trademark conflict.”

The conflict was over whether npm and Kik had the right to make decisions about “Azer’s code”. And that’s how I understood it, too.

But yesterday, when I spoke to Karl Fogel, who’s been in open source since at least the 1990s (including helping to write Apache Subversion), he said: “Well that makes sense. Azer can’t ‘take down’ open source code. It’s open source.”

This was so far from anything else I’d heard that it took me a second to understand what he was saying. And then I realized he was right.

The story of npm, Kik, and Azer has been interpreted as a David vs. Goliath, Corporate vs. “Of The People” story. But that story operates under the assumption that the module in question was “Azer’s code”. In reality, the code is technically owned by no one.

But it was Azer’s decision to choose the name of the kik module, right? On the other hand, it wasn’t up to Azer to permanently remove his public code. Only to remove his association with it.

And therein lies the cultural tension between open source’s early days, and the “post open source” world we live in today.

Open source is about emphasizing community over self. But today’s open source doesn’t really operate that way — at least not in the long tail of smaller, homegrown projects. Whether this is a symptom of “new developers” who need to be properly socialized, as some would suggest, or truly an evolution of open source culture, is still up for debate. I’ll leave that to you.

Karl shared another thought that helped me process the situation. He said:

We don’t have the right language to express when “my” indicates possession versus association. When we say: “that’s my bike” or “those are my shoes”, we mean that we own them. We have the final say in decisions about our bike. But when we say “that’s my father” or “my sister”, what we mean is we are associated with them. We obviously don’t possess them.
In open source, you can only have “my” in the associative sense. There is no possessive “my” in open source.”

I’m currently exploring better ways to support open source infrastructure. If you want to stay involved, you can sign up here to get updates when I post something new, or follow me on Twitter.