I suppose they could have looked at existing visual design online and offline, and come to the conclusion that grid layouts were quite popular, and perhaps they should support it nicely?
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.
That's assuming anyone even anticipated comparability with print media. I think the original vision of hypertext documents was closer to the of text files than that of magazine pages. Grid layouts are clearly not popular in text files. I think if HTML was modeled after what was seen around it, it would look more like Markdown, with correspondingly fewer features.
Not to mention, modeling software interfaces after real-world objects is often a very bad idea.
I wouldn't imagine compatibility with print media would be a concern. But if you're going to specify a presentation language, it might have been a good idea to check the sort of layouts people have done in the past.
The desktop of my computer bears no resemblance to my physical desk. I have no icons on my physical desk. My physical desk can hold absolutely anything no matter shape or size and I can stack things and put them in piles and clear them off with one swoop of my hand. Also, my computer desktop has nothing on it, which is quite different from my physical desk.
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.
I'm new to blogging so I really appreciate your comment. Let me just say that while I agree with you for a lot of things (like rounded corners and gradients), I still think that they could have handled the layout system better at the time when it was created.
I think you may misunderstand what I meant. I was trying to say two different things.
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.
When it comes to rounded corners, I think the CSS3 solution of both "border-radius" for simple cases and multiple backgrounds per element will solve a fair few problems.
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.
Oh come on, layout languages had been around for years when CSS first appeared.
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 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!
"you know cars? they really should have had airbags when they were invented... oh, and they should have had CD-Disc players as well. Boy those car manufacturers were sure stupid."
Why is this article interesting? He doesn't like HTML & CSS. Fine. I've got a different developer who enjoys his work. Perhaps I'll hire him instead.
It's more like if cars were invented without steering wheels, and when people pointed out that wagons had steering wheels, all the car advocates told them that they just weren't leaning to the side hard enough when they tried to turn.
I just hate when people criticize things they know little about.
Article is full of incorrect statements:
There are at least 3 browsers to pass acid3 test: Chrome 3, Safari 4, Opera 10.
There ir a way to have equal height divs: check out display: table-* properties. Supportend in IE8 too.
There is a way to have rounded corners in CSS, supported in Safari, Firefox, Chrome.
There is a way to have box shadow, and gradients in CSS. Even animation, transformation and transitions.
Not only the author has not had a good look at both the historical context of HTML and CSS but has also failed to understand the technologies behind the success of the web.
HTML is a mark-up language for documents. Its simplicity has enabled the spread of the web. In addition it provided a means for some semantic marking of documents through tagging. It was not meant to be a graphical language (see SVG for that!) When it came out there were actually no browsers and most computers were still displaying graphics with herculer cards.
Once microcomputer technology caught up a bit, fancier documents and graphics started appearing and HTML still coped. It still copes even with fancy web applications. In the meantime computer languages appeared and disappeared, desktop software morphed from DOS to Windows 7.
CSS was the answer to presentational issues. It got limitations yes and it gives people difficulties, but so Haskell for me but I never tried to blame my own deficiencies to a 'badly designed' language. Yes CSS does not provide for rounded corners, but it does allow you to display the same content for print, handheld devices, auditory devices as well as feel the text in braille!
Most important this separation enables easier indexing of web pages which is next to impossible to index with graphical based systems.
Rounded corners are the single biggest headache in HTML+CSS. There is nothing else that's commonly designed and as big a headache.
Rounded corners are a bit cheesy anyway. Look at Hacker news, see any rounded corners?
Eventually, the standard will go to arbitrary inline vector graphics and everyone will be happy and the most horribly designed pages imaginable will be inflicted on us.
Bollocks to your bollocks. You're reading comprehension must be very low.
"HTML is a mark-up language for documents. Its simplicity has enabled the spread of the web. In addition it provided a means for some semantic marking BLAH BLAH BLAH."
You are repeating what he says in his blog. Maybe you read the wrong blog?
"CSS was the answer to presentational issues."
Yes, but it's not a good answer. It is possible to criticize something not as reflection of a person's own deficiencies, but because it is works poorly.
"Most important this separation enables easier indexing of web pages which is next to impossible to index with graphical based systems."
He never said the separation of content and layout is bad. He said they way that it is implemented is "POOP" Any sane person is for the seperation of content and layout.
20 comments
[ 4.2 ms ] story [ 64.9 ms ] threadBut 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!
Why is this article interesting? He doesn't like HTML & CSS. Fine. I've got a different developer who enjoys his work. Perhaps I'll hire him instead.
There ir a way to have equal height divs: check out display: table-* properties. Supportend in IE8 too.
There is a way to have rounded corners in CSS, supported in Safari, Firefox, Chrome.
There is a way to have box shadow, and gradients in CSS. Even animation, transformation and transitions.
Not only the author has not had a good look at both the historical context of HTML and CSS but has also failed to understand the technologies behind the success of the web.
HTML is a mark-up language for documents. Its simplicity has enabled the spread of the web. In addition it provided a means for some semantic marking of documents through tagging. It was not meant to be a graphical language (see SVG for that!) When it came out there were actually no browsers and most computers were still displaying graphics with herculer cards.
Once microcomputer technology caught up a bit, fancier documents and graphics started appearing and HTML still coped. It still copes even with fancy web applications. In the meantime computer languages appeared and disappeared, desktop software morphed from DOS to Windows 7.
CSS was the answer to presentational issues. It got limitations yes and it gives people difficulties, but so Haskell for me but I never tried to blame my own deficiencies to a 'badly designed' language. Yes CSS does not provide for rounded corners, but it does allow you to display the same content for print, handheld devices, auditory devices as well as feel the text in braille!
Most important this separation enables easier indexing of web pages which is next to impossible to index with graphical based systems.
Rounded corners are a bit cheesy anyway. Look at Hacker news, see any rounded corners?
Eventually, the standard will go to arbitrary inline vector graphics and everyone will be happy and the most horribly designed pages imaginable will be inflicted on us.
"HTML is a mark-up language for documents. Its simplicity has enabled the spread of the web. In addition it provided a means for some semantic marking BLAH BLAH BLAH."
You are repeating what he says in his blog. Maybe you read the wrong blog?
"CSS was the answer to presentational issues."
Yes, but it's not a good answer. It is possible to criticize something not as reflection of a person's own deficiencies, but because it is works poorly.
"Most important this separation enables easier indexing of web pages which is next to impossible to index with graphical based systems."
He never said the separation of content and layout is bad. He said they way that it is implemented is "POOP" Any sane person is for the seperation of content and layout.
You can read Håkon Wium Lie's PhD thesis as to the reasoning behind CSS. http://people.opera.com/howcome/2006/phd/ and make your own mind if it is POOP or not.
IMHO it has a very good basis and also provides an architecture for improvements. Pretty much similar to Knuth's TeX.
I personally find no difficulty in using CSS! I think it is the smallest of the head-aches that a web developer faces. really a non-issue.