8 September 2013
This has given rise to a fair amount of dogma that does not leave any room for progressive enhancement in modern web development. In this new world it’s not good enough to start with a full page load and then augment features with script. It is beginning to feel a little like a return to fat client applications.
The hammer for every nail
|Site||Size of JS files|
Getting the balance right
Server-based development is also easier to test and maintain as you get to control the environment and all the dependencies. There will be fewer edge cases that throw your code out of kilter, less testing required on older browsers and issues will be easier to replicate.
Speed and optimisation
In Twitter’s case they decided on the metrics that really mattered to their users, e.g. “speed to first Tweet” and optimised accordingly. The trade-offs will be different between every application – the point is not to allow a dogmatic approach to lead you into a cul-de-sac.
When does a “website” become a “web app”?
This is an artificial distinction that doesn’t have any clear definition. At one extreme there are document archives with very limited interaction that feel very much like the kind of largely website you encountered in 1995. At the other are highly interactive single page applications designed to leverage the browser as a runtime environment. However, between these two lie a hugely varied and shifting blend of interactivity and content that does not easily fit into a bucket marked “site” or “app”.
This distinction can actually be harmful as it implies that there is a new class of browser-based experience that can be exempt from concerns over accessibility, performance and browser support. This does not reflect how people are still accessing the internet in the real world.
Whatever happened to web accessibility?
It’s easy to forget that there is an incredibly diverse range of people who are accessing the web in ways that you might not expect. They might be using assistive technologies, dated browsers, obsolete hardware or a slow connection. The demands of web accessibility can sometimes get lost in the rush to modern, interactive experiences.
Any decisions about interface technology should be driven by a clear and unambiguous understanding of the audience. This varies from site to site of course, so log aggregation sites such as StatCounter don’t necessarily help your decision making. For larger sites with more conservative audiences it can be surprising just how many potentially influential users will be excluded by more modern interface technologies.