BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

The Big Progressive Enhancement Debate

by Dilip Krishnan on Sep 11, 2013 |

Recently, Tom Dale, one of the creators of ember.js, wrote an article that re-kindled a brewing debate on the need for progressive enhancement.

A few days ago, Daniel Mall launched a snarky tumblr called Sigh, JavaScript. [...] The goal here is to publicly embarrass those who fall outside your social norms; in this case, it’s websites that don’t work with JavaScript disabled.

I’ve got bad news, though: Progressive enhancement is dead, baby. It’s dead. At least for the majority of web developers.

"Something happened a few years ago in web browser land. Did you notice it? I didn’t.", he said, "the browser transformed from being an awesome interactive document viewer into being the world’s most advanced, widely-distributed application runtime". What is Progressive Enhancement really? According to Wikipedia

Progressive enhancement is a strategy for web design that emphasizes accessibility, semantic HTML markup, and external stylesheet and scripting technologies. Progressive enhancement uses web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page, using any browser or Internet connection, while also providing an enhanced version of the page to those with more advanced browser software or greater bandwidth.

As the browser vendors are always trying to innovate and differentiate, the responsiveness and user experience are constantly improving. The ubiquitous availability of browsers as a platform for delivering these responsive applications is compelling.

On the other side of the debate are folks like Nicholas Zakas whose presentation explains that there is a cost to making applications rely so much on Javascript; in addition to the usual problems his presentation provides analysis and insights to problems with modern "SPA" applications that are Javascript heavy. He goes on to provide suggestions on how one could provide graceful fallback options.

Another angle to this debate is the fact that the web as we know it today, has scaled because of certain architectural properties. In a presentation at QCon by Stefan Tilkov talks about how Javascript needs be unobtrusive. He recommends that applications embrace the web and its architectural properties and refers to this kind of Architecture as Resource Oriented Client Architecture.

ROCA is an attempt to define a set of recommendations — independent of any particular framework, programming language, or tooling — that embodies the principles of what we consider to be good web application architecture. Its purpose is to serve as a reference, one that can be implemented as-is or be compared to other approaches to highlight diverging design decisions.

As explained by Jake Archibald, applications that are Javascript first will break the web as we are used to it; a developer advocate for Google Chrome. Sharing, linking and navigating; for that matter, having a web site be searchable by Google/Bing etc. relies on these properties of applications. Granted, not all applications fit these requirements; for example browser games, video players etc. but Progressive Enhancement is still important he asserts.

Tom Dale, concedes its possible to achieve these properties of  using various techniques in modern Javascript applications, but it should always be driven by pragmatism.

Embracing JavaScript from the beginning will let you build faster apps that provide UIs that just weren’t possible before. [...] Of course, there will always be cases where server-rendered HTML will be more appropriate. But that’s for you to decide by analyzing what percentage of your users have JavaScript disabled and what kind of user experience you want to deliver.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Progressive Enhancement by Dan Tines

Following the progressive enhancement crowd's logic we have to build for browsers like Dillo and text browsers like Lync connected with a 300 baud Hayes circa 1982. Yeah, right.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT