Tuesday, October 20, 2009

The Terror of Cascading Style Sheets

I've been involved in designing and building hundreds of web sites throughout my career. There is one common red thread that always seems to be present on any project that involves building and launching a web site: that thread could be summed up as 'layout and styling management'. The reason I'm mentioning that thread is to illustrate how, of all the other activities related to building/launching a web site, that one is the least predictable. However, at the same time, the layout and styling always gets buried in the mix, so that no one seems to be aware of the issues surrounding that activity.

Now, if we were to break down the effort needed to build and launch a typical web site, I'd say that, in my experience, the layout/styling efforts can unapologetically eat up anywhere between 15%  all the way up to 60% of the overall time and effort. Now, that's a significant chunk of resources that somehow never gets properly acknowledged. But in reality, and in hindsight, we all know that there always seems to be a lot of fiddling with the cascading stylesheets (CSS).

For some reason, no one seems to mind this wastefulness, but guess what -- I do! Rather than burning untold hours on making sure that certain CSS trick will work in certain versions of Microsoft Internet Explorer, I'd like to simply launch the site and move on to doing more lucrative things.

But the issue is with the CSS police (or, as I like to call them, CSS fascists). They insist that CSS is god, and it must be served and worshipped. So my question here is: why? What is it about CSS that should command a lot of our time, effort, and money? Why have we enslaved ourselves and found ourselves serving the gods of CSS? What could be realistically gained from this ridiculous system of slavery?

My answer is: nothing could be gained. We have merely fallen victims of some witless, clueless hackers who are terrorizing us with their oh-so impressive CSS skills. Who cares? And, oh, by the way, those hackers should get a life! Or at least get a girlfriend.

"But what's the alternative?" those who are more observant among you might ask. The answer is dead simple -- the alternative to CSS is NO CSS! Just abandon the crappy thing altogether.

"But, but, but, then our web sites will end up looking ugly!" I can hear you retort. Well, here's where the interesting bits come -- I've been lately launching a number of web sites that contain zero CSS code, either as separate CSS files or inline. The site's presentation is rendered by the browsers that strictly read the semantic markup and render the content in a knee-jerk fashion.

Guess what -- the customers love it! No one ever called to complain how the site is missing that inexpressibly lovely pale coral red background color, or what have you. Time to wake up, people: no one cares about that crap! No one is going to stop and marvel at the sublime colors, fonts, and layout decisions you and your team of designers have poured over for months (minor correction: no one except those same CSS fascists).

This is the ugly truth in today's world of web sites. Web designers of all colors will vehemently deny this, of course, but don't let them bully you. My advice is: be brave, be bold, be radical, lead the pack and release that site with no styling whatsoever. See what happens. And see how much money and time you save by firing those bloated designers and, by proxy, reducing the bloat of your site.

And in case you get cold feet, just placate yourself with these thoughts: "Hell, we can always add the facelift once the site is up and running; that's always a no-brainer. Throw in some colors, some layouts, fancy fonts, whathaveyou. But first, let's see if there are any detectable issues with the bare bones site."

Look at it this way: most people go on the web with a specific question in mind. All they are looking for is an answer to the specific question. And they really don't care about the appearance of the answer to that question, so long as the answer was easy to obtain.

For example, if I have a flight tonight, all I'd like to know right now is whether my flight is on time, or delayed, or cancelled. This information would be super important to me right now, wouldn't you agree? I'd like to be able to simply plug in my flight number, and get back one of the three possible answers:
  1. The flight is on time
  2. The flight has been delayed for x hours
  3. The flight's been canceled
Would I really care if the answer comes back to me in a certain font? No, no way! Would I get upset if the answer is not styled at all? Again, no way!

Time to wake up and smell the roses, folks. This may hurt for you to hear, but people in general don't care about visiting some dinky web site. All people want is the ability to ask a question and get back the correct and legible answer in less that 2 seconds. The appearances don't matter one bit.

Now that we know how things really work out there in the big bad world of world wide web, time to get back to the office and fire those pesky CSS gurus.