It may be “backwards” when considered from a pure engineering perspective (in the same way as other large systems do – a government always seems “wastefully bureaucratic”, and any 500+ year-old city seems like a disorganized nightmare, for example), but I think that’s the wrong way to think about it.
The way the development of the web works is (1) the features that get used are the ones that are shipped (cf. http://diveintohtml5.org/past.html), and (2) the design and optimization decisions of browser vendors are shaped by the uses seen “in the wild”, and in general browser changes try to “pave the cowpaths”.
So the ultimate shape of the technical infrastructure is this mishmash of ad-hoc features that stuck around (and often were radically repurposed for uses well beyond original intentions), the accumulated experience of millions of websites and web authors, and the scars of occasional attempts to rationalize and coherently reorganize things. It doesn’t look pretty when you start peeking at the details, but it works because it slowly evolved from something else that also worked, all the way back to something simple.
Usually, attempts to supplant such evolved systems by “better designed” alternatives fail miserably, because even the most careful best-intentioned designers often miss some important arbitrary-seeming-but-actually-quite-important aspects of the original large messy systems. For instance, this is how I feel about most American city planning of the last 50–100 years, with its endless cookie-cutter suburbs and required automobiles. The goal was to simplify and rationalize and put everything on a coherent grid, and in some ways the new design is more “efficient” than the twisty streets and irregular hodgepodge of shops and apartments of some old-world metropolis. But quite a bit is also sacrificed with the new city plans, and it’s hard to quantify or even understand since many old-city advantages are based on idiosyncrasies and accidents.
The way the development of the web works is (1) the features that get used are the ones that are shipped (cf. http://diveintohtml5.org/past.html), and (2) the design and optimization decisions of browser vendors are shaped by the uses seen “in the wild”, and in general browser changes try to “pave the cowpaths”.
So the ultimate shape of the technical infrastructure is this mishmash of ad-hoc features that stuck around (and often were radically repurposed for uses well beyond original intentions), the accumulated experience of millions of websites and web authors, and the scars of occasional attempts to rationalize and coherently reorganize things. It doesn’t look pretty when you start peeking at the details, but it works because it slowly evolved from something else that also worked, all the way back to something simple.
Usually, attempts to supplant such evolved systems by “better designed” alternatives fail miserably, because even the most careful best-intentioned designers often miss some important arbitrary-seeming-but-actually-quite-important aspects of the original large messy systems. For instance, this is how I feel about most American city planning of the last 50–100 years, with its endless cookie-cutter suburbs and required automobiles. The goal was to simplify and rationalize and put everything on a coherent grid, and in some ways the new design is more “efficient” than the twisty streets and irregular hodgepodge of shops and apartments of some old-world metropolis. But quite a bit is also sacrificed with the new city plans, and it’s hard to quantify or even understand since many old-city advantages are based on idiosyncrasies and accidents.