unsemantic versions

Are you old enough to remember Firefox 2.0? It was a huge deal. I was excited about it! My friends talked about it. When’s the last time you talked about a browser release?

What happened was the browsers all moved to semantic versioning. It’s a great concept, and it solved a major technical problem in the growing interdependent ecosystem of web software. I think it was the correct decision.

You can argue that it’s a good thing we don’t talk about versions at all (outside front end developer circles): Average folks shouldn’t need to work about version numbers. I agree with that. But for a certain set, having something to talk about iterations in our software, as humans, is important.

We used to number our products for human consumption, now we number them for machines. In doing so, we solved a problem but sacrificed something for which we created no replacement: a shorthand for talking about the evolution of a software product over time, especially the course of years. What happened between Firefox 37 and 45? Couldn’t tell you. I suspect few, if any, could.

I guess what I’m saying is: the marketing of the big ol’ point-oh release mattered, and it’s gone.

What I’d like to try is pretty simple: A release series. Give a series of semver releases a nickname, and after a while, when it feels like you’d wanna do a “big point-oh” to celebrate, just change the name of the release series. Whenever you want! Make it prominent enough that enthusiastic consumers can see it, but hold it back enough that passive consumers overlook it. A fun bit of easter egg that actually contributes to the conversation for those in-the-know.

WordPress famously names its releases after jazz musicians, which I love. But a new name for every release makes it challenging to remember when you have less investment. I feel like taking the concept of naming an iteration without tying it to every release could be a compelling idea.

For now, I’m just going to document the release-series in the Composer file under the “extra” section, and in the README file. Just a small idea worth taking out for a test spin.