Perceived Velocity through Version Numbers

How version numbering effects our technology choices and why I think we need HTML6 and CSS4

April 06, 2019

Humans are a gameable system. Exemplified by the fact that .99 pricing is more compelling than flat pricing, we tend focus on the left digits rather than the right. You don’t have to look far for anecdotes.

Version numbers trick us all the time. Saying “iPhone 12” is instantly more exciting than “iPhone 11” even though neither of these devices exist right now. Windows 10 Fall Creators Update1 is way better than the launch day version of Windows 10, but that catchy Microsoft product naming doesn’t really resonate. But if I told you my laptop is essentially running the beta for Windows 10.7, that has a whole different ring to it.

I’ve wondered if version numbers impact web technology choices. Slapping a version number on a collection of APIs can create a sense of excitement, velocity, and newness around a technology. The version number becomes shorthand for a handful of new features. Excitement around new features compounds in to popularity as people glom on to the new shiny. And people, being who we are, tend to pick things based on their popularity rather than merit.

A single number bump replaces a mountain of marketing. Every discerning technologist knows it only makes sense to invest in technologies that are moving forward. To invest in a stagnant technology would be a dereliction of duty.

I think this has effected web technologies deeply. HTML5 was released in 2008 and its handful of new elements and APIs was a boom for the language. Even Steve Jobs advocated for it over Flash. Web Standards had won, Firefox and Webkit were our champions. “We need to upgrade to HTML5” was a blanket excuse for auditing your website and cleaning up your codebase.

CSS3, led by rogue -webkit properties, was similarly an exciting time for the language. I didn’t even know there was a CSS2, but I was excited about CSS3. And it didn’t take long for CSS to get a second wave of popularity in Responsive Web Design, enabled by the humble @media query. And a third wave came with CSS preprocessors like Sass, Less, and Autoprefixer.

In 2011 it was announced there would be no HTML6. HTML5 was just a buzzword and HTML itself would become a living document. We’re actually on HTML5.3 but you wouldn’t know it. CSS took a similar route and around 2013 spec writers began breaking the news that there’ll be no CSS4. And there, in my opinion, began the flight of the albatross.

This is some old guard reminiscing, but the lull in excitement since those days is palpable. HTML got the <picture> element, but it arrived by brute force from very vocal authors who donated their own money to get it implemented, not browsers. Even though CSS Grid arrived last year and might be the biggest advancement in CSS since CSS itself, it’s not nearly as popular as the niche -webkit-background-clip property. There’s probably some enhancement/degradation differences on that particular example, but the rapid evolution phase is clearly over. It feels like all new CSS feature work was halted for Houdini.

Meanwhile, TC39 took a different direction. TC39 published ES5 in 2009, but it wasn’t until 2012 after the deprecation of various Internet Explorers that ES5 adoption started picking up. ECMAScript adopted a release cycle where new language feature get promoted from lower stages every year. Since 2015, TC39 has published all of the following standards: ES6, ES2015, ES2016, ES.Next, ES7, and ES8.

It sure looks like this JavaScript thing is going somewhere (that’s for you, @horse_js). And it has! Let’s not discount the major advancements in the language: its growth as a serverside technology, the robust and numerous frameworks, and the distribution methods that have sped up its adoption making JavaScript the most popular programming language in the world. JavaScript is much more useful than when I started using it. It says so in the version number! I don’t even know what’s in ES8 (async/await?) but I know deep down in my heart that it’s better than ES7 and we should adopt it today.

In JavaScript, there’s a never-ending stream of libraries, frameworks, polyfills, importers, bundlers, alterna-script languages, and performance problems to write about. It’s sure to dominate the daily programming news cycle. HTML and CSS don’t really have that position and luxury any more. In many ways, the switch to a “Living Standard” have made them dead languages, or at least mostly-dead. New language features don’t show up like they used to, or at least I don’t see the release notes anymore.

It’s not my intent to start another holy war. I’m on a bit of a quest to understand why these three technologies built to work together are so unequally yoked in popularity and their communities polarized. One end of the spectrum experiences a boom while the other experiences a bust. The rising tide does not lift all boats.

It’s not version numbers alone, I know this. But I do think they play a small part in effecting our perception.

  1. I actually support Windows’ versioning scheme, they need to trick IT departments into adopting an evergreen OS and minimizing version numbers is probably the best way to do that. But again, this is an example of how version numbers trick us.