When tinkering with a new standard, one of the first responses people send me is a link without any other text with it. It’s a link to this XKCD comic.
Even though I expect it, it still gives me a laugh. I know I know. Do we really need yet another standard?
Now I unapologetically say yes, we need another standard.
One might interpret the XKCD comic as showing how new standards stifle innovation. But with a change of perspective, we could argue the XKCD comic is showing us how we make progress toward new and better standards.
CoffeeScript, for instance
I had the privilege of working with CoffeeScript a few years ago. And I loved it. It had downsides, sure, but it was a fun experience. CoffeeScript brought together features and syntax I liked from Python and Ruby into something that compiled to JavaScript.
But not everyone shared this sentiment.
CoffeeScript got popular for a while, even making its way into Ruby on Rails, but this post on Thoughtbot gave people the courage to move away from it. Sad day. There’s a v2 of CoffeeScript out now with modern features, but with TypeScript and other compile-to-JavaScript options, it’s not high on the list anymore.
The thing is, even though people might have written it off as useless, or hated the syntax, or disliked the use of whitespace, it had a huge effect on the ES2015 version of JavaScript.
Classes, splats, arrow functions, destructuring, existential operator, on and on. JavaScript may have adopted these same ideas without CoffeeScript, but it’s fair to say CoffeeScript captured what people were wanting and influenced JavaScript’s future.
Did we need CoffeeScript. No. Are people choosing it today over the many other options? Probably not. But did it make a monumental shift in JavaScript? Yes, without question.
Yes, and…
I’m not in improv, so I can’t speak from experience, but one of the key rules to follow in improve is called “Yes, and…” The idea is, if someone starts a story, you take what they started and build upon it.
For instance, if someone starts a story with, “I’m sorry to bother, but is this your phone?” you don’t respond, “No.” That stops the story—where can the other person go from there? Instead, you build on their story to make something collaborative and new.
The story moves forward by taking what was there and adding more to it. Each person adds their own twist and flavor, making a mixture of story that couldn’t exist if done by a single person.
The way we make progress
The best new standards are the ones that take the existing standards and add a fresh perspective, a perspective born from real-life insights into the successes and failures of an existing standard.
This is the case because—in my opinion—a standard will never capture the essence of the original problem and solution. Let’s say you decide to write a new standard for a problem you encounter. You sit down to craft a solution thinking it’s going to be clear. But the more you work, the more use cases and conflicts show up out of nowhere. So you make tradeoffs and concessions. Finally, you take your imperfect solution and formalize it for others.
Later someone comes along with new ideas about those edge cases and tradeoffs. Like your standard, theirs will be imperfect with new tradeoffs and edge cases. Maybe people start using theirs instead of yours. Or maybe theirs influences the future for your current standard. Either way, it’s a snowball effect, the forward progress gathering the clean snow and dirt as it moves forward down the hill.
Make that fifteenth standard
So I think it’s OK to make the fifteenth standard. People may send you the XKCD link with a winky face emoji. It’s true, it’s a new standard, and yes, it may be because you saw a way to bring unity to the 14 existing standards. But that may be the way to move it all forward.
And if they continue to try to thwart your efforts, you can start talking about topics like CoffeeScript and improv and wait for their eyes to glaze over.