Code is Food

Even if you normally skip my “geek” entries, please read this.

Scoble sees I’m unsubscribing from Lockergnome and says:

I’m more pragmatic. Can I look at the page in my browser? Can I subscribe to the RSS feeds? If so, why does it matter whether the code underneath was done with tables or CSS? Call me a fool, but I judge web sites by whether or not they have content and experiences that enrich my life, not whether the code underneath them fits my expectations.

Robert isn’t a fool, we obviously have a breakdown in communications though. I can’t understand why anyone wouldn’t be shocked at the code snippet I posted and Robert doesn’t understand why anyone would care. In fact there is probably a large segment of my audience here who doesn’t have a clue why I get so worked up over this stuff. All morning I’ve struggled trying to think of an analogy that captures the essence of what is going on here.

It became more obvious to me that HTML and CSS code and the health of the web has many parallels to the food you eat and the health of your body. HTML is the ingredients and CSS is the world-class chef that takes the ingredients and arranges them in an attractive, delicious way.

So lets take your token bad markup—multiple nested tables for layout, badly nested tags, font tags all over the place—this is McDonald’s. If I’m on a road trip and need a quick bite, I’ll drive through because it’s convenient and ubiquitous. Though it’s obviously bad for you, it’s not going to kill you if you have a Big Mac. However if you try eating it every day, your body revolts and starts to deteriorate rapidly (original article).

Within a few days of beginning his drive-through diet, Spurlock, 33, was vomiting out the window of his car, and doctors who examined him were shocked at how rapidly Spurlock’s entire body deteriorated.

“It was really crazy – my body basically fell apart over the course of 30 days,” Spurlock told The Post.

His liver became toxic, his cholesterol shot up from a low 165 to 230, his libido flagged and he suffered headaches and depression.

I think the Big Mac is a pretty good example of bad ingredients crappily presented. Bad markup and no CSS.

Now lets move away from McDonald’s to a fictional restaurant like McDonald’s but without the nice clown and all the charities. This company has the same sort of mediocre food but also mistreats its workers, has lax sanitation standards, puts farmers out of business, has slow service, and uses slave labor overseas. Now in additional to the health reasons for not eating at this restaurant, you have a number of ethical reasons. Why should you support any restaurant that is so contrary to principles that you believe in?

That is the web. Think of your poor browser, which has to work incredibly hard to try and interpret what is essentially markup gibberish and shape it into something it can present to you. The worse the markup is, the slower the page is going to load and the more likely it won’t be presented as the author intended. RSS and syndication doesn’t do a thing to solve the problem, it just tries to shield you from it. (Let me mess with my RSS 2 feed until its at the markup level of their page, and see if your aggregator even still reads it.) Robert of all people should know that the quality of code on most websites wouldn’t be accepted for a second inside of any of Microsoft’s products. Longhorn is not being built on crappy code held together in an ad-hoc fashion, it’s being built on standards. Why shouldn’t the web expect that same level of robustness?

Sure some people don’t care about whatever markup is behind the web pages they visit. Out of site and out of mind, right? (Very apathetic American.) But I care, and it’s because of people who care that the web has moved beyond the near-unusable mess it was 5-7 years ago. On one level I care about the health of the web, the long-term viability of the sites and pages and documents that are shaping our culture and society. On a deeper level I hold a number of principles that the web should be efficient, standards-based, and accessible. No site is perfect, but some try and some don’t.

Lockergnome regressing from the standards-based is more than just a bad business decision, it is essentially giving the middle finger to the community around the world that cares about these things. Their lack of communication on this issue beyond a few flippant remarks in a newsletter is insulting. They either don’t care or are ignorant, neither of which I’m inclined to tolerate. I’m not even going to address the point, as other have, that they are supposed to have a web development newsletter.

I’m not just unsubscribing, I’m boycotting. There comes a point when you see blatant disrespect for things you care about and you can either sit back and pretend it doesn’t bother you or you can speak out. It’s two different types of people, and if you’re one of the former then you should examine the effects of your apathy.

To recap, Lockergnome just isn’t just serving bad ingredients with bad presentation, they’re the restaurant you visit every day for its great service and food that one day changes into a dive with spoiled food and flies in the kitchen, and then tells you that keeping the place clean is too “fancy-schmancy” and that they don’t need to keep using fresh food because no one will notice anyway and it’s too much trouble. The next day you see them on the news for rat droppings, food at the wrong temperature, and slime in the ice machine.

Of course at some point the analogy breaks down because I don’t know of any food that is incredibly cheap, tastes great, is very healthy, and stays fresh forever without refrigeration. That’s well-formed XHTML and CSS.

So that’s why I care. I don’t expect everyone to care that much, but at least understand why I do.

72 thoughts on “Code is Food

  1. Your analogy to food is a good one. I happen to be someone who eats mainly organic foods, which tend to come from companies and farmers that care about the condition of the land, not about getting the maximum out of it at any cost, destroying the soil in the process…

  2. I like the food analogy and I know where you are coming from. Why should you support something that goes against your own ideals like that? I know if Nick suddenly told me that we were going to forgo a Web standard redesign for Digital Web — I’d quit so fast it’d make his head spin. But that would never happen, I’m quite sure.

    The reason you, I and many other folks post about these issues and spent our extra time trying to promote what is good for the Web as a whole is becasue we care about it and want to give something positive to the community, evoke change and move things forward. It’s hard to swallow when you see this kind of large step backwards from a perceived leader in the Web development community. What kind of message does that send to newbies? As if they don’t learn enought backwards crap in school.

    Anyway — You’ve got my support.

  3. I look at it from a whole different worldview. Maybe I’ll expand upon this more later, but here’s the thinking I have.

    I work in aerospace. The way aerospace gets anything done in a realm of many contractors and suppliers is with open, government-controlled standards. Need to anodize a part? Find a MIL-STD that tells you how to etch the surface with acid to prepare and how long to leave it in the tank. Anyone who’s certified to that MIL-STD for anodization [and there’s a bunch of them, both suppliers and standards, because there are many different anodization processes out there for aerospace, including black, Teflon-impregnated :D] will be able to do the job.

    What’s the benefit of this? Choice. Any compliant supplier should be able to produce good parts. You can choose a supplier that’s local or that’s cheap [and sometimes, the twain meet].

    If there were no standards, you’d have to write your own process specification for how to do it, giving the supplier strict work instructions [first A, then B, then C]. Even then, the spec would only be good for your parts, for your processes. That’s proprietary.

    Now, just today [just before walking back to my office and taking a syndication-feed break], I’ve been dealing with a BigCo aerospace company that builds stuff for NASA [think the sound of a spring suddenly changing length], which has designed a lot of hardware with internal company specifications. Now, we were a subcontractor to that BigCo on all these parts, so as a sub we have a copy of their workmanship standards. In many cases, they are very close to the MIL-STD’s that are out there. That’s not true of all cases, though; to build up an electrical cable, we have to use a BigCo-approved process specification that requires tools certified to that specification. That limits the tools you can use to build that cable, and even if you have the tools, you have to send them to the BigCo to certify that they meet the spec!

    You can see where this does not exactly provide value to the NASA customer, especially since that BigCo now is no longer building much of this hardware for NASA. Who is building it? Other contractors, the other aerospace BigCo, international partners, etc. But who owns the standards? The BigCo.

    Oooooooops.

    Now, I know that HTML-3.2-era markup isn’t proprietary–it’s based upon an open standard. But there are many parallels to be drawn, and that era did have its share of proprietary markup. Even if you move away from the proprietary code and just use nested tables and other such things … you’re still using code that takes longer to load [because there’s more bytes per page] and code that is easy to muck up.

    The argument seems to be that “no one supports standards”. Baloney. The standards are new and changing. What if we’d never standardized on things like screw sizes, door openings, plumbing fittings, etc.? Everything would need an expert and cost much, much more than it could.

    [/soapbox]

    Hope that made sense. I’m still mad at the BigCo [and yet admiring of their moxie for having NASA pay them to work their way into a sole-source corner].

  4. What really annoys me is this: Lockergnome is changing looks one more time and moving to a more traditional layout and coding structure.

    It isn’t traditional. It is wrong. Elements are being used for the wrong purpose, and every website that uses this archaic approach is perpetuating a situation where the World Wide Web works like crap. This is 2004, not 1997.

  5. Pingback: das Netzbuch
  6. I love your analogy. I’ve explained to many people doing web design and learning antiquated techniques (such as nested tables and image maps) the benefits of CSS and standards. I came up with an analogy to help my explanation. Web design and programming is an art. Traditional coding for the web is like giving an artist a chisel and slab of stone. CSS is like giving an artist a paintbrush. You can do beautiful things in both, but it should be obvious which one allows for more creativity and flexibitily.

  7. I look at lockernome sometimes. But it always reminds me of Mathew Lesko, that annoying guy who does tv ads that tell you that by buying his book you can get the government to throw money at you. I think the books are about $200!

  8. I think this is a good analogy for showing your dedication and interest in maintaining web standards.
    And this is very much like art– content and craftmanship go together, and without one or the other the piece is much less than it could have been. Less powerful, less appealing, whatever….
    If you want to boycott this site because it goes against your ideals, then go for it.

  9. In my opinion your McDonalds analogy does not fit. No average user gets hurt by bad coded but working sites except the 1% pf users who have/want to deal in a different way with them. I can understand you from a web-professional point of view but even then, if you compare website-creation techniques from 5 years ago with today’s, nothing did change for the better or worse, it just got different.

  10. re: “No average user gets hurt by bad coded but working sites except the 1% pf users who have/want to deal in a different way with them.”

    No average user gets hurt by the lack of wheelchair ramps except the 0.01% of users who have/want to move around in a different way. That doesn’t make it right to deny them access.

  11. Actually Andi, you could make the argument that average web surfers are harmed by bad code. The bloated markup used in most sites today clogs the bandwidth of the entire internet in proportion to how often the site is viewed. Popular sites coded badly cause exponentially more traffic, and eventually that bloat can slow down the entire net from the backbone level down to the individual connection. While the company whose site is so bloated ends up paying more for bandwidth usage, everyone on the net still pays in net latency while the bloat sludges through the web’s arteries. It may not be distinctly noticible except in egregious instances of exceptionally poorly-coded sites, but neither might you notice on a daily basis the five extra minutes it takes to commute to work because of badly-designed traffic flow patterns – you just think of it as normal because you don’t know any better.

    Therein lies the ongoing great challenge of standards awareness – the vast majority of users, and I daresay web designers, don’t know any better, and when a site like LockerGnome takes a gigantic leap backwards, it harms the cause of standards all the more because the site is aimed squarely at the people it’s intending to “aid”.

  12. That is the web. Think of your poor browser, which has to work incredibly hard to try and interpret what is essentially markup gibberish and shape it into something it can present to you.

    This is getting silly. If LockerGnome has become less accessible with the redesign, that’s a valid point of criticism. Most of the rest is completely pedantic — millions of Web sites are table-based, no-CSS, markup soup, and the addition of one more isn’t going to make a difference unless they start teaching people to follow their lead.

    I think it’s great that there are Web designers out there like Mark Pilgrim who lead by example. But most of us don’t, and I fail to see how it’s an offense worthy of boycott for LockerGnome to make its source code less pleasant for you to look at. The presentation is all that matters. Fault it for bad usability, bad accessibility, or bad aesthetics. But if it’s bad HTML, LockerGnome is hardly alone in that distinction.

  13. I never used lockergnome before, but I was certainly more inclined to do so than I am now. Not only is their code horrible! The layout has also taken a nose dive into the ugly-concrete, bringing it back to what I would expect in the mid-90’s…

  14. I care as much as you! And am not an uber-geek even. I loved your article, and wish you greater readership in time to come.

  15. I can understand you from a web-professional point of view but even then, if you compare website-creation techniques from 5 years ago with todayā€™s, nothing did change for the better or worse, it just got different.

    No, it changed for the better, much much better.

    If you can’t see why separating content from presentation is a good thing then you have probably never tried to update a poorly designed site or use a site in another way (e.g. from a command line, or without images, or with your own colour scheme, or with larger fonts, or with a screen-reader, etc).

  16. Pingback: Read/Write Web
  17. hi “s”.
    “No, it changed for the better, much much better. ”
    sorry for not expressing my thoughts more clearly. neither do i think that css’s goals are wrong nor that css does not work but as of the current state of implementation in browsers and tools, creating a good-looking, compatible, site is as difficult as it was in 1998. especially for the nonprofessional creator.
    i think that if lockergnomes creator could have done it better, he would have done so. but i did not know the site before yesterday, so i can’t really tell.
    nevertheless, i agree that the redesign, especially as the site wants to serve the professionals, is a shame.

  18. “No average user gets hurt by the lack of wheelchair ramps except the 0.01% of users who have/want to move around in a different way.”
    yes mark, that’s why i said that and strangely it was not a topic in this discussion before.

  19. You have made your stand and put your foot down. Good for you. I applaud your principles. But your boycott will do nothing except possibly promote discussion. You wont be saving any overworked or neglected bytes with your stand. As a developer myself I like to aspire to the higher standards of simple markup and separate style and content. But I also work for someone. The business owner that needs a website. That guy does not know much about what I do and cares very little about how elegant the code is. But he does know what he likes when he sees it, and when he sees what he likes, I get paid.

    I have spent many fine hours trying to layout a page as designed. Indenting content blocks to line up perfectly with the logo. Tweaking margin and padding settings in the css to get the bullet points to hang gently off the left margin. You know what, more times than not the elegant code has to get tossed in order to get business guy what he wants. We have all cursed IE6 because we must support the lowest common denominator (and NS4 before that). Many of us have had to face down a designer that is ranting about whitespace or kerning or a poor font. Your holy grail of fine code only gets in my way at this point. Just because a table should not be used as a layout grid does not mean they donā€™t make excellent layout grids that work across platforms and make elements go exactly where they belong in the design specs. That nasty code you are bitching about has made me a fast, and cross platform hero to the business guy that pays me. Bottom line. I will use whatever ugly kludge necessary to make business guy like my work and get me paid. When your elegant code can do every thing on every platform in less time, then I will switch. Until then I will work in the real world.

  20. You know, I started as a web designed “back in the day” and now I architect enterprise systems… From my perspective, this was perhaps the single dumbest post and series of replies I’ve ever seen.

    Who gives a flying f***? Does it WORK? Or didn’t you realize that the point of building a site is to DO SOMETHING, whether it’s to communicate something to someone, sell them something, or whatever. Unless you can lay out the page in your own head and don’t need a browser and the ugly HTML is hurting your brain cells, then your analogy is a pile of crap. It’s not hurting you. Don’t “View Source”… Get back to work and get something done and quit blathering on about the “purity” of the markup.

    If there’s something that doesn’t work, for instance handicapped usage of the site, then the proprietors of that site have to decide if that’s a requirement and a failure of the current design. If it’s a requirement, then it DOESN’T work (see above), but that has nothing to do with whether you like the HTML.

    It’s time to wake up and realize you’re paid to put the pretty face on something that actually does work, and that’s it.

  21. Grendel it doesn’t work. We’re not talking about just markup, we’re talking about standards and modern web design. Lockergnome’s website is worse in every conceivable way: it’s slower to load, less accesible, uglier, and less intuitive to navigate. You can’t say that they don’t know how to do web standards or that web standards were too much trouble to them because the site used XHTML/CSS before and was fine. Please don’t read one sentence of what people are saying and fixate on that.

  22. I just had a look at the source code of Matt’s WordPress software, and I’ve got some bad news. It’s implemented in PHP, which is great for fast hacks but terrible for large projects that need to scale. There’s no division of presentation and logic, making it impossible for Web designers and programmers to collaborate without stepping all over each other. PHP encourages developers to use global variables, discourages object orientation, and has functions with piss-poor adherence to naming conventions. PHP often introduces backwards incompatibilities and shows many signs of being released without enough public input. My favorite: the language’s == operator can’t distinguish between a function that returns 0 and one that returns boolean false, which required the introduction of ===, the “equals (and I really mean it this time) operator”.

    We need to boycott WordPress. The software produces lovely XHTML and CSS based Web sites, but underneath, it’s a bunch of junk food PHP code that demonstrates the American desire for instant gratification. Rewrite that sucker in Java using the Struts framework at your earliest convenience.

  23. You’re talking about ugly junk food code, then you advocate Struts, perhaps the largest pile of crap around?

  24. I’ve written on this before and I for one see Lockergnome as having an accidental responsibility to the web standards community because, first they are “tech luminaries” for those who do not reside in the ivory towers that we are accused of living in. That they have given the middle finger to the web standards community proves as a signal for others to go ahead and ignore the work of Zeldman, Celik, and the others.

    “If Lockergnome uses tables, why can’t I,” they might ask. They have done much, much worse than they think.

  25. Geez, Matt, someone (of quite respectable standing, no less) disagrees with you and draws an analogy you can’t defend against, and you resort to saying the retort is off-topic? Pretty weak. And, Grendel, Rogers’ post was about how stupid it is to nitpick at what’s under the hood if it gives you results you need. His criticisms of PHP are accurate, and yet the implication is that regardless, there’s nothing wrong with using it if it produces what you need (in this case, a blogging tool like WordPress). Ditto for Struts (and Java itself) — lots of warts, but that doesn’t prevent ppl from building useful things with it. Ditto for [insert technology here: VB, C++, Perl, SGML, XSLT, TeX….]

    If the result is useful, then the building process is a problem for the producer, not the consumer. And know that “useful” is not absolute; the best one can hope for is that a product or process is good, not perfect.

    So, bad markup in this case is primarily* of concern to the producer, not the consumer. The LG people can, and have, determined the tradeoffs they’re willing to make for ease of maintenance of their site. All maintenance sucks; some techniques alleviate parts of that, but many of them have drawbacks as serious as the techniques they seek to replace.

    In the LG case, usefulness is primarily about the consumer. If the site is ugly (yes, fairly) or unusable (no, quite usable to the vast majority, and fairly usable even for the edge cases), then those problems make it less useful than it might otherwise be, and it’s worth exploring the extent to which these problems result from impure markup techniques.

    But Matt’s screed didn’t take much issue with that; it was primarily about the purity of the markup itself. LG remains pretty useful: did any of you really have any problems locating and reading the articles? Any more so than before the redesign>? Were the problems related to the markup, or the visual design and information architecture? If you can’t trace your usability problems to the markup itself, then this is a religious issue, and you should get over it. Code for yourself with as much purity as you can afford or muster. Let others do what they need to. If you find their product useful, then use it. Or not. But get off the high horse.

    *Yes, it’s wasteful of bandwidth, and may be slower to render. But the bandwidth will be used anyway — it’s a truism that demand grows to meet and exceed supply, so for any size of pipe, we will eventully grow to fill that pipe. Making the pipe bigger only encourages more growth to fill it — it does NOT keep the growth flat and provide existing users the luxury of more room. A quick look at the Southern California freeway system proves it. So these arguments don’t move me — there are a huge number of factors in the speed of a user’s Web experience, and some extra markup is only one of them.

  26. Val, as I replied to Roger in an email, and I would reply to you if you left your email or website, it appeared to be a comment of the type intended to incite people, would come to no productive conclusion, and lead the discussion away from the topic at hand. Good HTML and bad HTML is not the same as PHP and some other language. Honestly, at first I thought it was a joke. I don’t want a programming language holy war here. PHP sucks, but I like it. It has nothing to do with HTML and CSS (formats) or Lockergnome except by an incredible leap. If a similar comment had been worded differently and come from an anonymous poster I simply would have deleted it.

  27. Many people seem to be “defending” bad markup, which I find hard to understand. Pretend you’re a CTO of a large company, you have a current website that uses standards-compliant markup, loads fast, looks good, and works well in browsers 99% of your audience uses.

    What is the business case for bad markup?

  28. I find it interesting to see a few folks saying that it “doesn’t matter” what the HTML is like as long as it works. Doesn’t code quality matter? What about maintenance? Most of the cost of software – of any sort – is in the maintenance phase. Well-written code is cheaper to maintain – cut corners now and you pay for it later and then some.

    I’ve never visited LockerGnome but after reading this, I’d be very wary of any web development advice they were giving out…

  29. You can produce markup so bad and meaningless that your client will always come back to you for slight modifications or even just content additions, paying for each of these operations. While that could have taken them one minute to make one of their employees do it in any editor, if the website used standard and semantic markup.

    There’s one business case for bad markup.
    (I can’t believe I just typed that. Heh, you didn’t say we were supposed to bring honesty in that business case. šŸ˜‰

  30. Michel’s comment comes back to exactly what I rambled on way the heck back up there–it gives you lock-in, which is good for the producer but not the consumer.

  31. “LG remains pretty useful: did any of you really have any problems locating and reading the articles?”

    Obviously, you haven’t looked at the site in Lynx. That’s how a blind user (and remember, Google is the most active blind web surfer in the world) would see the site. Every time you go to a new page, you first get a long list of links before you ever see any real content.

    And before anyone thinks that blind users don’t care about web design, let me head you off by telling you that a notion like that is flat-out wrong. I remember a blind web designer on the css-discuss mailing list asking for sighted people to check his site to make sure that it looked okay. And in case you’re wondering, yes the site looked quite good.

    As far as Rogers Cadenhead’s ad-hominem attack on WordPress’ PHP code* goes, while I can appreciate the tenuous analogy, it’s a side-issue. Because WordPress outputs valid XHTML, there’s little reason for the designer and the programmer to step on each other’s toes. The designer can just write a CSS file, and leave the markup alone.

    And as another side-note, more than one expert has said before that MVC might not be the best architecture for web-based apps. I’m not saying that the WordPress code couldn’t be cleaned up some more, because it definitely can (and we’re making it better with each release). But if you want to rewrite WordPress in Java/Struts, feel free. šŸ™‚

    * Is ‘ad-hominem’ the right term if the attack is against the tech, and not the person? šŸ™‚

  32. It’s sad, I’ve have seen their ( now old ) XHTML website and I thought it was one of the best XHTML websites I had ever seen. I can honestly understand why they wanted to go back to a table-based design because there were a few problems for their visitors but why go all the way back ( 1999 ? ) to <font>, <td align="left"> , <table border="0" cellspacing="0" cellpadding="0" width="778" bgcolor="#FFFFFF">, ... . I know why webdesigners like tables, I like them for the exact same reasons but they could have easely used tables in combination with CSS like <table id="wrapper"><tr><td id="header"><p> ... </p></td></tr></table> . No one would have criticized them if they had done the redesign like this. I really can’t see the logic in the way they redesigned it now.

  33. You seem to be trying to make the case for good markup for reasons of usability, speed, and consistency. Great; those are all noble goals. But then you judge a site purely on its markup. Whoa. Isn’t that getting things backwards?

    If they want to spend more time making tables work well in all browsers, that’s their business. If it’s usable and fast and consistent across browsers, that’s what really matters.

    I hear people saying programs should be written in a high-level language like Python or Java instead of C++, which would completely avoid null-pointer bugs in their code. Does that mean we should boycott all C++ programs? Hardly. Instead let’s boycott programs with lots of null-pointer bugs.

    Lesson: CSS is a means, not an end. When you boycott based on ends, you force people to improve their technology to meet your standards of quality. When you boycott based on means, you sound like a religious nut.

  34. Wow. You people really don’t get it do you? From your comments it seems you really have no idea what the internet is about or what its potential is.

    I seriously get the impression that you’d be happy with a website that used image-maps for every page.

  35. No average user gets hurt by the lack of wheelchair ramps except the 0.01% of users who have/want to move around in a different way.

    And while the other 99% don’t get hurt, they do benefit from it. It’s much easier to push a stroller up a ramp than stairs. Much easier to wheel out packages on a dolly. Much easier to move out that couch with a ramp handy.

    Accessibility is *NOT* about accomodating just that ‘1%’. It’s about making something better and more accessible to *100%* of the users.

  36. KH, Lockergnome’s atrocious markup is merely an illustration of the general incompetence of the new site. I used it in a previous post because to a web developer it’s a very powerful “image.” I did not quote markup in this post because, despite the comments it’s getting, this isn’t meant for web developers. This is for the people who couldn’t care less about any markup language, and who care about user experience and speed but only in a subconcious way. Someone asked my why I care. This is why I care. The analogy is to make the points self-evident even if you don’t speak HTML and CSS. Sure, you can eat McDonald’s every day (it just works!) but then you start throwing up out of your care and your health rapidly deteriorates.

    People are talking past what I’m saying, not to it.

  37. Sorry Matt, I’m not getting at you or anything, but it annoys me when people misuse this

    “This is for the people who could care less about any markup language” should be “This is for the people who couldn’t care less about any markup language”

    That’s for everyone.

  38. What? Correct grammar, like there are standards or something? Can I not why talk how ever I want? Ass long as people under stand me.p

    But really, thanks Hemebond. Sometimes I get sloppy when I write comments. Blogging is great, but now that the personal publishing revolution is well underway we need the personal editing revolution to make things coherent.

  39. I’m astounded at some of the comments being left here. The attractive, functional, standards-embracing Lockergnome has been replaced by an ugly, bloated, and standards-ignorant version. Yet for reasons which escape me, some are saying that there is nothing wrong with that strategy.

    If web designers always built sites with standards-compliant markup, free of the bloated presentational crap that should be left to CSS, the World Wide Web would be a far better place. Instead, pre-1997 coding techniques are stunting the Web’s development.

    The worst argument is this: I will use whatever ugly kludge necessary to make business guy like my work and get me paid. When your elegant code can do every thing on every platform in less time, then I will switch. Until then I will work in the real world.

    By embracing standards fully, I can now build web pages that work better, look better, load quicker, cost less, and are easier to change. Savings can be found everywhere – for me and my clients. It is better business sense. Not only that, I find that my pages work on more devices than before, and they are accessible by a larger group of people. The case for using web standards is utterly compelling.

    I should add that I still like a Big Mac once in a while.

  40. It’s funny that Scoble, a Microsoft employee, does not care about quality of code. These are the jackasses that give my products a bad name. Someone remind me to fire him…then he’ll have more time to work on his blog.

  41. Matt,
    Sorry ’bout no contact info on my post — I usually don’t leave email addy’s cuz they can easily become spam-bait.
    My last post, and this one, are pretty long, so if you want to edit or delete, I understand. I’m not trying to dominate your blog! I guess I’ve stood at the sidelines of this debate too long; I may have to sart blogging on this myself. For the curious, my site is currently woefully out-of-date resume-ware at http://www.valcohen.com and embarassingly old-skool markup. It uses frames — how often do you see that anymore?

    I guess what moved me from lurker to poster was how you blew off Rogers’ argument, which I *did* find applicable. Your response indicates you still don’t think the parallel very strong — and Dougal agrees. But while Dougal gives a reason (too narrow by my view), you don’t.

    Looking back at your post, the main points I see you raise are:

    1) consuming bad markup, over the long haul, is bad for me and everyone/thing else on the Web
    2) LG is setting a bad example, and they should set a good one, for ppl will look to their implementation for guidance
    3) it’s against my principles to support people who don’t support my principles, in deed as well as in words.

    (I may have missed other central points; if I have, it’s an honest oversight, not cuz I’m deliberately trying to skew the argument. Please point out any others that aren’t variants of the ones I found.)

    So, in order:
    1) The sky’s not falling; I’ve been abe to get a lot of (increasing) value from the Web since about 1993. By the time the Web would implode from the bad crap, we’ll be on to technologies that make XHTML/CSS look just as outdated as FONT elements are now. Of course, this means I’m not a big Sematic Web believer. Show me when it happens; in the meantime I’ll continue to get value from the inference engines (Google et al) that do a decent job in spite of the relative lack of structure.

    2) perhaps, but is that reason to boycott them? To me, this is the point that maps well to Rogers’ PHP analogy. Arguable, using PHP is a bad way to code. A ‘real’ developer would use a ‘real’ language (for various definitions of ‘real’: OO, strongly typed, etc.), or a product built in one. If you don’t, then you’re developing wrong. And if you’re respected, people will follow yout lead, and MORe people will use the BAD THING, and where would that get us? With PHP, it gets us a LOT of people programming, more than might if they were limited to C++. Many of those people write bad code — buggy, doesn’t scale, hard to maintain, insecure, etc. OTOH, some create great things!

    With HTML, same thing. Lots of people do it in various ‘wrong’ ways. But if it meets their goals, I think that’s good.

    3) My original point: if LG is producing meaningful content, and you can consume it, then your argument with them is a religious one. Because they don’t eat their own dogfood, does that really make their articles less credible? Does the article about image rollovers in CSS not work because they don’t do rollovers like that themselves?

    As you might surmise, I’m more of a pragmatist on technology issues than a zealot. All of these issues are part of business decisions. LG made some decisions based on their undetstanding of the technologies and their business goals. Those of you who think it’s a slamdunk that XHTML/CSS is automagically easier to produce or maintain than old-skool HTML and tables are dead wrong, and I (and most of you) have the experience to prove it. Look at the incredible hoops (CSS hacks, in particular) people jump thru to make their stuff work as expected.

    This is NOT to say I’m against doing things the way you prescribe — just the opposite, I do every chance I get. But it’s always balanced by a variety of factors. Do you care about every single potential reader? Probably not, or you’d translate your site into a bunch of languages — it’s snobbery to think English is the One and Only. I may accommodate the blind by having a very well-formed RS feed, while at the same time producing table-based layouts so my visual presentation works as intended for the widest number of sighted people as practical. Not as possible, but as practical. There’s no conflict between using tables for layout and providing a good RSS feed — just the opposite, it’s a very Chris Pirillo’s site — it’s completely unusable to me as a Web site, cuz his choice of typeface, while amusing for about 5 secs, it damn near illegible. But he has an RSS feed, so I’ll access his content that way. New-standards didn’t get me a good experience on his site. OTOH, there are any number of sites that are ugly under the hood — I prolly won’t look at their source for inspiration, but get plenty of value from the content they publish.

    Lynx users are perhaps outside the audience LG is most concerned to serve. It’s BS that Google is basically a Lynx front-end to an indexer; Google et al use a number of standard identifiable elements found in all flavors of HTML to index, rank, and display results. Badly-marked-up sites rank high on Google all the time. It’s actually a great argument against the Semantic Web — the better inference engines do a good job without “semantic markup” and RDF and all the rest. Hard to argue with success!!

    So, again, I’d say, just as you don’t criticize WordPress for how it’s built, but praise it for its output, so too with LockerGnome. There’s no conflict in a Java guru using PHP software to write his blog, or track his bugs — a good developer uses tools appropriate to the job, not according to religious mandates (this is how I justify working in an all-MS shop šŸ˜‰ Similarly, there’s no conflict in getting good Web development advice from a site that doesnt implement all the techniques it writes about. In fact, it’s an object lesson in the fact that there are no absolutes, but a spectrum of advantages and disadvantages. Be thoughtful, as the LG people obviously were, and tnen pick the approach that gets you to your goal.

    For those of us who have to work in the real world, the best argument is that we have to work in th real world. That means making informed, rational decisions, not swallowing whatever the standards mullahs are proclaiming.

    Thing is, I’m generally on the side of the majority of you who are advocating the (new-)standards approach. But zealotry gets me every time; it triggers some deep impulse in me to take the contrarian view. Get off the high horse. Lead thru example yourselves, rather than throwing rocks at people who don’t rise to your expectations.

  42. Val, we may need to agree to disagree.

    I believe that everyone should practice what they preach or risk being irrelevant. Would you take financial advice from the CEO of Enron or Worldcom? Moral advice from a crooked politician? Cooking lessons from someone who regularly poisoned people? No, I don’t think you would. And you shouldn’t take web advice from someone who doesn’t attempt to respect the web?

    I’m not a validation nazi, nobody is perfect. However in this specific case we have a blatant disregard. The cook is spitting in your food. Should you care? I think so.

  43. Lynx users are perhaps outside the audience LG is most concerned to serve. Itā€™s BS that Google is basically a Lynx front-end to an indexer; Google et al use a number of standard identifiable elements found in all flavors of HTML to index, rank, and display results. Badly-marked-up sites rank high on Google all the time. Itā€™s actually a great argument against the Semantic Web ā€“ the better inference engines do a good job without ā€œsemantic markupā€ and RDF and all the rest. Hard to argue with success!!

    This better ranking of old-markup websites probably has a lot more to do with the dates on which these websites were created then with the fact they lack style(sheets). So this isn’t an argument against using XHTML/CSS.

  44. All those who talk about how easy it is to crank out a tabley site ought to remember the pain we went through in the nineties to develop all those table hacks, and all the code forking we used to have to do.
    It was endless pain!
    As a survivor of that error who has embraced web standards I personally couldn’t stand going back.
    But what gets me is the fact that many people who would not accept sloppy work in any other sphere have no problem with sloppy html. I mean programmers out there, can you put up with unclosed loops, misnamed variables etc?
    That is what the old html is all about, lax and laziness
    Well that is my opinion anyway

  45. Hemebond, #42 above: … happy with a website that used image-maps for every page.

    That’s a valuable reduction. If indexing, accessibility, and easy re-factoring for alternate media and future user-agents aren’t important (a legitimate business decision), why the retrograde half-measure at LG? Use image maps or PDFs or some such. For whatever reason, LG seems to have elevated [comparatively] perfect browser rendering to the over-riding consideration. That being the case, there are easier ways to get there.

    Yet LG is in a leadership position and knows it. I think what rightly bothers Matt is that LG’s adventure in time travel is therefore overt, a statement — Rip Van Winkle thumbing his nose at the Web, a louder-than-average scoff that it’s all just TV or will be, and the hand-wringers can get over it or not. Considering that LG’s wretched tag-soup of a homepage isn’t easier to implement than the polar options of 2004-markup or a menagerie of image maps, it’s hard to escape the notion that either something weird is going on or a statement’s being made. The only other explanation is that there’s no sane business process in operation at all, and Matt’s (and others’) reluctance to go there is a sign of continuing respect — shaken, but alive. Again, they could just use image maps. Or Flash.

    All catechisms aside, LG’s move is either active (and tacitly vocal) or mistaken or mired in disregard. We don’t want to think any of these things about LG, want to continue pointing to it as a resource. Surely LG knows that its reach depends on savvy users referring and promoting it to others as a resource. Some explanation would then seem to make business sense, because it’s all damned inscrutable in silence. Guess it’s up to them.

    Still, LG doesn’t lead with Web-dev: it’s more PC-centric, a desktop power user resource. Could be they’re not very interested in Web techologies at the user end of the stick, and we only imagined they were. Which, of course, is cool enough. LG has tons of goodwill in reserve.

    Also, the world of folks dedicated to making Windows, IE, and Microsoft technologies in general perform optimally must part company somewhere with the folks who’ll allow utterly alternative solutions, in whole or part. I’m with the latter. The best, first step to inoculating against network perils is to use client software divorced from the OS; the best way to keep the Web free is to embrace sturdy, non-proprietary standards. Some prefer to reform from the inside. God bless ’em. Guess there’ll be things we can’t talk about. Maybe this is one.

    LQ

  46. ‘Lynx users are perhaps outside the audience LG is most concerned to serve.’

    Sure, but if what if I’m in the mood to visit Lockergnome using my whoop-de-doo GPRS-enabled XHTML-browsing phone? I pay for GPRS by the download, so I generally surf with images and CSS off. Now their site is completely fux0red. Before, I’d be willing to bet it was at least usable.

    I don’t make a habit of surfing with my phone anyway, but gadget-carrying tech fans who own mobile devices probably ARE inside the scope of the Lockergnome audience.

  47. At the end of the day, this is an argument between authoritarians and free-thinkers, and why Matt has to agree to disagree. He claims to not be a validation nazi, but then uses some of the most inflamatory and inept examples to attempt to back up his claims, “I believe that everyone should practice what they preach or risk being irrelevant. Would you take financial advice from the CEO of Enron or Worldcom? Moral advice from a crooked politician? Cooking lessons from someone who regularly poisoned people?”

    Matt, you should be ashamed if you honestly believe any of these are even close foils of the lockergnome change. This is dogmatic language, and practically religious in tone. It does not prove your point, and only can give most the impression that you can’t seem to analyze your position beyond zealotry, or take an honest look at yourself and what you’re saying. Irrelevant extremes will never make any point you make more real, or more correct.

    The problem is that everyone has to write past your original comment because the analogy does not meet reality in any way. “So lets take your token bad markupā€”multiple nested tables for layout, badly nested tags, font tags all over the placeā€”this is McDonaldā€™s. If Iā€™m on a road trip and need a quick bite, Iā€™ll drive through because itā€™s convenient and ubiquitous. Though itā€™s obviously bad for you, itā€™s not going to kill you if you have a Big Mac. However if you try eating it every day, your body revolts and starts to deteriorate rapidly.” The fact that any of this is analogous in your mind simply blows my mind. The connection is what?

    I mean this is just a weak argument until you can actually align a real world html occurence with any of your overblown analogies.

    As for everyone I know who uses the web for general surfing, content is king, not code… or overblown standards protectionism. As long of the standards of html are followed, it does work, and doesn’t explode or rapidly deteriorate over time… the only thing that could possibly happen that would be bad is that browsers no longer support it.

    Unfortunately for coders wanting to “move the web forward”, old html will be the majority standard for some time to come. Basic users are not going to go out of their way to keep up with the latest, flashiest new versions of their visual web design prog of choice, mainly because the program they use now works just fine. The code simply doesn’t matter to them, and it never will.

  48. Also, I was at the lockergnome site… ugly? Are any of you serious about this? The site looked quite fine and works incredibly well. Longer to load? What? Please people, relax and take a serious long look at yourself.

  49. I’ve never actually looked at Lockergnome. There are just too many web sites and not enough time, but this controversy at least made me take a look at it. So you could say that their mistake has kind of worked … or at least it would have done had I wanted to stay at that page and take a look at it. Instead, I immediately decided that the look of the site – regardless of the underlying bad markup – was a pile of steaming elephant turd and now have no inclination to revisit the site. I wish I’d seen it before to see just how much of a backward step they took, but I’ll not lose sleep over it. There are so many other good sites that do things properly and they will continue to have my ‘custom’. Anyway, about time I got myself dinner. A burger, perhaps šŸ˜‰

  50. ‘I mean this is just a weak argument until you can actually align a real world html occurence with any of your overblown analogies.’

    Think of it this way: back in the Good Old Days, HTML was pretty limited and there wasn’t a lot of oversight. So, Netscape said ‘Hey wouldn’t it be cool if we added tag x!‘ So people started coding with that one. And then Microsoft said, ‘Let’s add tag y!‘ And people started relying on that one, too. Netscape parries with something else. Microsoft adds something else again. And then sooner or later, you’re relying on all these proprietary things and writing what amounts to be two or three different versions of your site (at best) to get it to work for everyone. This is why it’s bad for you.

  51. But what tags are really that problematic? blink and marquee? Don’t other browsers still display the content regardless, just without the special effect? As long as the content still displays regardless, it is very tough to argue that proprietary presentation tags are actually bad for a end-user. They are most likely not there for the blink or marquee, they are there for the content. The same with lockergnome. But here is the thing, I don’t think we are arguing the necessity for basic standards, because it is doubtful anyone would argue against them… we are arguing whether new standards trump old standards, even when the old standards are still considered valid and are still recognized by the consortium which created them. The problem is that basic users who are comfortable with the old standards, and propagate them feel they have absolutely no control or say in what the future of the web will look like. I think rather than saying its our way or the high way xhtml or bust, the consortium needs to propose a few different options and see which basic users gravitate to, otherwise they prescribe basic users to a fate which they very well may reject, and we may very well see old html continue through a few decades.

    I apologize for forgetting my screen name on my previous two posts.

  52. What I’d really like to see, is a 100% compliant browser that doesn’t fall back on trying to work out tag soup, or at least a feature that will warn you when a site is badly marked up, show you where the bad markup is and explain the problem (or link to the W3C’s pages). This isn’t a radical idea, Mozilla and IE do the same with Javascript errors, so why not with HTML? At least then people might start trying to code their sites better.

  53. ‘But what tags are really that problematic? blink and marquee?’

    But it isn’t just tags, AQ. JScript versus JavaScript? (There’s a difference.) ILAYER and LAYER? Plugins? And when you start using ALL of them, you start getting extreeeeeemely narrow.

    And again: Old standards are fine. But lockergnome can’t even get those right.

Leave a Reply to Zyca » Code is FoodCancel reply