Author Information

Brian Kardell
  • Developer Advocate at Igalia
  • Original Co-author/Co-signer of The Extensible Web Manifesto
  • Co-Founder/Chair, W3C Extensible Web CG
  • Member, W3C (OpenJS Foundation)
  • Co-author of HitchJS
  • Blogger
  • Art, Science & History Lover
  • Standards Geek
Follow Me On...
Posted on 5/17/2013

Dropping the F-Bomb on Web Standards

a photo of a dictionary page
photo credit: wiccked via photopin cc

In 2012, Mirriam-Webster's dictionary added a definition for the F-Bomb.  Why?  Was it because some elite Mirriam-Webster working group d-wonk committee decided it was necessary to mint a "steamy new word"?  No, rather, because it is a well-established part of the common vernacular of the English language. There are occurrences of it going all the way back to 1988.  Not every slang term someone makes up will get into the dictionary. The Oxford English Dictionary has a vault full of millions of words that currently do not make the cut.  Many never catch on.  Some die out quickly and others change shape as they spread, that is what etymology is all about.  Some stagnate and maintain distinct and valuable regional meanings, and that is fine, but they aren't part of the standard language.  The ones that are ultimately widely understood and eventually become commonly used are accepted and codified into the dictionary. Some words even become extinct.  In other words, the process of word standardization is evolutionary.

What's this got to do with Web Standards?

There are actually many similarities between a dictionary which codifies and specifies the English language and a Web standard, but today the two work in nearly opposite ways*.

I didn’t come up with the dictionary metaphor (I dont know who did first). I first heard Alex Russell mention it in 2011 in a Fronteers talk while I was trying my best to find a way to describe it succinctly myself and it really struck a chord with me. It very simply illustrates in a way that is easily understood, not just the problem itself, but some excellent/proven solutions that we can use to solve them: What we really need is a way to develop the slang of the Web and, as it catches on, potentially mutates or dies, eventually have a way to recognize that, pick it up and codify it into the standards dictionary.

* Some attempts at seeing what people are doing outside of Web standards has happened, but for the most part, the real work of creation happens in a committee and the   dominance or extinction happens by browser vendors (who also dominate the committees).  This has, so far, left us with APIs that are often less than what we want, general slowness in rate of change and lots of other undesirable qualities for developers.

A Path for Natural Platform Evolution

a photo of a lego charles darwin
photo credit: wiccked via photopin cc

Yehuda Katz and Alex Russell gave an excellent presentation on the importance of Layering at the first W3C Technical Architecture Group F2F recently.  As you can see from the minutes, they returned on to this idea again with some positive/open responses from other member including questions and observations that further illustrate the language-link from Sir Tim Berners-Lee who seemed to express a lot of interest in parts.

It is critical to have competition/mutations and a population to evolve a platform - it is important to the long term health of the Web that we be able to evolve the slang of the Web (not just specify and release).  Yehuda called this a "Path for Natural Platform Evolution".

What's in it for me?  What do I have to do?

If you have ever participated in the open standards lists you know:  Most people aren't that committed to bettering something that might make their lives easier years from now.   They have a job to do.   Within a month or two of following any list, you will begin to recognize the same small group of people who really contribute at that level.  It's not that the general public is unwilling to contribute, it's just really difficult to do and they don't actually get anything out of it now.  This is distinctly different from words in a language - it's very easy (and cheap) to pick up words that you find useful or descriptive and use them in your everyday parlance, on Facebook or Twitter.  You get something out of it when you find something becomes much easier to describe or maybe even makes you sound a little smarter or hipper than you might be without them.  Web standards on the other hand are kind of the opposite of that at the moment.

Cheap ways to help

  1. Collect the slang:  One very cheap way that you can help if you have chrome is to install Meaningless and help collect anonymous statistics about the elements and approaches used in sites that you visit - this helps inform what slang is actually picking up and which is mostly just theory or fad.  What benefit do you, personally, get out of it right now?  Actually none, but it's so easy, why not help :)
  2. Provide the environment, use the slang:  Prollyfills (which I write about a lot) are to standards as slang is to words in the dictionary - they are essentially proposals that we hope catch on.  Using them right now actually does deliver value and it can be pretty cheap to try them out and provide some feedback.  If you're very interested, join the Extensible Web Community group (see prollyfills link above) and help out - it's open and you can do so in any way you like, and at your own pace.  You can comment, show us examples/use cases, contribute new ideas, or help create tests - or just help promote some proposal you really like.

Missing Links...

Unfortunately this will only take us so far with the Web platform as it is today.  As Yehuda and Alex explained in their TAG presentation - it is hard to impossible to prollyfill some things in order for us to develop this slang in the real world: The platform doesn't contain the right layers for people to step in and tweak/develop just one piece.  The only ones capable of doing this are browser vendors.  The architecture is lacking.

Thus, today, developers write increasingly complex JavaScript: Re-implementing in order to emulate things that are already natively implemented in the browser just to make a single piece work a little better.

In order to fix this problem, we need to fix the gaps in the platform.  Some of this will take a while.  Luckily we have some good people working on it.  We've elected some good guys to the W3C Technical Architecture Group, both the membership and private encouragement we have gotten in the W3C Extensible Web Community Group have been encouraging  and there are spec authors like Tab Atkins who are helping to open new doors to make things like this more possible in places where they are currently very hard.