Paul,
It's not the correlation I'm questioning, it's the implied
causality. I hope you'll make a distinction between them in your
article.
I might be wrong, but I did not at any point argue that Tables cause
invalid documents. Not to say I couldn't, see below :-)
I said there was a strong correlation.
I pointed out that in not a single layout based on tables, in
presumably some of the most well funded sites in Australia does the
HTML validate.
What is also extremely important is that the errors in validity very
largely are directly associated with the table elements in those
documents.
Now these errors fall into a number of oft repeated categories.
Forms and Tables
Missing close tags inside tables
Invalid attributes used willy nilly on tr and td elements
being among the most common.
So not only is there a strong correlation between table based layouts
and malformed documents, but the malformations occur precisely
because of tables. This is a correlation that is starting to look
pretty causative.
Does this mean all table based layouts must be invalid? Of course
not. But the correlation is overwhelming in the real world.
If using tables for layout promoted sloppy coding, then it stands
to reason that if I were to move back to table-based layout today
then my markup would suffer accordingly.
Not at all. But I would be prepared to wager your validation errors
during development increased.
However, I know that would not occur, in part because having
learned to use XHTML-CSS-semantic markup has raised my
consciousness but largely because I use validation tools today to
ensure that my markup finishes cleanly
See above. In essence, you would have to do more work. I have little
trouble asserting this based on my experience, the experience of many
others, and my research into real world pages. Tables lead to
inherently more complex code, and so, directly, to the increased
chance of coding error.
.I suspect that the reason for the correlation you're revealing
goes something more like this: that table-based layout is what most
web developers learn first; that it's possible for someone with
primitive HTML skills to hack out a relatively stable page using
tables; that being able to produce table-based pages will enable a
developer to stick around and move ahead in an organization,
especially a huge governmental bureaucracy or corporation in which
insight into the technical issues around page development is dim
and anyone who can craft a web page quickly and cheaply has a fair
chance of survival & promotion without necessarily having to
radically hone their skills.
This is not the first such suggestion along these lines. But applying
occams razor, is there a simpler explanation? Keep in mind that these
are all very very major companies and organizations we are talking
about. Also, all but one of the sites uses CSS, further suggesting
developers with non trivial skill sets.
In other words, rather than the use of tables for layout causing
sloppy coding, the two behaviors are correlative, both able to
survive, in individuals working in a sheltered environment.
Such as the biggest companies in Australia? Or the web development
companies who develop their sites?
Just because they predominantly occur together doesn't mean that
one causes the other. Hummingbirds' long beaks didn't cause their
ability to hover nor the other way around, but instead the two
traits co-evolved. It's a small but crucial distinction.
There has been a lot of reasoning by analogy in this discussion. And
a lot of attempts to explain away an extremely strong correlation.
Why are people so afraid of the conclusion?
And not merely academic: I think one reason your remarks raised
such a flurry of irritated response was your implication that the
use of layout tables leads to untidy coding -- them's fightin'
words to any careful coder who still uses tables that way.
Let's suppose for a moment I am arguing that their is a causative
relationship between using tables and invalid code (which I haven't
been but which I believe and which argument I will make in a moment),
that does not mean you cannot and will not produce valid documents
with table based layouts. But the implication would be, all things
being equal, that you'd require more effort (thereby shortchanging
either yourself, your client/employer, or both by using this
approach). The experience of everyone I know or who has written on
this issue is that after some reasonable period of time, they are
more efficient developers.
If you drop the element of causality you'll still have an
interesting & powerful correlation to discuss.
At this point I'll return to the causation :-)
For those of us with a background in Software Engineering, we will be
aware of the painful lessons learned in the 60s and 70s particularly,
(sometimes referred to as the "software crisis") as increasingly
complex languages and methodologies failed to solve complex
computational challenges. The most famous example, to which I have
alluded, is the mistaken ; for : in a fortran program which caused an
unmanned moonshot to miss the moon.
The conclusion reached was that complex approaches to a problem are
inherently more error prone than simpler ones.
Which leads me to me theory.
The HTML of Table based layouts is inherently more complex than the
HTML of CSS based layouts. So it follows that there will be an
increase in the likelihood of validation errors in table based
layouts over other layouts.
So we set out to do an experiment. Find a heterogeneous set of HTML
documents, which include table and non table based layouts. Determine
the % of each which are valid.
My theory would predict that the table based layouts are more likely
to be invalid.
And so it is.
I even stack the odds in favor of table based layouts by choosing
sites for very well resourced public entities. If anyone was going to
be getting their table based layouts right, it would be these entities.
The point of all this yabbering, is that in all the discussion of
table versus non table based layouts I have seen over a very very
very long time, this point has never been raised.
The sad fact is, yes, it probably is a religious thing. I see
absolutely no good reason to use tables for layout. The only real
argument I have seen, that there are some layouts for which you can't
use CSS strikes me a little like the objection that there are some
irreducibly complex organs that evolution can't possibly account for,
and so they must have been created by god, er, sorry, an intelligent
designer.
I've actually never seen of of these fabulous beasties.
Then of course there are the overwhelming number of cogent arguments
in favor of using CSS for layout, that I won't bore anyone with now.
I guess I'll finish on a practical note. IM reasonably well informed
O, if you want to be a successful web developer in the long run,
you'll not be using tables for layout for your whole career.
So if not now, when?
john
John Allsopp
style master :: css editor :: http://westciv.com/style_master
support forum :: http://support.westciv.com
blog :: dog or higher :: http://blogs.westciv.com/dog_or_higher
Web Essentials web development conference http://we05.com
******************************************************
The discussion list for http://webstandardsgroup.org/
See http://webstandardsgroup.org/mail/guidelines.cfm
for some hints on posting to the list & getting help
******************************************************