Progressive enhancement is a web design strategy that emphasizes accessibility, semantic HTML markup, and external stylesheet and scripting technologies. By using web technologies in a layered fashion, it provides access to the basic content and functionality of a web page using any browser or Internet connection, while also providing those with higher bandwidths, more advanced browser software, or more experience an enhanced version of the page.
If you’d like more of an overview, check out, What is progressive enhancement?.
Most of us familiar with the web standards movement have heard and agreed with this approach.
MVC: The Olden Days
Looking for architectural purity
Enter backbone.js. As you probably know, backbone.js is a framework that moves the view and controller to the client-side. This takes the client/server architecture we have been building for years and puts the client code in the browser. Finally, we can have almost no duplication of code. I can have something wonderful in which to code, and I can know exactly which part of the system is responsible for what. Also, less code almost always means less bugs.
Maybe the first step in answering all of this is to separate how we think about document-based sites and web applications as is suggested here.
I’m still working through my thoughts on this subject, and I want your opinions. I would love to write a follow-up based on our open dialog. Please share!