On Flipboard.com and Idealism vs. Pragmatism

Warning This article was written over six months ago, and may contain outdated information.

I’ve been thinking a lot recently about the clash between idealism and pragmatism. I’ve been working on the Web for many years, and for much of that time I’ve tried to do things the ‘right’ way; standards-compliant, validated, mobile-first, responsive, accessible, clean, extensible, etc. I’m definitely not claiming that I’ve always succeeded, but the intention and effort was there.

In the past few years the explosive growth of the Web, and the devices used to access it, has meant a parallel increase in the power and complexity of the tools needed to build it. And of course we want to make sites that are fast and light and perform competitively with native apps. But I think in this sharp focus on the technical side of building, we risk losing sight of why we are building, and who for.

Late last year I attended Front End London, where James Higgs, the Technical Director of Made By Many, gave a great talk on trade-offs; when it’s okay not to be perfect, when PHP is better than Python, when the ‘right’ approach has to make way for the ‘good enough’. His talk really had me nodding along in agreement, and it contains a quote I just love:

Your personal productivity, or pride in the cleanliness of your work, are not legitimate goals in themselves.

Last week, David Bushnell wrote When can a website be over 1mb?, in which he challenged the prevailing ‘no heavy sites’ orthodoxy, refuting criticism of an experiential site for the Nintendo game, Majora’s Mask:

It’s impossible to deliver the kind of visual fidelity Majora’s Mask offers without fat content. How do you spark the imagination — rekindle childhood memories — with some boring “flat design” bollocks? The load is worth it.

Which brings us to Flipboard. This week they announced their Web version, and in an introductory blog post they explained that they found the DOM too slow to achieve 60fps scrolling on mobile, so reimplemented it using react.js and canvas. Essentially it turned their main page into a single image, in the process losing the abilities to select text, search in the page, or – much worse – be readable by assistive technology. On Hacker News, Nick Williams very neatly articulated my opinion of the result:

[This shows] the flexibility and power of React’s component and render model. It’ll probably have a big impact on game UI for the web. [But] doing this on a content-driven site is absolute madness. It breaks so many things, and throws away so many fundamental tenets of the web. By the time they’ve reimplemented everything they’ll have probably lost all performance wins. The fancy animations are a minuscule gain for such a great loss of functionality.

I’m not going to go to deep into why I think this is such a bad idea — Faruk Ateş does that much better in his post How Flipboard Chose Form Over Function For Their Web Version — but I will say that it’s symptomatic of the way that, for some (many?) developers today, technical idealism is valued over pragmatism. The obsession with 60fps has lead Flipboard to completely reimplement the DOM, but without any of the things that the DOM is good for, reintroducing many of the problems that we fought against for many years in the form of Flash.

This is like making your cargo boat go faster by not carrying any cargo.

I should add — as if it needed to be said — I’m not arguing for doing a shoddy job of coding, or for not caring about file size and load times, or against the pursuit of the best possible scrolling performance. But the quest for technical perfection can’t come at the expense of a solution that’s best for everyone. An ideal is a worthy end goal, something to strive for; but to reach it, it’s vital to take pragmatic steps.

Update: Nice balanced piece by Christian Heilmann: Flipboard and the “mobile web” dream… I should have made it clearer in my article above that I do appreciate the technical effort that went into react-canvas; it’s impressive work, it’s just inappropriately applied.

3 comments on
“On Flipboard.com and Idealism vs. Pragmatism”

  1. The problem, the DOM is broken by design, and by backward compatibility it needs to carry over. DOM implementations need to stay compatible with websites made in 1996. If specifiers could start over today, they wouldn’t come with all that bloat, and implementers could work on making something fast by default.

    And nobody wants to break the Web. So that means the Web is slow by design, and for the longer it lives, the slower it will get — because of backward compatibility.

    Solutions are being worked out, workers, e10s, js engine optimizations and so on, but you can’t compete with ensuring compat with mre than 20 years of added technical debt.

  2. […] Link: [http://www.broken-links.com/2015/02/13/flipboard-com-idealism-vs-pragmatism/]. […]

  3. You rediscovered why flash is good at what it’s meant to do and HMTL is not good in the same domains, because even if it copied every new gadget from flash, they are just patches that don’t redesign the core of the tech. When HTML5 will be finished, I mean that all the features will run smoothly on all the major browser on 98% of the real users(2030), it will be a lot worse than flash in performance, visual fidelity, ease of development (tools, doc). It will also have lost the ability to be simply a simple document engine supporting all the accessibility/content indexing features.
    Then maybe an apple genius will explain at a keynote that we need a common implementation of a new tech oriented at multimedia/webapp, alongside the HTML to make it stable, really multi-platform, maybe compiled to ensure quality distribution and error checking, the language will have to be typed and OO, because webapp evolve towards complex systems and it’s not the strong side of JS, and maybe the best form will be a virtual machine so it can run fast on different hard/os.
    Oh I just invented flash.
    So everything that we can really miss from flash is the same thing that HTML5 is not delivering, by separating the core features from the hacks built on top, it reveals what can realistically be expected when we try to mix to different opposite needs.
    I tried hard to probe the limits of what can the HTML5 achieve and I discovered numerous design flaws that don’t allow to deliver mixed typed content, with transition and animations, in a webapp without having to refresh the page or develop huge complex workaround. And even with everything you could dream of it terms of JS library, the design limitation still doesn’t allow you to have a very good performance/fidelity, and often make you work twice as hard to produce the content volume, with limited options/variations.
    It would have been better that the W3C sponsor the flash tech and make adobe release it as open source, then the flash player could have been integrated a lot closer to the HTML, and all the effort building a pale competitor would have been used to optimize the performance, add killer feature, hunt for security breaches, integrate it in numerous browsers, supporting the macos/linux ecosystem more completely, make the flash interact with the dom more closely. I don’t believe that it is sustainable to develop XX time this kind of multimedia engine where even once it seems to not be feasible.

    Raphael Benzazon [February 16th, 2015, 17:55]