The New Amateurs - part 2

My previous entry The New Amateurs has generated so many interesting comments that I decided to reply to them all in a new entry, which will continue the discussion.

To my astonishment it turns out that some New Amateurs read my site, and that some of them even agree with me. It seems they aren't even too much annoyed by the label "amateurs". Great!

Let's review a few of their arguments.

Is CSS always better?

So, my first question to the professionals is: Is something better just because it is CSS? I don't subscribe to this idea but that seems to be the attitude of the web design elite. Here is your chance to convert one of the amateurs.

My answer is Yes. A website that uses CSS is better than a website that doesn't. Not because every CSS site is inherently superior to every table-based site, but because CSS is increasingly becoming a symbol for the new way of creating websites.

Since CSS offers the clearest break with the past, it is often a way of getting people to understand the new way of making websites. Apart from the well known advantages such as ease of maintenance, bandwidth savings, and increased search engine and assistive device friendliness, the use of CSS in a website shows that its creator is paying attention to what's going on in web development land.

And the quiet revolution is not just about CSS, it's also about accessibility, usability, or W3C DOM scripts that try to create interesting interfaces without repeating the DHTML nonsense of six years ago. It's about a new way of thinking about websites, about keeping it simple. CSS is just the most visible symbol for this way of thinking.

One table

Typically I'm happy to settle on a bit of a hybrid. I'll use 1 simple table for main structure (because it seems like the only fast solution with PREDICTABLE results across browsers) combined with CSS and javascript to look after styles and interactivity.The result is a (somewhat) flexible site, that is fast to develop.

Excellent approach. CSS doesn't have to be "pure". The purity argument was one of the less desirable offshoots of the CSS revolution. As long as you're able to change font sizes and colours quickly (ease of maintenance!), you're leveraging the advantages of CSS. One single table doesn't invalidate that.

As long as you try to get rid of the remaining table every once in a while, you're doing a great job. Trying is the key, not succeeding. Besides, after having tried for a few times or a few dozen times, all of a sudden you'll find that you've succeeded.

Elitism

I think the first step toward reaching people who need to be educated about standards compliant design is to drop the elitist atitude that is prevalant in the web development community.

Although I've often encountered it I never really understood the "elitism" argument. Elitism seems to be naughty and undesirable and everybody is supposed to hotly deny they ever meant to come across as "elitist". (My lack of understanding may be a cultural thing. Dutch just doesn't have a concept with exactly the same nuances and shades of meaning as "elitism".)

First of all, people who accuse others of "elitism" often seem to say "I don't want to learn something new". As long as you can denounce people as "elitists", you don't have to pay attention to their arguments or their new ways of working.

Besides, I feel a bit of elitism is a good thing. Any (r)evolutionary process needs an elite of early adopters to help speed up the process and to develop new techniques in a hurry. Most importantly, a moderate dose of elitism can be a powerful social trigger: people want to become a part of the elite, and are willing to work hard to achieve that.

The flip side of the coin is that this elite must take its responsibility by educating and helping everyone who is willing to learn. Fortunately, in the case of the New Professionalism that is very much the case.

All people (and I include myself) who are thought leaders, hence part of the elite, in web development land, have come to this exalted status by dint of early experiments, unflagging enthousiasm, and a penchant for clearly explaining complicated matters. They've earned their status by working hard (and unpaid) in order to spread the ideas they believe in. There's nothing wrong with that. They deserve to be part of the elite.

It's only when an elite becomes self-satisfied and starts to turn away new ideas and outsiders that it becomes an oppressive and unhealthy oligarchy of "in"-people.

We haven't yet reached that point, though. We aren't a closed group; not a month goes by without new people entering the elite by publishing new, exciting websites, arguments or experiments, or without elite members fading back into the shadows. That's how it should be.

Besides, even if the current elite should ever become a tired, closed and narrow-minded group, a new, vital one will take its place. The dynamics of the Web will take care of that, never fear.

Long live the elite!

Reaching the "new amateurs"

Let's return to the original subject: how do we reach the new amateurs? Various suggestions were made, but as far as I'm concerned a winning argument has not yet surfaced.

a lot has to do with the self-teaching books that are available to buy.

True. 80% of the web development books out there are crap. This is not easily changed, unfortunately.

Clients, however, may respond to financial pressure and if they can be shown hard numbers that it is cheaper to code to Web standards, then they too may bow to pressure.

I don't disagree with the basic argument, but I think it's very hard for a bunch of designers and programmers (ie. non-business people) to convince hard-core financial officers of this fact.

Many "New Amateurs", are not dedicated "web developers" (HTML, CSS & Javascript) like we are, but actually software engineers (the Apache/MySQL/PHP/Perl/Python people) who have to write the serverside applications.

Very, very true. We discussed this in the WaSP DOM Scripting Task force, and the consensus was that a lot of badly written scripts come from server side programmers who feel that JavaScript is "easy" and not worth their time. These people, too, are New Amateurs, and I feel they should either learn to write proper JavaScript or restrict themselves to building databases. But how do we reach them?

I've found that "New Amateurs" don't need evangelizing. It's the Art Director not wanting to know anything about CSS; or, the Marketing Director not wanting the CMS broken or made complicated; or, the Editorial Department not wanting their templates touched.

This, too, has some truth in it. Again: how do we reach the art director, marketing director, or editorial department?

So even if we redefine the New Amateurs as the bosses and clients of table-loving web developers, we still don't know how to reach them.

The difficulties web standards encounter

Finally, a few thoughts on the difficulties web standards in general encounter.

"we know it is good, but it is not worth a price, client will not pay for this"... How to convince them?

Don't. Just start. There is no difference in price.

Anyone can publish a website due to the nature of the Internet.

True. When John Doe creates a site about his hobby, I don't care if it uses CSS or not. John Doe doesn't get money to build websites. As soon as you ask for money, though, you must be a professional.

For lots of people, that is the most important part. [A table-based site] just works.

On their computers, when used by a non-disabled person. I agree that, unfortunately, this argument still holds sway over a lot of people. On the other hand, if we never start countering it it won't disappear. But how?

Here, too, reaching the key people is the main problem.

This is the blog of Peter-Paul Koch, web developer, consultant, and trainer. You can also follow him on Twitter or Mastodon.
Atom RSS

If you like this blog, why not donate a little bit of money to help me pay my bills?

Categories:

Comments

Comments are closed.

1 Posted by Phil on 22 November 2005 | Permalink

It can often be tempting to revert to the old, table-centric way of laying out sections of a site, when CSS layout is proving tricky. Having a successfully validated site with clean markup is a very satisfying reward though. Easy to maintian and more accessible - worth the initial struggle. With the ratio of CSS to table layout sites swinging, I think table based layout will drift away as people new to web development, start their devlopment expirence using CSS from the off.

2 Posted by Richard York on 22 November 2005 | Permalink

> True. 80% of the web development books out there are crap.

Speaking as an author of a web development book, I agree whole-heartedly. I think more "New Professionals" should take aim at aleviating this problem by getting involved in the tech publishing industry as authors, tech editors, and peer reviewers. I feel fairly confident in the quality of my own book, though I did make a handful of "amatuer" mistakes that resulted in a bit of misinformation. But given the short production schedule I had to work with, I did as much research as I could and did my best to ensure everything I wrote about was a true, accurate, and clear picture of where web development is going. My own goal is to make "New Professionals" out of every reader. Some examples of erroneous information in my own book. I implied that use of 'i' and 'b' are deprecated in XHTML (though I didn't say that outright), upon further research I, of course, found that to be completely false and misleading. I left out some facts about the XHTML MIME type, and also left out the XHTML namespace in my examples. At least I'm willing to admit where I made mistakes, and I certainly intend to fix them in the next edition.

3 Posted by Nick Fitzsimons on 22 November 2005 | Permalink

I believe that emphasising accessibility is an important factor.

I am currently working on the websites of a large media organisation (there are more than 30 sites for their local radio stations, all currently using table markup, javascript: links, etc.). I was brought in specifically for the purpose of implementing a new design using CSS and valid HTML.

The primary driver behind this effort, I have now found out, was a risk assessment from the legal department. They decreed that the company was at risk of legal action under the Disability Discrimination Act if its websites were not accessible, and luckily the people in charge of the sites are sufficiently clueful to know that what was needed was the correct application of standards, in a way that enhanced accessibility (you don't necessariy get the latter free with the former).

Although not all organisations are as insightful as this one, it can only be a matter of time before word spreads; and where the big organisations lead, the small may eventually follow.

Once people find that the best (most lucrative) work is being handed out to those who use modern, accessible techniques, the old-school professionals will be beating a path to our door, desperate to learn.

4 Posted by Richard York on 22 November 2005 | Permalink

I also think you'd be surprised at the willingness of the tech publishing industry to let professionals such as yourself, PPK, get involved. Though on the flip side, there isn't much financial compensation, and if you were a peer reviewer you probably won't be paid anything more than a line of credit in the book and a few free copies. I know my own editor at Wiley would at least be willing to listen to constructive ideas, rants, critique, etc from professionals.

5 Posted by Ryan Platte on 22 November 2005 | Permalink

> I feel they should either learn to write proper
> JavaScript or restrict themselves to building
> databases. But how do we reach them?

With code libraries that easily integrate into their environment. Provide some skeletal facilities for writing JavaScript and other client-side code correctly in a particular environment, and many coders will put in the further effort to gain the larger picture.

Look at the Ruby on Rails phenomenon for lessons on how this can be done right (and sometimes wrong too).

6 Posted by Jaffa The Cake on 22 November 2005 | Permalink

A large company I worked for rebranded. Uh oh, all the websites needed rebranded, 10,000+ pages.

Everyone was amazed that it took me less than a day to rebrand my section of about 200 pages.

Is CSS useless?

7 Posted by Mat Findlay on 22 November 2005 | Permalink

I didn't mean to denounce the elite in any given field. It's true, every field has its elite members, and oddly enough, these members are less likely to show an elitist attitude.

The desire to educate and bring others up to speed is commendable, and is behavior befitting of the elite. Unfortunately, there are those, who either consider themselves part of or wish very much to be the elite that fall short. Because of this, they feel they have something to prove, and sometimes come off confrontational. This is the problem. Belittle someone's skills, and they're not going to be open to your suggestions, no matter how sound those suggestions are, and they're pretty much lost.

In my education, I learned the late 90s techniques. It wasn't until I stumbled upon _this_ site that I realized there was a problem with that, and opened my mind to the possibilities. I've since seen other sites which, if I had have seen them first, would have turned me off this path because they come off as elitist and self righteous. I think that it is important to keep this effect in mind when considering the task of spreading the word.

8 Posted by ppk on 22 November 2005 | Permalink

Richard: I get some review offers every once in a while, but the lack of payment makes it very difficult for me to take these jobs.

Matt: Could you please name a few sites that come off elitist? I'd be curious to know exactly what we have to avoid.

9 Posted by Mat Findlay on 22 November 2005 | Permalink

I'm a little hesitant to provide links to sites guilty of it since A) I don't believe the traffic is deserved, and B) I really don't want to be responsible for directing a volley at them.

An example I can think of, though, is something I see somewhat regularly on web development forums. Someone will come in asking for help with their HTML, CSS, or Javascript, and people will pipe up in their threads that they "won't touch it unless it validates". It comes off sounding like they don't want to dirty their hands with something that's beneath them.

Now, I understand that there might be a valid reason behind what they're saying. Sure, maybe some problems would be fixed by correcting the errors a validator throws when reading the file... Why not go ahead and say that?

The former comes off antagonistic, while the latter comes off as helpful. For the person asking for help, this could very well be their first exposure to the web development community and standards compliance. What kind of taste is that going to leave in their mouth? What sort of effect is it going to have on their willingness to accept standards compliance in the future?

Sometimes it's not just _what_ you are saying, but _how_ you say it as well.

10 Posted by ppk on 22 November 2005 | Permalink

Oh, right, the forums. They're a problem apart, and I completely agree they're not really an asset to the standards movement.

Come to think of it, maybe the forum members should have a bit of education, too, about spreading the word in a nice way.

11 Posted by arguile on 22 November 2005 | Permalink

Actually a lot of us (professional programmers) do care. The separation of HTML, CSS, and JS makes incredible sense to many programmers, especially those who subscribe to MVC (Model View Controller) application design. The problem I've seen in many companies, is that management demands that "backend" programmers also fill the role of "web developer".

Let's face it, cross-browser compatibility is hard. Especially for the type of complex applications this brand of "New Amateur" is likely to build. Understanding which CSS hacks to apply when and the utter mess that is JS compatibility sets a very high entry bar. As JS isn't our core competency and we consider web development an axillary duty, web standards may suffer. It's hard to be altruistic about standards when the choice is "get it done fast or you're gone."

So how do we solve this? Lower the entry bar.

Sites like this are a great start, but documenting flaws only goes so far. Unobtrusive frameworks that allow a developer to write something once and not spend n years refactoring because browser x doesn't support a and browser y doesn't support b would go a very long way. The true ability to write to a standards spec. and just have it work is, of course, the holy grail.

12 Posted by ppk on 22 November 2005 | Permalink

Arguile,

In your case, would hiring a JavaScript professional solve the problem? It's odd, really, that a software house that uses a certain language refuses to hire experts for that language.

The underlying problem is that HTML, CSS and JavaScript are perceived as being "easy". How do we combat that?

13 Posted by Robin on 22 November 2005 | Permalink

ppk - it honestly depends on the forum you visit. I like to think that the few I post on are friendly and opening to new amatuers willing to put some effort in to understanding the problems they have.

14 Posted by Joe Clark on 22 November 2005 | Permalink

I don't see how we're being "elitist" when we are at pains to publish our methods. Yes, we know more than they do, but we go out of our way to teach them. Give them a year or two and they become elitists too.

If "elitist" comes to mean "competent," I'm all for it. I'd be all for it anyway, of course.

15 Posted by Geoff Webb on 22 November 2005 | Permalink

I completely agree with Arguile.
Separation of the code into data, behavior and presentation has been a part of programming for many years. I have been working this way for years .
The problem I see is that I'm not given resources to really learn this stuff. My company is revamping our web site. For creating the site they have graphic designers, webmasters, and editors all working fulltime. When it comes to creating the interactive apps that drive the site there's just me. The look of the site is given more emphasis then the usability.
In addidtion, let me list off the technologies I have to stay current in: MySQL, SQL, VB.NET,Winforms, WSDL, WS-*, XML and Python. Those are just the ones I can think of. In addition, I need to keeping up with software engineering best practices, and user interface design. I read 4 or 5 book a month and countless blogs to keep up. You still want me to learn CSS, and Javascript?
Do you see how I maybe think that web interface is just part of what I do?
I'm am by no means unusual.
How do we solve this? Give me tools. Tools every bit as good as the ones I use for windows apps. Give me libraries. Good solid ones that I can trust. These things are all things I have available to me when I create the backend, why don't I have them on the web?
BTW, I came to this site and otherlike it because of a personal project. We are interested, but you have make it easy enough that it make sense to do it.

16 Posted by Anton on 22 November 2005 | Permalink

say it you spend 2 hours to code one page using nesting tables;
4 hours using transitional variant (one or few tables + css);
and 8 hours for pure css layout

then how it comes the price is the same? nowadays with "current" browsers the price isn't the same

17 Posted by Masklinn on 22 November 2005 | Permalink

> The underlying problem is that HTML, CSS and JavaScript are perceived as being "easy". How do we combat that?

It's actually much worse. To many (server-side) developpers, Javascript is considered as a "non language", it would be ranked even lower than bash/csh, probably along the lines of batch files.

It's weak typing, quirks (because of browsers incompatibilities or buggy implementations) and numerous low-quality scripts (in the trend of 1998's DHTML) as well as it's strange objects (prototype-based POO and equivalence of objects and hashmaps) lead it to be considered as some kind of vb, which nearly everyone looks down upon.

Now, about the "how to combat that" part, I must say that I have no idea. Maybe by defining some kind of unofficial coding standards and spreading them? By documenting extensively some interresting JS practices (especially JS POO, which is clearly not documented enough), by putting out clean, useful, namespace-sorted libraries (instead of dumping everything in the global namespace)?

Showing that JS is a full fledged language and can be written cleanly would -- or so I think -- go a long way towards making it much more acceptable for server-side devs.

As would the birth of better development tools.

18 Posted by Nick Fitzsimons on 22 November 2005 | Permalink

@Anton: I would say a design that takes me 2 hours using nested tables would take me 2 hours using CSS. However, as most commercial sites have a number of different templates, each new page type would take the same amount of time again in tables, while the CSS pages would require much less than an extra 2 hours of work, as the heavy lifting has already been done. (On my current project, a new page type typically requires maybe 30 minutes worth of additional work on XSLT and CSS.)

So, assuming 20 page templates for a site (not unusual on the projects I work on), and allowing half an hour for a new page type, using CSS would take 10.5 hours, while using nested tables would take 40 hours.

I'm lazy, so I'll leave the tables where they belong :-)

19 Posted by Alistair Burrowes on 23 November 2005 | Permalink

I believe that the problem of Amateur web development is an inevitable one and linked to all areas of software development (and life).

There are people who care about the work they produce, unafraid of new ideas, in fact eagerly seeking them out to improve their own work. There are more people who see what they do as a job, they come in and they tap the keyboard and they go home. With little care or thought to the quality or usefulness of what they do.

Unfortunately I don't think this will greatly change unless there is a great shift within IT as managers see the benefits of CSS based web sites. And even then such careless people will still exist and will still produce bad code.

I believe the difference between someone who writes good or bad code is 95% attitude and 5% knowledge.

20 Posted by Raanan Avidor on 23 November 2005 | Permalink

Maybe instead of "amateurs" and "professional" we can use "old school" and "new school"? I find it more appealing.

Even "old school" sites use CSS for look and feel, but not for layout. Defining colors and fonts and links, I think this is an angle to push CSS. "See the pretty links? You can also use CSS with lists..."

I feel that the main problem are tools. How do you build a "new school" site? With Notepad. How do you build an "old school" site? With FrontPage or Dreamweaver, WYSIWYG editors are so easy to use and fast. And what you get in the end? Non valid code soup. Give me a good and easy tool that create valid code and I'll conquer the world.

21 Posted by James Mc Parlane on 23 November 2005 | Permalink

Engineering best practice is often filtered down into tools that enforce good habits and prevent you from making mistakes.

One possible avenue is the adoption of light frameworks that formally break up the Content/Style/Behavior. This is what I have done with my own framework which combines CSS and JavaScript into a look and feel layer via a simple XML format.

Harking back to the comment about Ruby - the Ruby Model/View/Controller model is a good example of how formalising best practice can "Just Work". Some people have not had the "Hallelujah" moment or really understand (or want to understand) the power of loosely coupled JavaScript and CSS. Some people just want to get the job done and simply want some tool and framework that will guide them along the correct path.

We are a tool using species, not everyone wants to understand how it all works to the deepest level - they just want something that helps them get a task done.

22 Posted by Stephen Kestle on 23 November 2005 | Permalink

Raanan: My wife and I are attempting to enter the [web] design arena (I'm a developer), and we have purchased the Adobe Creative Suite 2.0 (specifically GoLive for the web).

While we don't really know how to use it yet, the demos and tutorials are all about drag and drop css design. It looks very good. It's easy to see the hierarchy of how styles have been applied and what is overriding settings.

Even InDesign (the desktop publishing design tool) is set up to use CSS. It will use built in stuff as well, but it really practically means that you can design a print brochure, and then export it to a standards-compliant web site. Yes, with non-table based layout, not just font styles.

Very cool and very worth it (if only we can get the time to capitalise on our $$$ investment).

23 Posted by Brian LePore on 23 November 2005 | Permalink

I think one thing that would benefit would be to not only teach the New Amateurs how to re-educate themselves, but how to teach them what sites they should be following to maintain their reaquired stature of Web Professional. Besides this site, I feel that ALA and Meyerweb are good sites to be following, and I'm sure there are more sites that others feel is important. Perhaps one of these sites should be a Web forum that they could go to for help that would NOT have the "validate your site first and then come back to us" problem as mentioned by Mat.

On the topic of code libraries, I believe the latest version of the addEvent script that was agreed upon by very talented JS developers that frequent this site decided to not include a check to prevent their code from re-defined (or some other problem) because they felt it was the developer who was going to use their code's job to make sure that this was not the case. To me it seems like this would discourage New Amateurs from wishing to further their education. Shouldn't future code that is approved by sites such as this by pushed to go the extra step to Amateur friendly?

24 Posted by Mark McDonnell on 23 November 2005 | Permalink

This is a little off base, but in the interest of the "New Amateurs" I've uploaded a page regarding CSS here: http://www.stormplatform.co.uk/Developer/CSS/CenterAlign.html

I am still a "new amateur" and at the beginning I struggled to find some CSS code that would let me centrally align an element (vertically and horizontally), but thanks to someone on one of the many web forums I found a solution to my problem.

Maybe this is something everyone knows already, but as far as I am concerned I hope this example helps some "new amateurs" get started with CSS layout.

Mark McDonnell.

25 Posted by Thomas Grauer on 23 November 2005 | Permalink

Since nearly 3 years, I consider myself being a "new amateur". When I started googling arround for getting information on DOM focussed Javascript and Browser support, it was your site, PPK, what I found first and which is on top of my web programming bookmark list since that day. This site is so convincing. Back in the year 2002 it made me use some sort of technology - today they call it AJAX.

So, PPK don't worry: it is you who reaches the new amateurs!

26 Posted by Jacob on 23 November 2005 | Permalink

I'm in the same position as Thomas (above). I've always liked to tinker (with anything and everything) and it was inevitable that I'd play with websites at some point. There were a few web development books kicking around the house but the fact that they contradicted themselves and each other made me wonder, so I went looking. I actually found this site (and a few others) *after* discovering the W3C standards, but this site was (and still is) an essential resource to me. I'm definately an amateur developer, but without dedicated people such as yourself I would probably be horrifically lost and producing terrible code.

Friends often ask me questions relating to web technologies, and I almost always direct them here. If everyone does that, a lot of the "reaching the new amateurs" problem will be solved.

27 Posted by Jules on 23 November 2005 | Permalink

When John Doe creates a site about his hobby, I don't care if it uses CSS or not. John Doe doesn't get money to build websites.

One of the problems is that after John Doe has created his personal Web site about hobby trains and talks to his friends about it, the local hobby train store asks him to create a site for them and then off he goes creating garbage.

Secondly, and I know this from personal experience, a person's job description is expanded by his/her manager to include creating pages for their department on the company web site and they don't have a clue what they are doing other than FrontPage looks a lot like Word. My workplace commonly assigns web site tasks to unqualified persons and what frustrates me more is that our official web master doesn't care about web standards or accessibility (even though I work for the government) so I can't even recommend that my manager send off all web tasks to the web master because it won't be any different.

28 Posted by Anne on 23 November 2005 | Permalink

First off, excellent pair of articles (The New Amateurs parts 1 and 2). I think you're absolutely right and you approached the question (especially regarding elitism) in a way that I very much appreciate.

The question that's been bouncing around my head is this - what part, if any, do you think formal education could play in this process? Maybe it's time for web development to enter the academic world. It already has an incredibly active and thriving academic community - if you ask me, that's exactly what the web standards community is.

Perhaps if there were at least a formal course of study for the theory (because the technology does tend to change faster than most schools can keep up) we would see more New Amateurs entering the field with at least an understanding of the fundamentals... perfectly prepped to begin their 'practical study' of the art of web development.

29 Posted by Anton on 23 November 2005 | Permalink

2Nick Fitzsimons - I got the point here, that using CSS of course saves your time when you manage more than one template file in a project

But i doubt that those "New Amateurs" start with projects that deal with more than 1 template

And i still doubt timing here, we're talking about different things, or those layouts that you code in 2 hours in pure CSS you can code in 15 minutes using tables (of course it depends on the design of the layout)

But you can't disagree that there are still 'tough cases' in coding pure CSS layouts that demand more time on working out a solution that doesn't read "just put it in the table"?

30 Posted by Megan on 23 November 2005 | Permalink

About forums (mentioned above). I think it really depends on where you're going. I've seen forums here the "who cares about standards" message is quite prominent. On the other hand, I am part of a forum that makes it our business to educate "new amateurs" about what quality web design means.

It's a huge uphill battle. We get loads of members who seem to be blind to the fact that they're completely unqualified to be selling web design. We're there in the trenches every day, slowly hammering the message into extremely thick skulls. I think it's a good way to spread the word to the masses, though. It would be great if more standards-minded professionals were active in online communities.

I think another group to work on is the makers of CMS's. The course management system we're using at work is horrific, and I don't know of any forum packages that are standards compliant.

31 Posted by Jordan on 23 November 2005 | Permalink

@Anton: Yes, CSS can take a long time if you're not used to it or haven't created pages in it before. There's about a 3-6 month learning curve to really get a handle on it, depending on how often you create templates.

My experience with CSS has shown me that initial creation generally does take a little longer than a table-based layout, but maintenance is much, much easier. If I want to change the primary font or the width of my site, it's a lot easier to do it from a CSS file.

Granted, using CSS doesn't mean that you can't do table layout. However, it's not necessary to have tables used for layout if you're creating a layout using CSS.

It's not that table-based layout is inherently evil, it's the other practices that generally come along with it that are bad. If you create a table-based layout but also have a common external CSS file that you're using to do the standard things on your site, such as fonts, backgrounds and positioning, fine. The differences between using a table and div tags for layout are mostly preferential anyway. You have a problem if you are creating inline font tags, bolding every header in a page, etc--these are things that should be done in CSS.

32 Posted by Anton on 23 November 2005 | Permalink

2Jordan - I know all these benefits of CSS. And I'm CSS fan personally ;)

I just don't agree of ppk's "no difference in price" statement, since CSS requires more time, or more experience.

More time => more money.
More experience => more money.

That's it )

33 Posted by Balarama Bosch on 23 November 2005 | Permalink

I have to say from experience that designing a site using xhtml and css does take less time than using the "old school" way. This includes designs that are graphic intesive--not just bare-bones slashdot type sites.

Creating a template takes a little more time, but once you've created your template page, you can crank out pages in half time or even less, since you don't have to deal with, and look through all the messy code when updating/fixing things.

Granted, it takes a little more knowledge, but I feel it's ultimately worth it when you look at the increased development speed after initial design, and increased ease of maintainance.

34 Posted by Mark Wetter on 23 November 2005 | Permalink

I'm seeing a lot of questions about the so called "elitism" of people pushing the new standards. Now, I learned HTML 2.0 from a self help book in 96 or so. I used the exact same hacked together nested tables and bits of Javascript until around 2002 when one of my friends berated me severely for my "poor standards." At the time I thought he was being an elitist a**hole but because of him I took the time to research W3C standards and how to split content from presentation. About the most useful thing that came out of this was that I tried to build a standards compliant XHTML site that would verify with the W3C standards. After that experience I can't go back to the old way of stringing together chains of tables and align statements. So in the end I’m grateful that my friend snubbed my poorly written sites even if he was a bit blasé about it.

35 Posted by Scott Severance on 24 November 2005 | Permalink

Speaking as a hobbyist, I find one of the challenges to using modern methods is the lack of documentation.

Since I'm a hobbyist, I can take the time to hunt around for help and to do a lot of trial and error. But when I began my current project (my first experience with server-side scripting), I noted a huge difference between Javascript and PHP: PHP has a comprehensive manual, so when I don't know how to accomplish a task, I can easily find out how to do it. But with Javascript, I've never seen anything similar.

I find Quirksmode helpful, but I don't think that it was ever intended to serve as a Javascript manual. And a lot of the Javascript sites that I've seen are still using '90s techniques.

All this makes me think that a Javascript manual project (and perhaps a CSS manual--if one doesn't exist already) could go a long way to writing standards compliant code more feasible for the uninitiated.

36 Posted by Dustin Askins on 24 November 2005 | Permalink

I work for a very large corporation that has a farm of Web Developers creating one site per day per developer. The company I work for does not endorse standards, does not care about tag soup, and throws usability and accessibility to the wind. I say that like it's all a terrible thing, and it kind of is, but they’re making money, lots of it, off every single site.

So here stands one professional who knows how to and has created proper sites and will do his best to push higher standards in my company. I think it will benefit our customers immensely, the company naturally, and the integrity of the Web ultimately.

I’ve been working towards higher standards there for some time now, but it’s an uphill battle in such a large organization where a small decision impacts employees and processes nationwide. Who knows what it would cost to train and bring 90% of our amateurs up to speed…

37 Posted by Tino Zijdel on 24 November 2005 | Permalink

Scott: I have always used the Netscape Devedge reference as a guide to javascript. Mozilla has made Devedge available again at http://devedge-temp.mozilla.org/central/javascript/index_en.html
Also there's a lot more documentation on mozilla.org concerning javascript and DOM.
As for CSS I mostly revert directly to the specifications: http://www.w3.org/TR/CSS21/

38 Posted by Rakesh Pai on 24 November 2005 | Permalink

I must say, I agree with the comments above about having stumbled into the world of standards by accidentally stumbling on to your site.

It was long ago, but if I remember right, I was looking for some tips on handling JS based browser differences since I was not really happy with the sniffers. (Who is!) Once here, I discovered not just a very new way of looking at websites itself, but also a great community of people who are elite yet approachable. I've never used table-based layouts since.

39 Posted by Michael Schuerig on 24 November 2005 | Permalink

One problem with the "new" standards is that they are still quite inadequate. They're clearly aimed at web pages and web sites with nary a thought of web-based applications. Every other article or blog entry on CSS that I shows off some neat trick to do something with it for which it was seemingly not intended. The attitude appears to be: Hey, we've got this CSS stuff, now let's see what we can do with it. Whereas it should have been: Look, you standards/W3C people, here's what we need to do, now give us the appropriate means.

I'm looking at these things not as a web designer, but as an application developer who works on front ends that incidentally are web-based. From this perspective, the tools and standards -- to say nothing of some implementations -- are really appalling.

Regarding professionalism, I can't help but feel cynical, when the first thing I get to see on a page devoted to the topic is a sequence of JavaScript error messages. This is unfortunately true for the QuirksBlog, but it's not the only culprit, by far.

40 Posted by Richard York on 24 November 2005 | Permalink

Scott- there's also developer.mozilla.org. I also happen to like Danny Goodman's DHTML: The Definitive Guide (O'Reilly), a very comprehensive reference of JavaScript, markup and CSS.

PPK- Can't say I blame you, a reveiwer has a very large part in the production of a book. The publishers should compensate them for their time and consider them to be every bit as important as the editors and the author.

41 Posted by Wes on 24 November 2005 | Permalink

> One problem with the "new" standards is that they are still quite inadequate. They're clearly aimed at web pages and web sites with nary a thought of web-based applications.

I whole heartedly agree. The CSS specs are wonderful things but are sorely lacking in some very basic areas such as validly launch a new browser window, how to make your column'd layout the height of the screen. Things like this should be blatantly easy.

Before web standards are truly adopted as they should be, the majority of these hacks will have to go away.

That being said, I am on the team leading our web design firm as we switch to a 100% standards-based policy next year for all our sites. I am very much looking forward to the end result but am dreading all these hacks and "gotchas" that we will run into. It is these sort of things that are holding back the revolution.

42 Posted by Andy Moss on 25 November 2005 | Permalink

Its the "main players" who need converting. by this i mean software vendors and technology providers. I came into my new job at a college too late to change the director's mind over what CMS to use. We are now stuck with MS sharepoint. the navigation is tucked away inside asp.net dll's that produce nested-nested-nested tables. a blind lecturer here has an absolute nightmare with it, but there is nothing i can do. MS seem to have thrown all their money into marketing this thing rather than concentrating on the quality of it. It breaches just about every accessibility guidline. the administration interface is riddled with activeX controls, none of the javascript works on anything other than WIN-IE5+ and they are pushing this technology on colleges who are legally required to be accessible. it may be called sharepoint 2003 but it should be renamed 1997.

Macromedia did the right thing by changing the focus of their software (a version too late for my liking though).

.PHP developers seem to care more about the standards compliance of thier code, but aspx developers couldn't give a monkeys. just look at 4guysfromrolla!

43 Posted by Jo on 25 November 2005 | Permalink

Webdesigners and webdevelopers that still are learning the trade, turn to 'free of charge' forums about webstandards, CSS, JS, etc ... for any help. Nothing wrong with that since people can obtain valuable answers,tips,pointers from commenters at these forums.

Nonetheless is the quality of these forums not guaranteed at all, people maybe led astray from good webstandard and/or coding practices when the answers they get are incorrect, not to the point which may teach them wrong and amateurish practise of webstandards. Moderation is the key and so is not letting anyone answer questions that require a certain degree of professionality. But this would require hiring adequate forum posters. I believe forums can be harmfull in that way for teaching webstandards the good way.

44 Posted by Andy Johnston on 26 November 2005 | Permalink

I believe the "elitist" aura surrounding standards is partly due to the mentality of the validate this site icon and similar faff. The notion that "if my site validates I have developed a sucessful website" seems to be a little too prevalent.

From a professional developer point of view the fact that a site validates is nice as a personal achievement, and also gives some sort of tangible proof that you are
doing a good good of developing with best practices in mind, however the majority of clients couldn't care less if their website is strict xhtml, compliant css and accessabilty oriented, they are more interested in the bottom line of how much work their marketing investment is paying back.

The focus on standards is great, it has helped to push browser developers into a less proprietry outlook of the rendering of html pages, which allows developers to focus less time on bug fixing and browser testing and more time on the important thing like ui usabilty and core application ideas. But is only a small part of the toolkit of skills a web developer should possess.

45 Posted by GLS on 27 November 2005 | Permalink

Several people have mentioned they'd like to see code libraries. What do you want in these libraries? It's probably all scattered here and there on various sites right now. It just needs a single home.

Several also mentioned that a lot (80%?) of what's been written is less than great and should probably be avoided. So which _is_ the good stuff?

46 Posted by me on 29 November 2005 | Permalink

I am a new/old amatuer old school geezer. I am the single "web guy" at a small manufacturer / distributor. They have a print catalog and now sell online too. No glamour here just a real job.

When I started the ecommerce site was (and still is) a massive kludge of old school infinately nested tables, javascript, b tags, font tags, asp backend, sharepoint, and completely developed in frontpage. The site is a bear to maintain and you would cry to know the hoops I have to jump through to put up ONE new product or make one new style change. I am too embarrassed to even give the URL.

Unfortunately it works though. To redo it it would be awsome. But to actually do it, just myself, is an almost overwhelming task, on top of all my regular upkeep and product updates. Add on that all the ecommerce, web tracking, advertising, crapola code, it's impossible to validate. I search in vain for real world validating ecommerce sites and I don't think they exist.

Unfortunately, down on the ground reality is that until the browsers are set and tools exist to make it pretty easy you will continue to see awful sites like mine. The money, manpower, time, and brainpower is just not realistically available to do the conversion...sux but true...

47 Posted by Todd on 30 November 2005 | Permalink

GLS asked "What is the good stuff?"
As a hobbiest, I find myself returning to these sites:

w3schools.org - Though riddled with Ads, it offers a very easy learning path. The examples in a sandbox format (where you can play with code and see what happens) make the concepts being taught accessible.

http://css.maxdesign.com.au/ - Though more well known of a repository of list designs, their float and select tutorials are the superior instructors for these concepts of CSS.

quirksmode.org - I am not pandering to the host. But the CSS Tasks area (particularly 100% height, Tableless forms, and Centering a site) are fantastic for those common new user complaints. And there simply is no better Javascript documentation out there.

http://academ.hvcc.edu/~kantopet/old/index.php - I have stumbled upon these pages in the past. A solid archive compiled by a teacher who explains things clearly in a very organized fashion.

48 Posted by Kevin Vaughan on 2 December 2005 | Permalink

I think some of the problems associated with the "elite" educating the "masses" is that there isn't a great forum to do so. Standards bodies are great for defining what we should be using after its been in use for a while, but where are the central resources for those are talking about what we could be doing before its been done? My team spends a fair percentage of time each week deciding on new techniques to solve old problems in better ways. I'd love the ability to expand this conversation out to a few hundred, a few thousand others, but there doesn't seem to be a readily publicized venue for these types of discussions.

49 Posted by Anon on 4 December 2005 | Permalink

I agree wholeheartedly with the comments about making snippets and libraries of code available.

Many sites and books that focus on CSS spend far too much time focusing on the minutia of a problem in their many, many, many hack explanations. But the people you're trying to reach don't care and never will. They want a list of solutions to common problems, code to copy & paste, and brief notes on customization, not history of every person and thought that went toward the solution. Think Hotscripts, or a similar repository. With something approaching organization - most of the CSS-oriented sites that I've visited are very poorly organized and don't make it easy to find solutions... which is mildly ironic.

50 Posted by dfrahm on 8 December 2005 | Permalink

I for one don't see this demand for web professionals.

For years I have studied, learned, and preached about web standards... and NONE of my employers or coworkers have cared a bit.

It takes more time to do it right and the people footing the bill just don't seem to care enough. If they did, then the demand would be there, as you suggest.

Truthfully, some days I almost don't care anymore either.

51 Posted by Kollision on 8 December 2005 | Permalink

As a self-taught web developer (it still sounds funny when I call myself that, maybe I shouldn't), I agree with every word you typed in your text.
For me, the challenge of bringing people to the understanding of the powers of CSS seems impossible to accomplish... Especially in my country (Brazil). People still look at me in awe when I try to start a conversation on the subject, and get stunned when I help them by inserting a single "style" argument in their codes.
I am very thankful to your website, Peter. It helped me enormously when I was taking my first steps in the wonders of correct web design. But frankly, the only way of reaching the New Amateurs would be the dictatorial way... You are part of an UTOPIA, one which is accessible only to those willing to develop themselves and learn, learn, learn...

52 Posted by metaware inc on 12 December 2005 | Permalink

Hello all there!

This site has become a must when I've faced web-design. I'm a sw engineer, not web developer, but in my last project I had to do all the web tier of a portal. I've learned a lot of web design through sites like this one

I think the best way to evangelize css to the bosses is saying CSS (or any other welldone development) *saves* costs, specially on manteinance (which usually means 60% cost of the life cycle of a software).

Of course a bad design could be done in less time, but in the long term usually ends in crazyness (i.e extending the development of a bad design often drives to madness, the same occurs on web development, specially with javascript).

I do not agree with people who says it's longer to develop. It only takes more time as it is a new technology and you learn and get used to it

IMHO, reaching the new amateurs can be only accomplished through "elitism" and sites like this one. The rest is only matter of time :-)

Eventually, I would like to say that javascript is not watched like a serious language by "sw engineers " mainly because it behaves different in different browsers!

Cross-browser libraries (like dynapi) and cross-browser AJAX libraries (like DWR) are the tools of mind-change

53 Posted by Burd on 14 December 2005 | Permalink

"Although I've often encountered it I never really understood the "elitism" argument."

The whole problem is that the elitists speak in a ancient (academic as you will) language which was taught at various classes in university. When you want to educate and inform: the language used should tell about the level one should have to understand any of it. The whole problem is that any so-called Amateur will try to understand all what is said but will fail because it is too difficult. The idea is that you should gradually increase the level of difficultyin coherence with the level of the particpant.

54 Posted by Christopher Boomer on 20 December 2005 | Permalink

Scripters that I have worked with, who predominently write backend code to access databases and the like, have consistently held the belief that Javascript is wasted effort because they have already had to code all the validation serverside. (And while they are writing the validation there, they might as well write the layout there too.) Because at least if it is done serverside they have some *control* over whether it is likely to work.

At a tangent, but illustrating the same attitude: my main bugbear at the moment is trying to convince our Director of Development that HTML pages delivered straight from C++ code is less than ideal. All I ask is that he supply XML, so *I* can create the HTML using XSLT without need to go cap in hand asking for simple layout changes. "But why?" seems to be the cry.