I met the TAG

Last night I dragged my carcass down to London in order to meet the W3C Technical Architecture Group (TAG). This is the group that advises other W3C working groups on architectural matters – most notably (for Web developers) API design.

Co-chair Dan Appelquist blamed me for this event; after the inauguaral Meet the TAG last June, I suggested that follow-up events be more structured and have a public Q&A, if only so the TAG Team didn’t have to answer the same questions repeatedly as they mingled.

On stage, but not expecting the Spanish Inquisition, were Anne van Kesteren (Mozilla), Sir Tim Berners-Lee (W3C Director and Olympics opening ceremony eyecandy), Alex Russell (Google), Yehuda Katz (Ember.js, Ruby on Rails and jQuery Core Teams) and Dan Appelquist (Telefonica). Other taggers in the audience were Peter Linss, Dame Jeni Tennison, Henry Thompson and Sergey Konstantinov.

Anne introduced the TAG as saying that it attempts to ensure that W3C APIs are designed in adherence with some core principles. I asked what those principles actually are. The reply (mostly from from Alex Russell, Tim BL and Yehuda Katz) was that many older APIs don’t feel particularly webby; that’s because they were generally designed by those who code browsers in C++, and C++ isn’t the same as JavaScript. As we’ve progressed, we’ve generally got better but there are still inconsistencies and weirdnesses from time to time.

We have lots of high-level APIs but we need to get to what’s underneath. For example, every browser has image decoders (that turn PNG, JPG, GIFs into bitmaps) but how can we access them? We can’t. Where is the API that allows us to tell an <img> element to defer loading? There isn’t one.

So we need to do what Alex Russell called “archeology” – define each layer in terms of a lower layer. Yehuda used HTML5 appcache as an example; it does a whole bunch of things but, if those turn out not to be what you want, you’re stuffed. This is why Service Workers were invented, and it’s important to note that it’s possible to write AppCache’s higher-level functionality in ServiceWorkers. This layering is described in the Extensible Web Manifesto (which isn’t a TAG document, but which is signed by many TAG members as well as the glitterati of the standards world).

Tim BL pointed out that access to very low level was common in native app programming languages, and becoming so on the web but more parity is needed. The fact that we’re now calling it “Web Platform” is more than a marketing-led rebrand.

Then followed an unedifying discussion about DRM – Digital Rights Management – or Encrypted Media Extensions as the extension to HTML is delicately called. (Contrary to unpopular belief, it’s not part of Core HTML.)

I say it was unedifying because it has nothing to do with TAG. But as few people have opportunity to ask Tim BL questions, it was a chance for them to ask the director of W3C about it. Trouble is, it’s a discussion that goes nowhere. If TAG’s disapproval of EME could abolish DRM from the world, I’d be all for discussing it (although I’d prefer they focus their new superpowers of abolition on hunger and war). But whether TAG likes it or not, Big Hollywood will implement DRM anyway.

Then I went for a pee and missed a bit about making up your own tags with XML (and/ or RDFa) is evil, but making up your own elements with Web Components is great. Anyone else catch the detail of that part? (Update: Jeremy Keith did.)

Jo Rabin suggested that it was incorrect to see the web as being for browsers only (for Web Component require JavaScript). Alex (from Google) countered that even inside Google, the search engineers aspire to make the Googlebots see the web as we humans do – that is, through browsers – because web pages are written by people, for people.

One thing everyone agreed on was the we all love URLs (or URIs, as Tim called them; is there a difference?).

All in all, it’s good to see TAG becoming a proxy for web developers, ensuring that APIs are sane for JavaScripters. It’s refreshing that they’re open for Q&A, too. Thanks to them, and Google Campus for hosting.

4 Responses to “ I met the TAG ”

Comment by Jeremy Keith

Hey Bruce, it was good to see you there yesterday evening. Thanks for prompting the panel.

That was my question about:

making up your own tags with XML (and/ or RDFa) is evil, but making up your own elements with Web Components is great.

I got two answers.

The serious one was from Alex. He said that, crucially, web components come bundled with instructions on how they work and what they mean — so they’re useful.

The not-so-serious answer was from Tim Berners-Lee. He said that all of these young folk weren’t around when people were trying to do this with XML and that’s why they’re doing it now with JavaScript and JSON—a much “cooler” format. His tongue was very firmly in his cheek.

I’ve written up my description of the evening over on my site.