Thursday, February 23, 2006

Today's Word: Ignorance

Before I go any further, let me say that though I write this about ignorance in developers, I do not mean this necessarily as willful ignorance. Instead: I put the blame for this ignorance on Microsoft's monopoly and IE's complete saturation of the browser space.

Because such a high percentage of users use this browser (and such a fucking scary amount of them don't know that Internet Explorer does NOT equal the goddamn internet), a correspondingly high percentage of designers and developers code for Internet Explorer first and others second, if at all. This strange mentality often comes from the misconception that you can only code for one browser at a time, and you should always code for the one with the biggest userbase. Either that, or you should code for the most widely used browser first and then fix for everyone else.

I get that you need to support the biggest userbase - no argument there! However.

I'll give you reasons to code for standards first:

1. Forget the idealistic "oh, standards will save the poor!" kind of reason for now: coding shit for Internet Explorer first makes more work for you. Yes, you. Have a look at the fixes for CSS bugs in IE7. Have a look at the fixed box model in IE7. Look at the IE-specific crap people put in their CSS (JavaScript evaluation in statements? What the fuck did they do that for?), their AJAX-related code (ActiveX objects, woo-hoo!), their DOM manipulation code (totally fucking different and broken). Write all that for IE and then try to "tack on" support for everyone else? Why not just write it using the standards first and then put an if/else here and there where IE flips out?

2. Government contracts. This may not impact everyone, but going back to the "future-proof" concept, you'll have to re-code everything to pass Section 508 testing. I don't give a shit if 90% of government sites don't pass it now: most of them got uploaded by small offices (or large, ignorant ones) years ago. The templates simply stuck and now a single region of an agency can have a quarter of a million static fucking pages that don't validate. Now in order to get government contracts, by law, you will need to make things accessible. It doesn't matter if your government contact tells you that it doesn't have to pass: if they get sued it falls on you.

3. Maintenance. If you code like we've gone back to '99 or earlier and refuse to give up putting a font tag in every single table cell in your nested-table layout, you will hate yourself when the time comes to redesign. It will go faster to dump the entire codebase and start from scratch. Split things up into structure (markup), look and feel (stylesheets), and content (for fuck's sake, use templates...), switching looks or adding a new disclosure link at the bottom of each page will pass by infinitely faster.

4. Bandwidth costs money. The bigger the site (in traffic) or the denser the intranet web application, the more bandwidth you need per hit. Even without reducing the amount of code, if you pull styles out into external stylesheets, browsers can now cache that. Same for JavaScript files. Then, reduce your markup to hold nothing but the structure and suddenly your 80k - 100k hits weigh in at 10k.

5. Microsoft won't improve shit that so much badly written code still relies on. Think about user-agent strings (http://www.pgts.com.au/pgtsj/pgtsj0208c.html). Holy fuck, how did we end up with so many? Now guess how many non-mozilla browsers have "Mozilla" in them? Internet Explorer 7b2 on Longhorn even has "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)" Mozilla/4.0?! Guess why: people coded dumb browser-specific shit and forgot about it.

Thanks to Internet Explorer and Microsoft's way of convincing the world that they can't access the internet without it and web apps won't reach the world unless you code for it first, seemingly intelligent designers and developers still write bad, browser-specific code and think you should, too.

Labels: ,

2 Comments:

Blogger Isaac Bowen said...

Amen. I know I'm late to this, but dude... yeah. Well said.

4:02 PM  
Blogger The Hater said...

We aim to please.

6:45 PM  

Post a Comment

<< Home