Are We Componentized Yet? Mark II

Last year, I made a small dashboard to track the implementation status of the various specifications, polyfills and implementations that make up web components. I named it “Are We Componentized Yet?“, inspired by Mozilla’s various sites called some formation of are-we-x-yet, hosted it on GitHub, and forwarded the URL to some people working on the web components specs. I suggested that it, or something similar could help people to keep track of where the myriad moving parts of the web components effort. It was positively received, and I think it may have provided some inspiration behind the creation of the Chromium Feature Dashboard, which attempts to do something similar, except across every upcoming feature in the web platform!

After creating Are We Componentized Yet, I’m afraid I rather neglected it for a while. I did have some excuse though, as I was travelling around the Australian outback for a few months. Now I’m back in the UK, I had a bit of a push to update it from Paul Irish and Eric Bidelman, who pointed out that the utter lack of SEO made it virtually unfindable in search engines, and it was also missing some stuff like links to the new HTML Imports spec. I decided it was long overdue for a complete overhaul, particularly the extremely sucky design, so I’ve given it a complete refresh, with a lot more content, up-to-date information and a (hopefully) more attractive UI. Take a look:

It’s still far from perfect though. I was never entirely pleased with the presentation of the data in the table. I originally envisaged it as a series of status bars, filling in from the left towards completion, but it doesn’t quite work. I had to add in a yellow, intermediary colour to deal with items that had been started, but not yet finished, and it doesn’t make much sense to say something is “behind a flag” when it’s been released. None of that is fixed in the this new revision, but I have some ideas, and I hope to tackle that next. I also want to make it easy to see the implementation status in different browsers, so I hope to add in some kind of switch for that. Hopefully it won’t take me a year this time.

Web Platform Tidbits June 2013

Some things that have caught my eye over the past weeks:

ECMAScript 6 Compatibility Table (via Sylvain Galineau on Twitter)

A big matrix of all the features in the draft ES6 spec, and their implementation status in various browsers and JavaScript runtimes. Right now it’s a sea of red, but there’s hopeful signs. Perhaps unsurprisingly, Mozilla/Firefox lead the way, with the latest versions of Firefox having a little under 50% of them implemented. Google’s V8 team has issues open and assigned for many of these features, so I expect to see their compatibility increase quite a bit over the coming months.

Upcoming Safari Features

Something I and others have speculated about is how the departure of Google from the Webkit would affect the project’s forward momentum and that of Safari. Google engineers were working on a lot of new features, such as web components, that are now orphaned and the desire to avoid bit rot in the codebase has seen things like Shadow DOM removed. A sensible step in engineering terms, but a disappointing one for developers excited about web components.

However, as part of WWDC, Apple have apparently published a video ((Which I haven’t watched yet, as it requires Quicktime and will not run in anything other than Safari on OS X, not exactly a shining example of cross-platform web compatibility.)) about what’s new in Safari, an interesting slide from which was published on Twitter. It lists various features, one of which in particular caught my eye: CSS Grid Layout. I’ve written about Grid Layout before, as alongside Flexbox (also listed on the slide) it promises to make UI layout in web apps much easier.

The reason it caught my attention is that I knew it had, until Google’s departure, been implemented within Webkit by a Google engineer, Julien Chaffraix (Webkit Bug #60731). I wasn’t aware of any sign from Apple or the other Webkit contributors that they were preparing to adopt this feature, particularly since it is unfinished and its listing on the Webkit Feature Flags page says it has no contributors. The last WK commit related to it is by Chaffraix, three months ago. So what’s going on?

Sylvain Galineau pointed out that Apple aren’t promising to ship it right away, and there’s likely a few months of development ahead. He also speculated that Apple engineers may do their development in a private branch before merging the finished feature, but Webkit and Safari engineer Timothy Hatcher denied that, so unless it’s a mistake, it appears Apple are planning to ship it as is, or restart its development some time in the future, either by picking up where Chaffraix left off, or starting again from scratch.

The Extensible Web Manifesto

A bunch of movers and shakers from the world of web standards and browser development launched the Extensible Web Manifesto. It’s proposal to guide how standards groups develop the platform. It calls on them to focus on providing low-level capabilities that expose the underlying platform and also that explain the “magic” behind things like parsing. The idea being that web developers can then build on these low-level capabilities to create high-level features through libraries and components. These high-level features could then be easily distributed and iterated upon and, when matured, the best could be adopted back into the platform.

This all seems to tie in Alex Russell’s (and others) ideas about trying to develop a consistent view of the web as a platform, rather than just a grab bag of high level features tailored to the particular use cases envisioned by spec authors and browser vendors. The idea is that advanced frameworks and libraries won’t need to create their own parallel universe, complete with a bespoke component model, encapsulation and parsing, because the platform already has these, and will expose them in a way that allows them to be reused and extended in a flexible way.

It’s a good philosophy (I’ve signed it), and I see the same way of thinking gradually infecting a lot of other people who think about and develop the future of the web platform. Tab Atkin’s thoughts on making CSS more easily extendable seems to tie directly into it.

My only worry is that, scanning through the list of signatories, Google, Mozilla, TC39 and JS framework engineers are well represented, but I don’t see anyone from Apple or Microsoft. Google, in particular, seem very keen to drive forward this vision of the web platform, but without co-operation across the industry, will it become a reality? Time will, as ever, tell.

Good and Bad Podcasts, Nuance, and Rejecting Prescriptivism

I’m not a fan of podcasts, on the whole, particularly the ones that I’ve listened to that focus on coding and developer culture. For a long time, I couldn’t put my finger on what it was that put me off them, and I just figured podcasts weren’t for me. However, in the past year, I’ve found two podcasts that I absolutely love. They are Dan Carlin’s Hardcore History, and Slate Magazine’s Lexicon Valley. Their respective subjects are history and language, but the scope of both is expansive, going beyond the boundaries of their nominal subjects to consider issues of human nature and culture that arise from them. Discovering these two podcasts lead me to try and analyse why I enjoy them so much, and why I don’t enjoy many others as much. I concluded that it was partly a matter of presentation style, and partly a matter of content.

On the surface, the respective presentation styles of Hardcore History and Lexicon Valley are rather different. Hardcore History has only a single presenter ((For the most part, it’s possible that there’s episodes I haven’t listened to yet that feature guests.)), Dan Carlin. His voice, loud and animated, is the whole focus, and the only words other than his own, aside from the introductory jingle, come in the form of quotations from sources that he reads aloud. And he has a lot to say. His “podcasts” are closer kin to audio books than radio broadcasts, their length usually measured in hours, with each topic frequently spanning multiple episodes. They are extremely detailed and gloriously digressive, informed by passion for their topic and a more basic passion for knowledge in general.

Lexicon Valley episodes tend to be significantly shorter, rarely exceeding the thirty minute mark. It has two regular hosts, Mike Vuolo and Bob Garfield, and features regular guest contributions, usually from academics and authors providing insight into their area of expertise. Mike Vuolo is the producer, and appears to do most of the research for the show, with Bob Garfield adopting more of a sidekick role. In a typical episode, after a brief introduction, the hosts usually have a vaguely Socratic dialogue around the chosen topic, in which Vuolo adopts the position of wise man, and Garfield is his inquiring, somewhat skeptical and occasionally philistinic interlocutor. Vuolo will then provide an extended section of analysis, often speaking with one or more of the aforementioned guest contributors. Sometimes these guests sections appear to be recorded as part of the discussion between the hosts, whereas others seem to be recorded either before or later, then edited in. Finally, the show returns to a discussion between the hosts, who try to reach some kind of conclusion about the topic, before signing off in signature fashion.

Despite their differences, I believe these podcasts share a certain amount of DNA. The first similarity is their command of their subject matter. Dan Carlin’s podcast appears to be meticulously researched. He speaks of wanting to have at least fifty sources for each topic he covers. For Lexicon Valley, Mike Vuolo is a professed language junkie, and both he and his guests grapple with and explain many complicated aspects of language. Garfield deliberately affects a somewhat less informed persona, but he is also clearly very knowledgeable.

The second similarity is the clarity of the presenters’ style and the assurance with which they present the material. Carlin’s verbosity and intensity might not be to everyone’s taste, but his prose is always clear and vivid. Lexicon Valley’s hosts are equally eloquent, as they naturally luxuriate in language, yet still produce a show that is tight and economical, but not rushed.

Overall, the quality that attracts me to both these podcasts I would best describe as professionalism. It isn’t surprising to learn that all three hosts have backgrounds in journalism and broadcasting. They display an investigative journalist’s ability to explore and communicate complex topics, and a radio host’s comfort behind a microphone.

Unfortunately, most of the other podcasts I’ve listened to do not exhibit these characteristics. They tend to follow a structure whereby each episode features one or two regular hosts, one or two guests, and a discussion that wanders around whatever relevant topics are in the news and a specialist subject of the guest’s. They can feature nuggets of gold, but it is always surrounded by a lot of hesitant and aimless chatter. It’s difficult to listen to an hour long podcast for just a few moments of insight, particularly for technical subjects where there are usually many articles and blog posts providing the same information in a format that is much quicker to digest.

Although their hosts’ relative lack of experience with journalism and radio contributes to the problem, I don’t think it is only a matter of professionalism. I’ve realised that I often feel just as bored and uncomfortable watching live interviews between professional journalists and their subjects. The reason, I think, is because very few people are capable of speaking insightfully and entertainingly about something in an off-the-cuff manner, even if they are heavily involved with it. They can usually talk at a high level, offering statements and explanations they have probably repeated many times before, but when pressed to answer deeper or more theoretical questions, the usually clam up, becoming hesitant and imprecise. It isn’t because they’re stupid, but because insightful analysis isn’t easily done on the spot, under pressure ((Interesting therefore that most employment interviews centre around an interrogation that expects candidates to do just this: Answer complicated questions and justify their answers in detail. On the one hand, this demonstrates whether they have sufficiently internalised certain concepts well enough to explain them under pressure, but it can also leave candidates floundering on topics they might actually be able to provide a great deal of insight into, but only with a little time more to consider them.)). Or, if it is, it involves a lot of umming and ahhing and talking around a topic as those involved work their way towards a shared understanding and good answers. The thing is, it’s easy to understand how such a conversation would be fascinating and vital to the people involved in it, but it can seem long-winded and halting when listened to second-hand via a recording.

I have listened to interviews with some of my favourite writers, artists and scientists, people whose work otherwise demonstrates a great deal of intelligence and self-awareness, but who struggle to offer almost anything in the way of an illuminating, or even coherent, answer when faced with anything beyond the softest questioning, particularly if it’s a line of questioning they weren’t expecting. And even recorded conversations between experts can often tend towards the banal and the obvious if they haven’t done the necessary thinking through of their positions.

A good example of the latter is RedLetterMedia’s movie review show, Half In the Bag. I should qualify my opinions by saying that I love Mike Stoklasa’s Mr Plinkett reviews, and a lot of people like Half In the Bag, where he and Jay Bauman engage in a Siskel and Ebert like discussion of new cinema releases . Even I don’t find it bad per se, just not essential. The contrast between the painstaking, scientific deconstruction of the movies featured in the Plinkett reviews with the freewheeling, conversational, but kinda shallow analysis offered by Half In the Bag just makes me miss the former. Every episode, Stoklasa will offer some interesting insights that he seems to have conceived in advance, and it just makes me wish I could listen to an hour of him giving such insights.

It seems that producing the kind of effect that Lexicon Valley achieves, of a discourse that is both conversational and insightful, requires a great deal of expertise, preparation and careful editing. It’s a sort of conjurer’s trick, where a great deal of effort is expended to hide the signs of the effort itself, one most easily achieved by those with training and experience in how to do it. Perhaps the internet will help to spread and democratise these skills, or perhaps the decline of traditional journalism will cause them to gradually be lost. I hope it’s the former.

As an addendum, I should also make clear that, of course, this is all just my preference, and many people will have an entirely different one. Depending on your nature, you may prefer the freer, less artificial tone of podcasts that just get a few guys and girls in a room and let them have at it, figuratively speaking. I can certainly understand that perspective, even if it doesn’t usually align with my tastes, and I’ll admit such entirely improvised affairs can sometimes produce a kind of joyful anarchism that the best prepared and edited shows can’t match. There’s room in the world for both.

Rejecting Prescriptivism

Another common trait that I realised both Hardcore History and Lexicon Valley shared, and which contributed to my enjoyment of them, is their rejection of reductive or overly-prescriptive theories and ideologies, in favour of a more modern, more nuanced view of their subjects. It demonstrates a real quality of thinking, which moves beyond obvious answers, and goes hand in hand with the professionalism I discussed earlier.

Case in point: Dan Carlin in Hardcore History often talks about the “great man” theory of history and the “social trends” theory. Both have held sway at different times and tended to be viewed as in opposition, but he professes a view that neither offers the complete truth, but neither can they be discounted. History is shaped by many factors, he thinks, and the relative importance of certain individuals vs trends varies in different situations, often contributing to one another. This doesn’t mean Carlin retreats from offering opinions or conclusions about the subjects he discusses, but that these aren’t offered through the prism of a particular dogma, and don’t deny the inherent complexity involved in all human events.

Likewise, Lexicon Valley, despite focusing on language and grammar, shies away from finicky, grammar-nazi prescriptivism to explore, even revel in, the ambiguous, always changing nature of real world language. Again, the hosts aren’t afraid to offer up opinions, with Bob Garfield usually adopting a deliberately reductive or conservative attitude, to contrast with Mike Vuolo’s more nuanced and progressive explanations and put both to the test. It’s intellectually fulfilling, and it’s great fun, alike to finding a restaurant that serves food that is both tasty and healthy.

And speaking of rejecting prescriptivism, I, like many others, absolutely adored reading the slides of Angus Croll‘s recent talk The Politics of JavaScript, which have been doing the rounds on Twitter for the past month. It’s a wonderfully iconoclastic demolition of much of the nonsense that surrounds JavaScript development and the dogmatic application of idioms that bake in pointless paranoia, total mistrust of the developer and their peers, and a general rejection of nuance and personal style in programming.

Croll’s polemic ties in, I think, to an issue Paul Irish has been agitating about recently; the web development community’s tendency to focus on trivial, religious arguments at the expense of far more important things, including existential threats to the open web itself. He makes the point that some web developers are stridently opposed to things like Dart, even though their purpose is only to improve the web and make it more competitive with native applications. We as web developers need to have a better, more nuanced perspective on the relative importance of the topics that interest and agitate us, and consider whether a future where Dart coexists with or even supplants JavaScript would really be so bad, compared with one where the only way to release software is through corporate app stores, because that’s the choice we’re facing right now.

Any and every project that can help promote the web should be welcomed, and be given an honest and open-minded consideration. We don’t have to suspend all thought or criticism, and there are certainly questions about the standardisation of Dart that need to be answered before it becomes an accepted part of the web platform, but outright rejection and hostility gets us nowhere. Likewise arguments about semicolon usage and all the other pointless, religious debates should be put aside in favour of making the best software we can.