But what they really didn't anticipate was web applications, which is a whole other story, and something for which HTML + CSS is really badly suited.
I feel the author's pain.
Not to mention, modeling software interfaces after real-world objects is often a very bad idea.
What do you think of the desktop of your computer, compared to your physical desk?
or the fact that the windows of your programs can be stack on top of each other like paper pages?
Or text processing programs, that show you the output the way it is going to be displayed (WYSIWG).
Or that whole Object Oriented Programming thingy.
On the contrary modeling software interfaces after real-world objects is a very good idea.
The fact that "windows" can "stack... like paper" shows that the real world isn't being modeled. Last time I checked, windows could not be stacked like paper and windows on my computer have very little resemblance to paper in any other way. I'm quite certain paper wasn't the inspiration for stacking windows.
I think WYSIWYG editors are a bad idea, precisely because they try to model the real world too closely.
Object oriented programming is about much more than modeling real-world objects in code. Sometimes (often in fact) that is exactly the wrong way to create objects.
Trying to model software off real-world objects is how you get stupid things like clicking and dragging to flip pages on a document you're reading, all while animating the turning of the pages.
The examples you give (where they are accurate at all) are about using physical objects to provide a metaphor for understanding software. The perfect example is the trash / recycle bin. It provides a metaphor that makes it easier for people to learn what it does, but it isn't modeled after a real trash can or recycling bin. You don't have to empty it. You can, but it's not required. You don't have to change bags. It isn't picked up twice a week. It doesn't start to smell after a while. It's of essentially unlimited size. If it was modeled after a real trash can, some of these things would have been implemented in some way.
EDIT: I am genuinely curious--not trying to give a hard time.
First, I am new to blogging, so even if you are writing a comment saying you hate my guts, I appreciate that you took time out of your busy schedule to comment about something that I wrote.
Second, there are many things that are problems now with CSS that the original authors couldn't possibly have known about. However, I strongly disagree with the sentiment that css was good for its time. There are many things that are terrible regardless of what was or wasn't known at the time.
As to what I would change...I didn't actually bother to check any facts when I wrote this. I had some idea in my head of what the facts were but I never bothered to get them right.
Of course, sometimes lying can be a good thing. Imagine if every time I said that something like X doesn't work, I followed up with a long 2 page article about how you might be able to accomplish it in some browser on some operating system running some plugin.
Some of my particular problems with CSS would be that it's insufficient for styling a document, the idea is fine, but to be able to do any advanced css you'll need to muddy up your markup with additional elements to hold styles.
If that were fixed, then it would at least be reasonable, and sure it's slowly moving closer to it. Aside from that I personally dislike the oversimplicity of the style of CSS that leads to difficulties in creating stylesheets that are easy to navigate what with the lack of structure (over a couple of years of fixing up a design stylesheet are rarely that pleasant to look at), having some basic support for variables and calculations to more easily create complementary colors to your document styles also be nice, but eh.
See if I get killed for those opinions.
The problem with CSS is that it was designed by the sorts of people who like to design languages around vague concepts rather than design languages around getting things done. In the case of CSS, the overriding concept was semantic information. Surprise, surprise, it only turns out to be mildly useful.
The visual web was horribly crippled in order to achieve a mediocre result with a few non-visual edge cases.
The visual web was deprecated in favour of presenting information in an accessible manner (for people and computers). Not a perfectly accessibble manner for sure. Direct visual fidelity has always been available with PDF and to some extent with flash.
There are good reasons why all webpages are not simply embedded PDF pages although [print] graphic designers will probably beg to differ!