The State of the Craft (HTML)

I just recently saw this posting by Eric Meyer on how browser makers and big companies interact and how browsers (and developers) are put in a bad situation. The short version is: Browser makers want to update their browser to follow standards. Terrible developers complain that their f**ked up HTML and JS will break if the browser changes.

In the last month or two, I have had the opportunity to recreate other people’s html. I am creating Marketo Landing Page templates that “look” like their site. Each one is pretty quick. But when I view their source, I am really disgusted by the horrible html being used. Things like spacer.gif are only the beginning. Tags like <TD background=”foo.gif”> are just horrible. Iframes all over the place, nested tables to create padding, it makes my head spin.

I just can’t believe how people call themselves web developers and don’t take their craft seriously. If you are a cobbler, you should be interested in all new foot technologies. If you are a chef, you should read up on the latest culinary innovations. If you are a web developer you should absolutely know CSS and how to make semantic (clean, concise) markup.

After looking at 20 different sites and recreating them, I have concluded that the state of the craft is absolutely dismal. Maybe 5% of developers are trying to make their code short and clean. Of course, if you are reading this, there is a good chance you are in the 5%. However, we must help the craft.

When someone you know, who is a web developer, makes a site with nasty 1998 html, you must intervene. The first step to recovery is to admit you have a problem.

If developers kept up to date, then browser makers could focus on the right things. Like fixing their standards!

Archives

Meta

7 thoughts on “The State of the Craft (HTML)”

It’s interesting that you used the chef metaphor. A Java developer looked at my resume (HTML, CSS, etc.) last year and sniffed, “Well, that’s like a chef claiming he can turn on the oven!”

And this guy’s HTML was pure vintage 1998 crap in table-based layout. He got the gig as “Web developer” because of his Java credentials.

I’m seeing a lot of client requisitions collapsing several aspects of Web development into one role. The unsatisfying result is this invalid, badly formed, nonsemantic, and thoroughly outdated markup you’re observing, because front-end specialists seem to be considered unnecessary meddlers.

This isn’t an issue limited to web designers. We see it in software development too. Once you’ve got an application up and working as desired, there’s a big disincentive to upgrade it just for the sake of upgrading. You need to justify your upgrade in terms of what new features / functionality the upgrade will provide.

From the business perspective, if a site looks OK in the browser, it’s a really hard sell to redo that crappy old HTML into newer, cleaner HTML unless you can work something else into the mix — new content, better SEO, etc. It’s all about the ROI, after all.

In short — yes, there is a lot of old, crufty, butt-ugly code (browser and otherwise) out there. I would not necessarily assume that it’s caused by either lack of skills or lack of pride in your work, though.

Unfortunately this isn’t limited to web designers or software developers, this permeates throughout every industry. You can’t image the horrible systems that local government are using, but because they are in the background (i.e. the public can’t access it directly) those who create or update the systems don’t value efficiency. If nobody can see the underlying structure, than most people don’t care what it looks like or how well it is done. The web in unique everyone has access to the “code” which you might think would lead to some accountability, but I’m not surprised that it hasn’t. Beyond industry I wonder if this ratio applies to everyday responsibilities, like how one keeps their house clean or raises their children. Does society take the extra time (and have the expertise) to do thing right?

The thing I try to sell around here (and fortunately have just enough “power” to more or less enforce) is maintainability. Do it right so that it’s easier (and costs less) to iterate on later. That’s a battle I’ve been winning at several places over the last year or so. Before that, I got killed for even suggesting it.

@Rachel, In my experience it is not an issue of management priorities. At Intuit, I did an experiment. I redid the homepage using CSS. I then printed out the old code on paper (12 pages) and my code on paper (2 pages). I printed out the old CSS (36 pages!) and my CSS (5 pages). This was not legacy code.

I worked with the web developers directly, who I had personal interaction with, to teach them proper html and css. They were not programmers who thought the UI was beneath them (although those people exist in droves), these were pure web developers who had one job, to write html and css. This was my first taste of the state of the craft, which is dismal.

People are writing fresh brand new code in a way that takes much more time and is much less maintainable. (The old way)

@Rob, I try to make that argument as well. In fact, I want to blog specifically on that topic.

@Dan, I agree. Lack of accountability makes for rotten systems. (Front and Back) I am a big fan of pair programming. It forces people to write less embarrassing code.