Infrequently Noted

Alex Russell on browsers, standards, and the process of progress.

Comments for That PE Thang

Thanks for your response Alex and I do understand your point.

Unfortunately, the lack of understanding of this and related details causes websites to be built amateurishly and causes end-users unnecessary problems.

I think evangelists have a responsibility to educate/spread the word on such matters.

by Marcus at
Web Components and es6/7 could first find an important initial audience with Chrome apps. Especially if these apps could run as first class citizens on Android - that is have the Android look and feel/functionality. Basically code once for Google platforms - rather than both dalvik and html5/js.

Then broaden out to the web when the other implementors catch up. This is what happened with Web 2.0/ajax. First an IE4/5 thing - then Firefox and Webkit emerged.

by kevin c at
Thanks for responding Alex.

I think you actually misunderstand.

Let's just put the term to one side for a moment and focus on what happens in browsers that have JS turned on and don't support a particular JS method; native or host - doesn't matter.

Running that code most likely leaves a broken unusable page. This can be mitigated against using feature detection/testing.

If feature detection passes we "enhance" the page with that (set of) feature(s) otherwise we bail out leaving a working page. This can be applied to JS only apps too like I alluded to above.

So even if the entire app is made of canvas or whatever, you can start off with a working document that explains that their browser doesn't support the app, leaving some contact details or some instructions rather than a broken page leaving the user none-the-wiser etc. And it's not often an app we build in general is something that can only work with JS.

I hope this helps.

by Marcus at

I got what you meant the first time and wasn't questioning that what you described was possible, only that it doesn't match what others mean when they hear the phrase "progressive enhancement". Your challenge is explaining yourself to the rest of the world, not to me. I'm merely pointing out the size of the task you face when using language is idiosyncratic ways (as you do here).

by alex at
by richard at

...brings all the boys to the yard? Is a datapoint on the continuum I outlined? Is a shapely turnip?

Brevity may not, in all things, be an virtue.

by alex at
+1 AngularJS is a shapely turnip.

Great read, Alex. How do you feel about as a future-proof way of structuring code in preparation for eventual "Web Components" support?

by danro at

hey Dan, is a wonderful discovery mechanism, and I think we absolutely need discovery, rating, and feedback mechanisms as we collectivley build out the first wave of components -- and we'll need them to get more sophisticated as we press onward. For instance, indicating support for a Web Component via Polymer or Brick would help developers wade more effectively through the choices.

The dynamic, though, is still likely to be "winner take all", and I don't think that's a bad thing. We saw it in the "ajax libraries war" and are likely to again in the current battle for developer mind share about full-stack front-end frameworks. It's just how it goes. What we need, as a follow up to the winner taking it all, is to put some of it back into the platform. Facilitating that process is going to require data. It's the sort I'm hoping to collect via Meaningless:


by alex at
Progressive enhancement isn't just CSS on top of HTML with JS on top of that. It's not a matter of JS on or off either.

You can have a JS only app which uses progressive enhancement.

You start off with an empty document (perhaps it explains a little about the application and how if you're seeing the message then your browser doesn't support the app)

Then you use feature detection before kicking off the application.

Remember HTML and CSS features are ignored if unrecognised - JavaScript features error if unrecognised.

by Marcus at

Hey Marcus,

I think you misunderstand what people mean by PE. The definitive article is here:

Jeremy Keith is also widely cited. In both cases, the concept is largely that progressive enhancement happens regarding documents that were meaningful to start with.


by alex at