Following our discussion of the need to support IE6 for a significant group in China, let’s consider the general issue of old browsers and code. Thanks to polyfills, browsers at IE6 levels of sophistication can be “pumped up” to modern HTML5 rendering. But should we? One result of polyfilling our way to modernity is that old browsers become slow browsers. I submit that this is unnecessary, and results more from “code culture” than the code needed to run old browsers.
Along with this work, and in part due to the rise of the mobile web, emphasis has moved to putting program “state” and process control on the client. In the classic web, servers did most of the Model-type work in an MVC pattern, while HTML and CSS were pretty much a lightweight View. This approach of a light client was standardize in the Progressive Enhancement strategy, which dictated that client-side functionality couldn’t prevent user access – the server had to be able to deliver all content in basic markup.
Probably the case where these problems really come to a head is in Content Management Systems (CMS). On the face of it, one would expect a CMS to be lightweight – after all, lots of the page templating and program control are happening on the server. But the “plugin” architecture of CMS systems like WordPress result in the basic CMS pages being “decorated” by dozens of code-heavy and HTTP request heavy “plugins.” The result is the worst of both worlds – lots of heavy work on the server, plus a big load of client-side plugins.
What’s the Solution?
Consider the unique features of the web.
- There’s not need to shoehorn browsers into the kind of “heavy clients” favored in traditional client-server programming.
- Frameworks can be used, but not all of them at once
- We don’t really need to re-invent a class architecture when prototype-specific design patterns can accomplish the same thing more efficiently
- “Coding culture” imported from other non-web areas won’t necessarily “fix” the web – it will just slow it down.
- Designs often don’t need a heavy back end to work well for the tasks users need to complete
A great discussion of alternative strategies at:
Are you using a library because it’s familiar and comforting?
Many people are…