JavaScript Apps vs Progressive Enhancement

published on September 4, 2013 in technical

There has been another fight on the web lately. This is all about JavaScript applications making progressive enhancement impossible to do. That does not seam the case to me. Here is my take on the subject.

What is Progressive Enhancement?

If I would have to define it the simplest way, it is a way of building content for the web from bottom up, where the bottom is defined by older, feature-less browsers, and the top is the latest browser line around.

I have never read a really good post on how progessive enhancement should be done, so these are my thought on how I would do it.

In my mind, progressive enhancement is all about feature detection. Feature detection obviously has to be done with JavaScript. So I would start with a build that is really basic, and put features on top of that after detecting them.


And here is the big question: how does this have anything to do with JavaScript apps, which render views/html client-side? I say it has nothing in common. I don’t even understant what the last few days of fighting is about.
People strongly believing in progressive enhancement say that JavaScript apps are a stopwall in front of enhancement, the strong believers in JavaScript apps say they are not.

I say they are both wrong. They forget something really important. We’re talking about billions of users on the web and their future usage of what we create. The point and goal of our endevour should be more then bussiness or fighting for a believe. We should just provide what is the best for them. This definitely means that both parties are either wrong or both parties are right.

Why can’t we just forget about how Angular (closer to progressive enhancement) or Ember (closer to strong JavaScript apps) do stuff technically and just help devs around the world do the best for their users?

JavaScript is here to stay. But we do have older technology on the market, so we do need both. Maybe we should just stop fighting on useless things and make things better for the users.

Do this instead

Users have no clue what this fight is about, none of them understand progressive enhancement or JavaScript. Our goal is their comfort so let’s just make that better, however we can.