<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Simplicity and Strictness</title>
	<atom:link href="http://www.codesimplicity.com/archives/15/feed" rel="self" type="application/rss+xml" />
	<link>http://www.codesimplicity.com/archives/15</link>
	<description></description>
	<pubDate>Fri, 04 Jul 2008 03:10:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Aleksej</title>
		<link>http://www.codesimplicity.com/archives/15#comment-102</link>
		<dc:creator>Aleksej</dc:creator>
		<pubDate>Sat, 16 Feb 2008 21:33:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-102</guid>
		<description>It is disabled by NoScript.</description>
		<content:encoded><![CDATA[<p>It is disabled by NoScript.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-101</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Sat, 16 Feb 2008 20:52:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-101</guid>
		<description>Ah, interesting. It's almost certainly something related to Brian's Threaded Comments. I could check it out if I have some free cycles some time. (I'm not sure how often people actually leave a comment with JS disabled, though.)

-Max</description>
		<content:encoded><![CDATA[<p>Ah, interesting. It&#8217;s almost certainly something related to Brian&#8217;s Threaded Comments. I could check it out if I have some free cycles some time. (I&#8217;m not sure how often people actually leave a comment with JS disabled, though.)</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aleksej</title>
		<link>http://www.codesimplicity.com/archives/15#comment-100</link>
		<dc:creator>Aleksej</dc:creator>
		<pubDate>Sat, 16 Feb 2008 20:27:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-100</guid>
		<description>It seems like an SGML parser has been added to “Html Validator” without me knowing. So it works for XHTML now (mostly). Thanks for the hint.

PS: If I try to leave a comment with JavaScript disabled, I get a misleading error message.</description>
		<content:encoded><![CDATA[<p>It seems like an SGML parser has been added to “Html Validator” without me knowing. So it works for XHTML now (mostly). Thanks for the hint.</p>
<p>PS: If I try to leave a comment with JavaScript disabled, I get a misleading error message.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralig</title>
		<link>http://www.codesimplicity.com/archives/15#comment-97</link>
		<dc:creator>Ralig</dc:creator>
		<pubDate>Fri, 15 Feb 2008 22:13:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-97</guid>
		<description>HTML Validator is an extension that does that, although I'm not sure how well it supports HTML and XHTML, but it does good by me.  It has the option of using several different algorithms for validation.

Page:  &lt;a href="http://users.skynet.be/mgueury/mozilla/" title="HTML Validoator" rel="nofollow"&gt;http://users.skynet.be/mgueury/mozilla/&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>HTML Validator is an extension that does that, although I&#8217;m not sure how well it supports HTML and XHTML, but it does good by me.  It has the option of using several different algorithms for validation.</p>
<p>Page:  <a href="http://users.skynet.be/mgueury/mozilla/" title="HTML Validoator" rel="nofollow">http://users.skynet.be/mgueury/mozilla/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-95</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Thu, 14 Feb 2008 20:30:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-95</guid>
		<description>Yeah, perhaps I'm more concerned about the complexity of WSDL than I am of SOAP. But if it's anything about SOAP, yeah, it's Section 5. :-)

Sure, if anybody had been required to read the HTML spec, they would have given up. But what you did to learn HTML is what I did, too--copy somebody else's. If HTML had been strict from the beginning, that copied HTML would be strict and we'd be fine. If we wanted to do something that wasn't in the original, we could go read the spec or a good, simple reference. This all works fine for Python. It works for almost every templating system I've used. I think it would have worked fine for HTML.

My problem with CSS is I think it's somewhat &lt;a href="/archives/12" rel="nofollow"&gt;overengineered&lt;/a&gt;, leading to complexities in the design that don't need to be there, that just layer on top of the complexities and confusions of parsing HTML to create implementations so complex that before we had something like Acid2 (written by one of the few people who actually understands the darn spec--and I am not one of those people) there were no &lt;em&gt;actually compliant&lt;/em&gt; implementations.

When nobody can easily create a compliant implementation of a spec, there's definitely some problem relating to complexity, whether it's unstrictness or something totally different. :-) Having an un-implementable spec is only slightly better than having no spec, and they both lead to &lt;a href="http://blog.plover.com/prog/perl/undefined.html" rel="nofollow"&gt;implementation-defined languages&lt;/a&gt;, which are disastrous if there's more than one implementation.

-Max</description>
		<content:encoded><![CDATA[<p>Yeah, perhaps I&#8217;m more concerned about the complexity of WSDL than I am of SOAP. But if it&#8217;s anything about SOAP, yeah, it&#8217;s Section 5. <img src='http://www.codesimplicity.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Sure, if anybody had been required to read the HTML spec, they would have given up. But what you did to learn HTML is what I did, too&#8211;copy somebody else&#8217;s. If HTML had been strict from the beginning, that copied HTML would be strict and we&#8217;d be fine. If we wanted to do something that wasn&#8217;t in the original, we could go read the spec or a good, simple reference. This all works fine for Python. It works for almost every templating system I&#8217;ve used. I think it would have worked fine for HTML.</p>
<p>My problem with CSS is I think it&#8217;s somewhat <a href="/archives/12" rel="nofollow">overengineered</a>, leading to complexities in the design that don&#8217;t need to be there, that just layer on top of the complexities and confusions of parsing HTML to create implementations so complex that before we had something like Acid2 (written by one of the few people who actually understands the darn spec&#8211;and I am not one of those people) there were no <em>actually compliant</em> implementations.</p>
<p>When nobody can easily create a compliant implementation of a spec, there&#8217;s definitely some problem relating to complexity, whether it&#8217;s unstrictness or something totally different. <img src='http://www.codesimplicity.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Having an un-implementable spec is only slightly better than having no spec, and they both lead to <a href="http://blog.plover.com/prog/perl/undefined.html" rel="nofollow">implementation-defined languages</a>, which are disastrous if there&#8217;s more than one implementation.</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RichB</title>
		<link>http://www.codesimplicity.com/archives/15#comment-94</link>
		<dc:creator>RichB</dc:creator>
		<pubDate>Thu, 14 Feb 2008 20:05:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-94</guid>
		<description>SOAP _is_ very simple (excluding SOAP section 5, which even Don Box says is a travesty) - it's a very simple message passing system. The strictness of web services comes from the usual schema system - WSDL. In addition to the schema strictness, it also turns out WSDL has a lot of complexity too.

HTML definitely was successful due to the sloppyness - I remember when I first created a popular public website (early 1994) and if I'd been required to read a book (in 1994!!) or spec on HTML I'd have given up. Instead, I took a look at sun.com and guessed. I sometimes wish that web browsers starting with the earliest Cello's and Mosaic's would have alerted the developer to a coding error by highlighting the error in the View Source output - this would have tidied up a lot of the web without having to make HTML parsers strict.

Look at true XHTML parsers - they are required to stop parsing on the first XML error resulting in a cryptic error message to the user. The sloppyness of HTML allows it to carry on processing and give a "best attempt" at rendering.

CSS is just the right amount of sloppyness. And it is successful because of it. Unfortunately, as you say CSS is unable to do things that many designers want - which is why the abomination of the CSS3 Advanced Layouts module has been created. Plus, there is no modularization in HTML styling so CSS tends to have unfortunate global effects where only local effects were intended (CSS block formatting context anyone?).</description>
		<content:encoded><![CDATA[<p>SOAP _is_ very simple (excluding SOAP section 5, which even Don Box says is a travesty) - it&#8217;s a very simple message passing system. The strictness of web services comes from the usual schema system - WSDL. In addition to the schema strictness, it also turns out WSDL has a lot of complexity too.</p>
<p>HTML definitely was successful due to the sloppyness - I remember when I first created a popular public website (early 1994) and if I&#8217;d been required to read a book (in 1994!!) or spec on HTML I&#8217;d have given up. Instead, I took a look at sun.com and guessed. I sometimes wish that web browsers starting with the earliest Cello&#8217;s and Mosaic&#8217;s would have alerted the developer to a coding error by highlighting the error in the View Source output - this would have tidied up a lot of the web without having to make HTML parsers strict.</p>
<p>Look at true XHTML parsers - they are required to stop parsing on the first XML error resulting in a cryptic error message to the user. The sloppyness of HTML allows it to carry on processing and give a &#8220;best attempt&#8221; at rendering.</p>
<p>CSS is just the right amount of sloppyness. And it is successful because of it. Unfortunately, as you say CSS is unable to do things that many designers want - which is why the abomination of the CSS3 Advanced Layouts module has been created. Plus, there is no modularization in HTML styling so CSS tends to have unfortunate global effects where only local effects were intended (CSS block formatting context anyone?).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-93</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Thu, 14 Feb 2008 16:47:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-93</guid>
		<description>Yeah, thanks for the note on validation. When you're using Wordpress, you're at the mercy of plugins, sometimes. I'm fairly sure that my actual base template validates, but there might be some things in some places I have to fix, in some plugins.

I'm not aware of a FF extension for validation like that, although it would be a good idea and I'd be surprised if it doesn't exist.

-Max</description>
		<content:encoded><![CDATA[<p>Yeah, thanks for the note on validation. When you&#8217;re using Wordpress, you&#8217;re at the mercy of plugins, sometimes. I&#8217;m fairly sure that my actual base template validates, but there might be some things in some places I have to fix, in some plugins.</p>
<p>I&#8217;m not aware of a FF extension for validation like that, although it would be a good idea and I&#8217;d be surprised if it doesn&#8217;t exist.</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-92</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Thu, 14 Feb 2008 16:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-92</guid>
		<description>That's a pretty interesting article, and I think he's made some good observations but come up with the wrong reasons behind them. He's targeted sloppy standards as successful because of their sloppiness, which I'd disagree with. I think the standards he cites have been successful because they are &lt;em&gt;simple&lt;/em&gt;, not because they are sloppy. SOAP, for example, is a nightmare because it's just way too complex, not because it's too strict. HTML is successful because it's easy to understand, not because it's sloppy. CSS is somewhat "sloppy" but is not as successful as it should be, due to the fact that it's insanely complex to do certain things with it that should be very simple.

So generally, I'd argue that the division, for popularity, is simple/complex than strict/sloppy.

-Max</description>
		<content:encoded><![CDATA[<p>That&#8217;s a pretty interesting article, and I think he&#8217;s made some good observations but come up with the wrong reasons behind them. He&#8217;s targeted sloppy standards as successful because of their sloppiness, which I&#8217;d disagree with. I think the standards he cites have been successful because they are <em>simple</em>, not because they are sloppy. SOAP, for example, is a nightmare because it&#8217;s just way too complex, not because it&#8217;s too strict. HTML is successful because it&#8217;s easy to understand, not because it&#8217;s sloppy. CSS is somewhat &#8220;sloppy&#8221; but is not as successful as it should be, due to the fact that it&#8217;s insanely complex to do certain things with it that should be very simple.</p>
<p>So generally, I&#8217;d argue that the division, for popularity, is simple/complex than strict/sloppy.</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aleksej</title>
		<link>http://www.codesimplicity.com/archives/15#comment-90</link>
		<dc:creator>Aleksej</dc:creator>
		<pubDate>Thu, 14 Feb 2008 12:22:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-90</guid>
		<description>This WordPress page fails validation horribly. There are escaped quotes, lack of quotes, and single quotes.

Is there a good (supporting both HTML and XHTML properly) validator for Firefox, displaying the result briefly in statusbar?</description>
		<content:encoded><![CDATA[<p>This WordPress page fails validation horribly. There are escaped quotes, lack of quotes, and single quotes.</p>
<p>Is there a good (supporting both HTML and XHTML properly) validator for Firefox, displaying the result briefly in statusbar?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RichB</title>
		<link>http://www.codesimplicity.com/archives/15#comment-89</link>
		<dc:creator>RichB</dc:creator>
		<pubDate>Thu, 14 Feb 2008 10:57:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-89</guid>
		<description>Adam Bosworth wrote about Strict/Sloppy standards a few years ago. It's well worth a read:
http://adambosworth.net/2004/11/18/iscoc04-talk/</description>
		<content:encoded><![CDATA[<p>Adam Bosworth wrote about Strict/Sloppy standards a few years ago. It&#8217;s well worth a read:<br />
<a href="http://adambosworth.net/2004/11/18/iscoc04-talk/" rel="nofollow">http://adambosworth.net/2004/11/18/iscoc04-talk/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-82</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Wed, 13 Feb 2008 23:54:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-82</guid>
		<description>Oh, and I agree with the "throw an error about it even if you do accept it" bit--that's a good point.

-Max</description>
		<content:encoded><![CDATA[<p>Oh, and I agree with the &#8220;throw an error about it even if you do accept it&#8221; bit&#8211;that&#8217;s a good point.</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Kanat-Alexander</title>
		<link>http://www.codesimplicity.com/archives/15#comment-81</link>
		<dc:creator>Max Kanat-Alexander</dc:creator>
		<pubDate>Wed, 13 Feb 2008 23:53:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-81</guid>
		<description>Yes, the market share bit is absolutely true--look at Opera and older versions of iCab. And yes, you re-make my point--it is impossible to tell whether or not HTML is valid with any certainty because it lacks strictness (and also because the specs are very complicated, particularly when you throw in CSS). My point was that they all should have been strict from the beginning.

As far as the mail servers go, I think you're right to some degree, but coding with strictness does avoid those sorts of problems. Once again, the SMTP RFCs are so complicated in some aspects (and were probably unfortunately un-strict in certain aspects in older editions) that errors like this are possible and now people who receive mail have to account for them. (Processing the received emails suffers from a similar problem.)

In the current environment we have with computers, for the usability reasons that I mention in the article, yes, it's definitely important to be somewhat liberal with what you receive. But if you're designing your own protocol, your own language, or something that works only internally to your own system, there's nothing wrong with being as strict as possible in your own implementation so that you don't end up being like Email, SMTP, HTML, Perl, etc.

-Max</description>
		<content:encoded><![CDATA[<p>Yes, the market share bit is absolutely true&#8211;look at Opera and older versions of iCab. And yes, you re-make my point&#8211;it is impossible to tell whether or not HTML is valid with any certainty because it lacks strictness (and also because the specs are very complicated, particularly when you throw in CSS). My point was that they all should have been strict from the beginning.</p>
<p>As far as the mail servers go, I think you&#8217;re right to some degree, but coding with strictness does avoid those sorts of problems. Once again, the SMTP RFCs are so complicated in some aspects (and were probably unfortunately un-strict in certain aspects in older editions) that errors like this are possible and now people who receive mail have to account for them. (Processing the received emails suffers from a similar problem.)</p>
<p>In the current environment we have with computers, for the usability reasons that I mention in the article, yes, it&#8217;s definitely important to be somewhat liberal with what you receive. But if you&#8217;re designing your own protocol, your own language, or something that works only internally to your own system, there&#8217;s nothing wrong with being as strict as possible in your own implementation so that you don&#8217;t end up being like Email, SMTP, HTML, Perl, etc.</p>
<p>-Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian</title>
		<link>http://www.codesimplicity.com/archives/15#comment-79</link>
		<dc:creator>Christian</dc:creator>
		<pubDate>Wed, 13 Feb 2008 22:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.codesimplicity.com/archives/15#comment-79</guid>
		<description>I think it would be very hard for a browser to gain marketshare, if it was stricter than other browsers and simply refused to display content that other browsers would display, only because it isn't 100% valid. Even if all browser vendors agreed to reject invalid content, it would be unlikely that all browsers managed to determine with 100% certainty whether a given page was valid or not.

I once had a mail account at a mail server that checked for compliance with all kinds of RFC's before accepting a mail (e.g. it called back to the origin domain to see whether it had a valid postmaster@domain account). Many senders happened to use a mailserver with some kind of (small) misconfiguration that prevented their mails from reaching me because of these checks. I complained to the senders and the administrators of their mailservers, but they usually didn't care or didn't know what to do about it. In terms of interoperability, this was a pretty bad solution. Of course, if all mail servers did exactly the same RFC checks, the problems would be resolved quickly, but I doubt that all mail server vendors or mail server administrators would spend CPU cycles on stuff like that.

Personally I subscribe to the "be liberal in what you accept, and conservative in what you send" strategy but with the important addition that an implementation should report any errors it detects (e.g. in an error console like the one in Firefox) even if it is able to work around the error. In this way the user can continue using the current version of the software, and the technically savvy user will be aware that there is a problem so that he can report the bug to his software vendor.</description>
		<content:encoded><![CDATA[<p>I think it would be very hard for a browser to gain marketshare, if it was stricter than other browsers and simply refused to display content that other browsers would display, only because it isn&#8217;t 100% valid. Even if all browser vendors agreed to reject invalid content, it would be unlikely that all browsers managed to determine with 100% certainty whether a given page was valid or not.</p>
<p>I once had a mail account at a mail server that checked for compliance with all kinds of RFC&#8217;s before accepting a mail (e.g. it called back to the origin domain to see whether it had a valid postmaster@domain account). Many senders happened to use a mailserver with some kind of (small) misconfiguration that prevented their mails from reaching me because of these checks. I complained to the senders and the administrators of their mailservers, but they usually didn&#8217;t care or didn&#8217;t know what to do about it. In terms of interoperability, this was a pretty bad solution. Of course, if all mail servers did exactly the same RFC checks, the problems would be resolved quickly, but I doubt that all mail server vendors or mail server administrators would spend CPU cycles on stuff like that.</p>
<p>Personally I subscribe to the &#8220;be liberal in what you accept, and conservative in what you send&#8221; strategy but with the important addition that an implementation should report any errors it detects (e.g. in an error console like the one in Firefox) even if it is able to work around the error. In this way the user can continue using the current version of the software, and the technically savvy user will be aware that there is a problem so that he can report the bug to his software vendor.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
