My family and I traveled to <some remote, third world country> a few months ago, and I took my work with me. Getting any kind of work done over the 14 baud dialup connection we had in the village we stayed in was nearly impossible. Every web application on the internet is way too heavy to use over a nearly non-existent connection. Who are these people that build these apps? What's wrong with you all? You're HORRIBLE PEOPLE!! Think of the children! -- Joe the web development expert
You know what I'm talking about...you've read it too (if you're a web developer). The above is an exaggeration of course, but its not far off from the anecdotes in many articles I've read recently that brow-beat web developers about how modern web development should be done the right way...the only way.
It seems to be a growing trend in the web development community (maybe its just my twitter stream?) that's been kinda rubbing me the wrong way lately. This idea that all web development should be created equal and that as such, we web developers should all, always and for all time, be developing for the least common denominator. This idea that all web development is targeted for the global web where we never have any idea what kind of device or bandwidth could be used to consume our application at any given time is, frankly, ridiculous, and I really wish all of the conversations that suggest so would just stop. This paints a really broad stroke and pigeon-holes the browser as this generalized ideal that should be approached the same in every possible scenario, ever, which is just wrong.
The web is an amazing, ubiquitous platform that provides developers with a nearly universal runtime environment where applications can be developed and delivered to customers just about anywhere, anytime its needed. That's fantastic. But, that doesn't necessarily mean that that is always going to be the target scenario for every given application.
Every web application, on some level, has a set of requirements that (should) include(s) a fairly clearly understood target audience, and a set of guidelines that can (should) be targeted for the application (if this information isn't clearly understood and provided, then you're off the hook with regard to performance issues, IMHO). These guidelines most often include target platforms, browsers (and their various versions), and should also include a target minimum bandwidth as well. All of this should be taken into consideration when designing and implementing a solution for the web so that the number and size of requests required to load and run the application are optimized for the target environment.
The web platform is used by a lot of different people for a lot of different reasons. I'd love it if we could all stop making broad-sweeping generalizations about how we should all be doing it all of the time. Understand the requirements and target audience for each application, and design accordingly.
/me steps down off his soapbox...