OK, back to web stuff. I’ve been thinking a lot about the state of web design recently. [This follows from my previous ramblings*.] Of course, now I get paid to think about some of this stuff, which is a bonus, and the production angle is related. See, despite the limits of tables and spacer gifs, what “traditional” web design offered was a stable design medium with which to work with. The web design ‘vocabulary’ could be extended and experimented with because the basics, the grammar, was relatively well agreed upon.
The further improvements and standardizations which in theory would make the lives of web developers easier, have instead had the opposite effect, turning client-side presentation even further polyglot and unmanageable (wow, what incredible irony). Compound that with deficiencies within the presentation language (I’ve moaned, you’ve moaned, we’ve all moaned about CSS – some more recent talk on css-discuss), and implementations, and we have a royal clusterfuck. Sure we’re in the “technical era.” Why? Because it takes the majority of one’s creative energy, time, and effort to get even the simplest layouts to work in v4+ browsers. Sure you might be able to style it, but if you’re creating production designs (where relatively acceptable visual layouts on common browsers are required), those constraints largely preclude even the option of writing even validating transitional code much less strict codes.
Hmm, do I sound frustrated? Of course I am. I want to move on with separating style and content and validating, if only for accessibility and aesthetics’ sake – random($foo) has been completely visually formatted with CSS since I put it on it’s own domain name back in the beginning of 2000 – however, it’s just impossible to do when one also needs to figure out increasingly convoluted methods of backward and forward compatibility. All these, of course are arguments for why 1) one shouldn’t do web development and 2) why it’s much more pleasant to work on the back-end.
Hmm, wow, this preface has turned out much longer than I intended. It’s 4AM. I was originally going to talk about web development being similar to game development, with client-side design being equivalent to the graphics engines, where backwards compatibility and graceful degradation are similarly important (and vexing) issues, a discombobule of working around vendor and implementation specific bugs and peculiarities and dealing with various standards. As the web matures, these things will stabilize. I see a lot of independent designers these days experimenting and pushing the technical boundaries of the DOM/CSS as analogous to the role once filled by the demo scene. OK, it’s not a perfect analogy, but this is at least as good as Aaron‘s rollerblading one. 😉