7 ms·
The W3C is broken: it has spent the last 10 years standardizing ideas instead of existing practice. This is totally backwards and leads to standards that are t
by haberman 16y ago
The W3C is broken: it has spent the last 10 years standardizing ideas instead of existing practice. This is totally backwards and leads to standards that are too complicated, unrealistic, and in many cases not needed at all.
The W3C was originally created to standardize HTML, which was already being used by many vendors and users but in incompatible ways. That is exactly the right situation for creating a standard. It leads to standards that are realistic and motivated by a demonstrated need.
Unfortunately, almost everything else the W3C has ever done has happened in the opposite direction: in response to an idea or a perceived need, some people theorize about the best way to solve the problem and then write a document that a bunch of vendors are supposed to then implement from scratch.
This is how we ended up with the XML stack, which was designed to solve the data interchange problem but ended up being a disaster of complexity, inefficiency, and ad hoc implementations.
Even the case of CSS (which has been quite successful) is sub-optimal IMO, because it didn't choose to standardize the existing practice of how people were using tables for layout. The CSS box model makes it stupidly difficult to do things that are trivial with table-based layouts, like a a three column layout (which is considered a "holy grail" by even CSS advocates: http://www.alistapart.com/articles/holygrail/ http://www.alistapart.com/articles/holygrail/).
CSS could have used a table-like layout model that makes it easy to arrange <div>s into rows and columns, allowing a smooth upgrade from people who were using the <table> tag. Instead they invented something new that was much more difficult to design for, creating an unnecessary tension between web standards advocates and people who just wanted to get things done.
Standards should codify and refine existing practice, not attempt to invent new things.
- jerf 16y ago"CSS could have used a table-like layout model that makes it easy to arrange <div>s into rows and columns, allowing a smooth upgrade from people who were using the <table> tag." Like this? http://www.w3.org/TR/CSS2/tables.html http://www.w3.org/TR/CSS2/tables.html
- haberman 16y agoA lot like that, yes, but that was not introduced until CSS2 which is so big and complex that they've spent almost 15 years correcting it (CSS 2.1 keeps bouncing back and forth between "Working Draft" and "Candidate Recommendation"). Despite being first defined in CSS2 (1998) CSS tables were not supported in IE for 10 years (IE8, 2009), and while some of the blame for this is surely Microsoft's, with a standard as big and complex as CSS it's hard to expect implementations to get it right for a long time. To avoid this disaster CSS3 is "modular" and currently has over 40 modules defined! This is madness. The more complicated things get, the more difficult it is to bring the web to new devices or to innovate in the browser space.
- halo 16y agoCSS1 was deliberately designed to be 'simple' which is why they avoided the problem of layout entirely. Appendix E of the specification even says so (http://www.w3.org/TR/CSS1/#appendix-e http://www.w3.org/TR/CSS1/#appendix-e).
- haberman 16y agoGood to know -- though in that case, it seems inappropriate that web standards advocates were demanding everyone abandon table-based layouts when CSS did not actually support layout yet.
- bandushrew 16y agoit was fairly inappropriate, and for the most part pragmatic web designers ignored it until it become realistic. OTOH, it was the early adopters that were driving it, and I dont really have a problem with that. That is what early adopters do.
- tahu 16y agoThis time there is existing practice - Opera Unite and Tonido.
- rimantas 16y agoCSS offers many solutions to layout. The problem is what a lot of web surfers are stuck with old versions of some particular browser.
- haberman 16y agoWhat solution does CSS offer for three-column layout (with a resizable center column) that is remotely as simple as: <table width=100%><tr> <td width="200px">Fixed left column. <td>Liquid center column <td width="200px">Fixed right column. </table>
- null_ptr 16y ago<div id="site"> <div id="left">Fixed left column.</div> <div id="middle">Liquid center column</div> <div id="right">Fixed right column.</div> </div> The whole point of CSS is to take things like width="200px" out of the markup.
- haberman 16y agoYou have to show what your CSS would be also. My point is that the CSS you have to write to get your example to look like mine is extremely complicated when all you have is the box model.
- rimantas 16y agoThere is nothing complicated, even using floats. Usig display: table-* it's damn easy. You also got CSS columns, and flex box.
- Groxx 16y agoLike this: #left{ float:left; width:200px; margin-right: -200px; } #right{ float:right; width:200px; margin-left: -200px; } #middle{ float: left; margin-left: 200px; margin-right: 200px; } People tend to avoid this relatively simple solution because of the double-left-margin bug in IE 5 & 6, but that's getting to be an excessively old set of browsers. And even then, it's usually fixed with a "display:inline;" on the ones with left margins. edit: it's not an ideal solution, as it has those negative values which have to match the related positive ones. Which is solved with something like Sass or Less, because CSS lacks any "programming" abilities, which I see as its main failure. Even variables and simple math would be acceptable, but instead, nothing.
- yuhong 16y agoRecently the W3C has recognized and fixed the problem with a requirement that two implementations has to interoperably implement a feature for it to survive the Proposed Recommendation. That is how CSS 2.1 got created after CSS 2.0 that became a recommendation in 1998 ended up with no browsers fully complying with it.
- olavk 16y agoI agree with you in general, but not in the case of CSS. The CSS layout model were indeed based on exactly the layout properties of "presentational HTML" which people were using for style and layout at that time. It was just made more fine grained, and separated from the markup. For example, the much hated "float/clear" layout model were based on the align="left|right" and clear="left|right" attributes which Netscape (I believe) introduce on img- and table-elements, and which people did use a lot. The layout model of tables were also widely used, and that was codified with the display:table-* properties, which again provides exactly the same layout model in CSS as tables provided via markup. The problem was basically that IE development were frozen for many years. IE implemented the float-related CSS before the freeze, but not the table-model. I believe IE 8 were the first version of IE to support the table model, more than a decade after CSS2 became a recommendation. This resulted in period of many years where the float model were supported via CSS in most browsers, but the table-model were not. This in turn resulted in an amazing amount of confusion, and people believing that floats are somehow the CSS's substitute for tables.
- yuhong 16y agoFYI, the reason why is that IE4 was released before CSS2 became a recommendation, and in fact implemented CSS1 (with bugs, but that is partly because it needs to be compatible with IE3) plus CSS-P: http://www.w3.org/TR/WD-positioning-19970819 http://www.w3.org/TR/WD-positioning-19970819
- flomo 16y agodisplay:table- always felt more like a hack than as something part of the design. As in "Oh, we forgot to model certain properties of tables that numerous websites actually use. Here's a workaround that imitates a table cell until we get around to figuring it out. PS: tables are still bad."
- olavk 16y ago> PS: tables are still bad. Tables are not bad. CSS purists state that using table markup purely for layout purposes (e.g. for positioning a page footer) is bad, because it violates the separation between content and presentation. In that case display:table-* will give you the same layout (neither worse nor better!) but without requiring any specific markup in the html. But this poses a dilemma for web developers, because display:table-* is not supported by all browsers, so some specifc kinds of layout can only be achieved with table markup. Developers had to choose between (1) compromising the layout (2) compromising the semantic/style separation or (3) use complex workaround like the CSS frameworks, which tried to emulate the table-layout model without requiring display:table support in the browser. Neither is optimal.
- jamesbritt 16y agoThe W3C is broken: it has spent the last 10 years standardizing ideas instead of existing practice. This is totally backwards and leads to standards that are too complicated, unrealistic, and in many cases not needed at all. The general view of the W3C as a standards body is broken. The W3C gets companies and individuals together to hash out ideas for the Web. After some time and trial and error they assemble a recommendation. Hopefully people (i.e. the members of the W3C) put this into practice to see how well it flies in real-life. At some point, if the recommendation proves its worth, a standards body such as ISO or ANSI may want to formalize it. Or so it was. Once upon a time yo could find on the W3C site a statement to the effect that they were not a standards body. However, some people who wanted to see the ideas from the W3C gain more traction (i.e. XHTML) started referring to W3C docs as standards, and the W3C as a standards body. Jeffrey Zeldman, in Designing with Web Standards [sic], says the use of the word "standards" when referring to these specs was, in fact, "a guerilla marketing maneuver." This is not mere semantics. There is great value in making a distinction between well-considered ideas that still need to be battle-proven, and proper formal specs that have been sufficiently vetted. Eventually the W3C began to believe the hype and now presents itself as a standards body, to the detriment of the greater Web community because, as you point out, they are "standardizing" things that people aren't actually doing.
- yuhong 16y agoAFAIK, HTML has been standardized by the ISO based on the W3C HTML 4 recommendation.
- jamesbritt 16y agoIndeed! http://www.scss.tcd.ie/misc/15445/15445.HTML http://www.scss.tcd.ie/misc/15445/15445.HTML
- alanh 16y agoHave you ever heard of HTML5? It is fundamentally a codification & standardization of existing practice (<canvas>, parsing, short encoding meta tags) — and when it isn’t doing that, it addresses actual needs (like how to handle video and audio).
- thaumaturgy 16y agoAre you seriously asking someone on HN if they've ever heard of HTML5?
- alanh 16y agoRhetorical, and if I could still edit to take the tone a step towards neutral, I would. But parent is an out-of-place and out-of-date criticism of w3c in my opinion. At minimum, they should explain why HTML5 is not a counter-example of their claim
- epistasis 16y agoYou should learn the history of HTML5, it's a perfect example of how the W3C is terribly broken, and certainly not an adequate or passable standards body. HTML5 was developed outside of W3C, in spite of the W3C, and at the objection of the W3C. Remember XHTML2? Hopefully not, but that's what the W3C wanted to do. The WHATWG formed to create HTML5 because browser makers wanted to improve the web and it was obvious that XHTML2 wasn't going to do that. After it was clear how useful HTML5 was, the W3C was dragged into participation, but unlike W3C standards, HTML5 continued on with it's open development model where discussion takes place in the open. The W3C has not contributed the idea, the execution, the prolitical process, or the people to HTML5, and HTML5 is a W3C standard by label only. If you look at the other standards the W3C creates, you'll see a pattern where standards are developed in isolation behind closed doors and without implementations, in direct contrast to any useable and useful standard such as HTML5. RDF, OWL, SVG, all abominations that seem to exist to hold back others from making reasonable and useful replacements.
- haberman 16y agoHTML5 was created by WHATWG (not W3C) in 2004. WHATWG was formed specifically because W3C had abandoned HTML in favor of XHTML. Only when it was clear that XHTML was a failure did W3C abandon it and join forces with WHATWG in 2007. In other words, W3C missed the boat on this. I don't think it's to their great credit that they joined a three-year-old effort after it was already clear that the whole industry was headed towards HTML5 and not XHTML.