Jeremy Keith, wrote a brilliant article about progressive enhancement recently. I say “brilliant” because progressive enhancement makes total sense and I am all in on that. He is arguing that with progressive enhancement there is no “fall back” just enhancements for capable browsers (or in my book; user scenarios) and we need to change our way of thinking to make this happen. Agreed.
Jeremy explains his views as if progressive enhancement is a client side thing:
But it all starts with thinking of the server-side rendering as the default. Server-side rendering is not a fallback; client-side rendering is an enhancement.
This is an important point which deserve some elaboration. In my mind, it’s true that the server sent version of the web page is the default and you can add on stuff with JavaScript, or whatever, when the browser is rendering the page. BUT, there is no reason in the world why the version rendered on the server can’t be progressive too!
The more “progressivness” you can do server side, the less you’ll have to do client side. It is not like the page served by the web server should be the lowest common denominator for everything from Lynx to Chrome Canary. Being able to progressively add stuff on the server is great for many things. Performance for example. Front end rendering performance is really simple: Do less. (Which is also the AMP project came to life)
In my opinion, the web community need to start discussing the symbiosis of the web server and the web browser (Well, first, acknowledge the symbiosis). Currently it’s totally ignored. Reading some of the “thought leaders'” books or posts it’s almost like they see the server as the necessary evil so that Responsive sh*t and Progressive fu*k can be applied to fix the cr*p produced by the web server. Probably because the server guys don’t know anything about the front end and vice versa. Which is fair, but like Jeremy says, we need to start think differently. The web is not only about the front end.
There is a disconnect between the server and the client.
My wish for the web in 2016? Acknowledge the client/server symbiosis.