{"id":1583,"date":"2008-03-28T11:00:01","date_gmt":"2008-03-28T16:00:01","guid":{"rendered":"http:\/\/www.shamusyoung.com\/twentysidedtale\/?p=1583"},"modified":"2008-03-28T01:49:35","modified_gmt":"2008-03-28T06:49:35","slug":"catching-up-with-web-standards","status":"publish","type":"post","link":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=1583","title":{"rendered":"Catching up with Web Standards"},"content":{"rendered":"<p><table width='256'  cellpadding='0' cellspacing='0' border='0' align='left'><tr><td><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/firefox_vs_ie.jpg' class='insetimage' width='256' alt='Firefox vs. IE' title='Firefox vs. IE'\/><\/td><\/tr><\/table>I&#8217;ve never really paid any attention to web standards until recently.  I dabble in HTML and use half-assed CSS when I&#8217;m forced to, but I&#8217;m an old-school guy who began by coding HTML by hand in 1994.  (Boy I wish I had some of those early pages, they would be hilarious.)  I was aware of standards in a distant way and in the past I even <a href=\"?p=994\">poked fun at them as needlessly pedantic<\/a>. I was aware that there was a standard, and that browsers complied with it to varying degrees, but I always attributed the differences to the usual culprit:  Software sucks.  Now that I&#8217;ve read a bit about it and I see <a href=\"http:\/\/www.w3.org\/TR\/CSS21\/visuren.html\">how complex<\/a> the standards are, and that compliance is more affected by business and politics than programmer time and talent.  It turns out that some browsers suck on purpose. Or at least, the fail to <i>not<\/i> suck on purpose. Now that the problem is no longer a matter of fixing bugs, I&#8217;m intrigued by it.  <\/p>\n<p>The paradox facing IE is the most interesting.  For many years it was both the most popular <i>and<\/i> the least standards compliant.  Looking back, I can see why IE was so singularly infuriating to web developers.  They would make a &#8220;correct&#8221; page, and it would work just fine in all browsers <i>except<\/i> for the ubiquitous IE6.  They would find hacks to correct these flaws in IE without breaking the page elsewhere.  Then IE7 came out, and pages broke in a completely <em>different<\/em> way, requiring an additional layer of hacks on top of the old one. Sometimes hacks are (shudder) <em>nested<\/em>.  I&#8217;ve seen some example code of this business in the last few days, and makes quite a horrifying mess of what should be very straightforward CSS.  I can understand why web developers feel such animus:  If my job was complicated by this sort of business I&#8217;d most likely want to visit heinous damage on the people responsible.<\/p>\n<p>Again, I wasn&#8217;t really paying attention to this drama at the time.  My HTML has always relied on tables for layout and my CSS was too simple to run afoul of any of the dozens of quirks, issues, ambiguities, or broken behavior.  It just didn&#8217;t affect me. (Well, once or twice.  But I never had to deal with the sort of headaches that web developers deal with on a regular basis.  I certainly never used any browser hacks.) I was aware that web developers had some ire towards Microsoft, but Microsoft&#8217;s foes are legion and I didn&#8217;t realize this was something other than the usual ambient level of hatred the company seems to maintain.  <\/p>\n<p>What Microsoft is facing now really does seem to be a certain degree of comeuppance. You can brazenly ignore standards only so long as you have absolute dominance over the market.  If you lose your grip on the system, your deviations from the norm will become a great liability.  Lose enough ground, and the cycle will begin to feed on itself.  Most people will be making webpages that look good on their browser of choice.  Only the responsible ones will bother to check other browsers, and only the diligent will go to the trouble to use the hacks. More pages will emerge that don&#8217;t work right in your browser. More people will switch.  The system will bottom out once you get to the dregs &#8211; the people who don&#8217;t know how to switch or aren&#8217;t allowed because they don&#8217;t own the computer.   <\/p>\n<p>Is this happening now? I have no idea. The conventional wisdom is that IE has been losing market share at a good clip. I know my site isn&#8217;t exactly representative of the web as a whole, but check out the browser usage among the visitors here:<!--more--><\/p>\n<p><table width='491'  cellpadding='0' cellspacing='0' border='0' align='center'><tr><td><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/browsers.jpg' class='insetimage' width='491' alt='browsers.jpg' title='browsers.jpg'\/><\/td><\/tr><\/table><\/p>\n<p>The <a href=\"http:\/\/en.wikipedia.org\/wiki\/Internet_Explorer\">IE Wikipedia page<\/a> claims it still has an 80% market share. That seems pretty high to me, but I have no way of knowing. Regardless of who you believe the consensus is that IE usage is shrinking.  <\/p>\n<p>Now that I&#8217;ve given myself some sort of crude, rudimentary education on the web standards problem, I do find it to be compelling and I&#8217;m keen to see what Microsoft will do next.  Millions of pages out there have hacks that do special things with the CSS to make the page look right in IE.  Those hacks will still be in place, and will still do their thing, even if the problems they&#8217;re intended to solve are now fixed in IE8.  Sure, new hacks will come out which will let developers give IE8 special treatment, but those hacks won&#8217;t appear until after IE8 launches.  The upshot is:  For most people, IE8 will look &#8220;buggy&#8221;, even if it&#8217;s actually just working <em>right<\/em> for the first time.  This may well give people yet another reason to <a href=\"http:\/\/www.mozilla.com\/en-US\/firefox\/\">try Firefox<\/a>.  <\/p>\n<p>So, IE looks like it will lose market share either because their old browser sucks or because the new one works right.  The only way they can &#8220;win&#8221; is to make IE8 behave like IE7, and even that isn&#8217;t a solution.  It just means they won&#8217;t lose users faster than they already are.<\/p>\n<p>But what is most interesting in all of this is just how pissed off people are.  I understand the animus from web developers:  Their job is a lot harder and a lot more annoying because of IE.  But the anger goes well beyond web developers.  Some people are just plain <em>incensed<\/em> about how Microsoft has failed to adhere to standards.  <\/p>\n<p>The world of politics is imperfect.  If you want policy A, you can&#8217;t implement it, let it run for thirty years to see the results, then go back in time and try things again without it.  It&#8217;s always subjective,  always muddied by imperfect knowledge, personal biases, feelings, salesmanship, and the capricious nature of polling.  Religion is likewise not something that lends itself to the clarity of absolutes which can be demonstrated on a blackboard.  Friendship is similarly vague.  And let&#8217;s not even get started on what a mess love is.  We accept that people will always disagree because here in the analog world, imperfect people make imperfect decisions based on imperfect knowledge with an imperfect ability to measure the results and an imperfect ability to appraise those measurements.  But in the digital world we <strong>shouldn&#8217;t<\/strong> have those problems, right? Things can be perfectly measured in bytes and pixels, precisely compared to specifications, and dispassionately judged according to binary logic, bringing us into a desired state of agreement without ambiguity or rancor.  I mean, it either works or it doesn&#8217;t.<\/p>\n<p>Right?<\/p>\n<blockquote><p><code><b><br \/>\nint MakeSureNotTooBig (int i)<br \/>\n{<br \/>\n&nbsp;&nbsp;   if (i ~ 100) { \/\/ i is probably near 100<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;      i = MakeNumberGenerallySmaller (i);<br \/>\n&nbsp;&nbsp;   } not as such { \/\/ meh<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;      maybe return i;<br \/>\n&nbsp;&nbsp;   }<br \/>\n&nbsp;&nbsp;   return i, or something in the ballpark of i.<br \/>\n}<br \/>\n<\/b><\/code><\/p><\/blockquote>\n<p>But web standards don&#8217;t seem to bring about the platonic harmony we crave.  Worse, it seems to fail because the analog world keeps intruding on the digital one.  Eric Meyer has a beautiful example of a problem that has no right answer:  <a href=\"http:\/\/meyerweb.com\/eric\/thoughts\/2008\/01\/24\/almost-target\/\">You can either conform to the specs or you can make it work<\/a>.  In a perfect world these two actions would be identical, not mutually exclusive. This intrusion of the sloppy analog world into the tidy digital one is making people crazy angry.  <\/p>\n<p>Still, I&#8217;d love to hear a guess as to why Microsoft was so cavalier about web standards until now.  &#8220;Because they suck and they are evil and I hate them hate them&#8221; isn&#8217;t really that informative.  What I want to know is, how could loose standards adherence translate into money or power.  Microsoft is not a well-liked company, but they operate under a very well understood set of priorities.  When they make people mad, they do not do so because they enjoy the rancor, they do so because it&#8217;s more profitable than keeping them happy.  What I can&#8217;t figure out is how that applies in this case.  What was going on here in the analog world that made such a mess in the digital one?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve never really paid any attention to web standards until recently. I dabble in HTML and use half-assed CSS when I&#8217;m forced to, but I&#8217;m an old-school guy who began by coding HTML by hand in 1994. (Boy I wish I had some of those early pages, they would be hilarious.) I was aware of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1583","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/1583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1583"}],"version-history":[{"count":0,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/1583\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}