Progressive Enhancement

tl;dnr: Progressive Enhancement today is often dismissed as irrelevant as the mainstream browsers have become more standards compliant and client-side enabled JavaScript is (possibly justifiably) being taken for granted. So some of the reasons for adopting it initially may in fact be outdated.

But lately the philosophy behind Progressive Enhancement as a fault tolerant design approach for client-side functionality/concerns seems to be gaining some attention again. These days the “hostile software engineering environment” is plagued by:

  • Diverse client screen sizes (Responsive Web Design)
  • Diverse client computational power
  • Diverse and dynamic network quality of service (bandwidth, latency, speed, cost)
  • (… and ultimatley the issue of accessibility - it’s all too easy to assume that “the relevant target demographic” will always be using the most capable (updated) devices, connecting over the best and lavish data plans under the most optimal conditions).

Douglas Crockford (pre-2006?)

The Web is the most hostile software engineering environment imaginable.

I used to say that the web browser was the most hostile programming environment ever devised, but that was before I found out about Mobile.

When “Progressive Enhancement” died:

… or not?:

More recently: