The Wikipedia article on Standards in software contains a very good definition of standards, particularly as we might need to view them when talking about web standards:
- Standards (software)
- Software standards enable software to interoperate. Many things are (somewhat) arbitrary, so the important thing is that everyone agree on what they are. Software standards is one of the Unsolved problems in software engineering
On the whole, the article at Wikipedia is a good example of what isn’t so great about Wikipedia — poorly written, incomplete: the article is more a collection of notes in preparation for writing an article than it is a real document. Nonetheless, the above definition contains a gem of perception concerning exactly what it is that standards actually do. Standards enable software to interoperate. Standards increase the ability of various programs to cope with what is fed to them.
And, fundamentally, that’s all they do. Standards, by themselves, are not in any way equivalent to “appropriate” or “good.” Web standards enable one program to understand what has been notated in another program. An HTML (HyperText Markup Language) document may be an incredibly simple and basically inert program, but it is essentially a software program.
But they don’t actually dictate a lot about how that code is actually used, or what elements go into the program.
Let’s try a comparison to cooking. If you’re cooking, you’ll follow a recipe. The recipe dictates units (cups, teaspoons, liters, etc.). The recipe also dictates ingredients, sometimes with substitutions. However, some aspects of a recipe are actually pretty imprecise — cooking on “medium heat,” “beat until stiff peaks form” or “use one large egg” are all examples of specific directions which do not necessarily convey the information needed to perfect a recipe.
Furthermore, a recipe does not necessarily include every detail of creating the meal — it may leave out key pieces of information which it assumes you know: stirring the sauce, checking the internal temperature, or removing the pits. These are necessary aspects of preparing the meal right, but which require external knowledge to comprehend.
If you want to bake a cake, you do need to follow the recipe (mostly.) If you substitute baking powder for flour, you will not end up with a particularly appetizing cake — but you’ll also have problems if you ONLY follow the recipe, and include the eggs with their shells.
Molly Holzschlag mentioned this idea recently, and I’ve certainly written about it before, but it’s a valuable point and worth reviewing.
Besides, I thought of this analogy to cooking the other day while I was making dinner, and just had to get it out of my system…
Oceano
Yeah.. I agree with you that standards are important. However, I also think that sometimes rules may need to be broken for some new creativity to prosper.
Joe Dolson
Indeed, there’s a very significant difference between the statements — while using standards is absolutely “right,” they do not in themselves make a web site “right.”
Thanks, Sailesh.
Sailesh Panchang
Amusing exchange between Joe and Ted! – especially the title of the article and the author’s conclusion later in the dialog: “As such, using standards is right — period.”
Software standards serve the same purpose as standards for any other product, namely:
– set an acceptable / minimum level of performance which is generally agreed to and ratified by diverse interested groups; and
– allow a range of interdependent products to interoperate.
Thanks,
Sailesh Panchang
Deque Systems
SneakyWho_am_i
Yeah go ahead. Just my two cents there. I wasn’t trying for a pun but once I saw it I let it lie.Keep up the good work, your articles (posts?) are all very useful or interesting (often both)
Joe Dolson
Can I slap you for the really awful pun? But seriously, thanks for contributing! (Whoever you are…)
SneakyWho_am_i
Very true and valid, this is all that standards are, an enabler for interoperation.
If your code is 100% valid and standards compliant, and rendered consistently in three browsers (in agreement with spec) and not an older browser, then you can say that this browser is not conforming to that (part of) that standard.
Interoperability is good, so standards are good. Is standards compliant software good?
YES… No…. Uhm…. It depends on what you’re using it for, really.
Internet Explorer is a fantastic piece of software, for example, but it’s a hopeless web browser. It can be good in proprietary contexts such as providing a familiar COM interface for file transfers, or a help system, but as a web browser it’s utter rubbish because it doesn’t understand standards.
It’s not that it’s bad software, but it is a bad browser. It’s good (but not as a browser). It’s GOOD, but it’s not APPROPRIATE.
It’s not appropriate to use Internet Explorer as a web browser – that’s just silly.
It’s a hopeless cook, but it’s pretty good for smashing windows in an emergency.
Mike Cherim
Great article Joe. In my eyes standards are absolutely essential to anything that is to move forward and become something. That’s why we all post using the same protocols at Accessites (plus consistency is good for accessibility). But standards are also fallible. If, for example, one of our posting protocols is flawed the standard must change. So while standards aren’t always right — which is why they are continually reviews and improved from time to time — the cohesiveness they ensure is a blessing. Look at the automobile industry. Lots of standards, and look how far that industry has come.
I tried your recipe. It was good but the meringue was wicked crunchy.
Joe Dolson
Fair enough. 🙂
On this we certainly agree — we simply are providing different perspectives. I have no problem with that.
tedd
I agree that not using standards is wrong. As such, using standards is right — period.
If you want to argue that some bozo developed a web site and while it follows standards, it’s a horrible web site then that’s your opinion. My opinion is that whatever the bozo wanted to say, he at least delivered it correctly.
True, the value of one’s work is determined by more considerations than just adhering to standards, but that has nothing to do with right and wrong. Right and wrong are value judgements based upon perspective. For example, from my perspective your title is simply nonsense and your article is rather pointless BUT you delivered your point using standards and thus you did it right.
Let’s just agree to disagree on this.
Cheers,
tedd
Joe Dolson
The title says, explicitly, that “Using Standards Doesn’t Make It Right” — it does NOT say that you shouldn’t use standards. Using standards ALONE as a measurement of correctness is not a solution. Using standards as an element of correctness is fine.
Not using standards is wrong — period. But that doesn’t make using standards RIGHT. Whether a web site is well designed is not a simple binary decision toggled by the application of web standards.
tedd
Yes, one can create an absolutely horrible site — but to make it even worse, they could do it ignoring standards. Is that not correct?
And if that is correct, then following standards is a good and appropriate practice — which is contrary to your title. Thus the reason why I say we disagree.
Argue as you may, but if I have to review another programmers code, then I prefer to review those who conform to standards as compared to those who don’t. To me, my life is made simpler by standards and simpler is always good.
Joe Dolson
I don’t think that we do disagree; I think you may have simply misunderstood my overarching point. The point is that just following standards isn’t enough to make a site which follows best practices. Standards are great, but they don’t tell the complete story — it’s entirely possible to create an absolutely horrible site which follows web standards to the letter.
tedd
Standards enable software to interoperate — and that’s a lot. Software that does not follow standards is neither “good” nor “appropriate”. So I disagree with your article.
Compliance to standards is what allows us to use and mix various technologies — and, I might add, if there were no standards, we would not be discussing this.
Joe Dolson
Thanks! 😉 I was hoping that would appeal to somebody…
David Zemens - 1955 Design
I love the egg analogy, Joe. Standards in and of themselves are quite meaningless unless applied in an appropriate fashion.
Standards serve to level the playing field for everyone. In fact, standards actually define the playing field itself. Without a defined field, it’s hard for the team to participate. Imagine a baseball team trying to play within the confines of a football field, for instance. It wouldn’t work out very well.
Web standards serve to define the field for web developers. It gives each of us an equal chance to know the ground rules and understand the boundaries. It’s still up to us to choose if we want to play between the lines or play outside of them. But at least we all have a pretty good idea of what the rules are.