The other morning, when my wife and I went to get our boys, we had one of those moments parents both love and hate. When we opened the door, we were greeted by a smiling giggling toddler. G. looked at us, smiled and said “Big Poopy!!” then held his arms apart to to indicate something being big. This statement was then corroborated by our nostrils. As parents we were appreciative of the warning and hopeful that this may be the first step in him being ready for potty training, but we were also dreading the cleanup. After all, how big does it have to be for a 2 year old to say it is big (it was). Later that day, Microsoft gave me a “big Poopy” moment
I was reading an article about Microsoft’s plans for Internet Explorer 9 to support HTML5, the work in progress update to the HTML standard. Microsoft has announced it will be supporting the version under the governance of the World Wide Web Consortium (W3C), but not recognize the Web Hypertext Application Technology Working Group (WHATWG). As a developer this fills me with hope (the new features of HTML5) and dread (Microsoft’s definition of “support” and “standards”). HTML5 will be offering several new tags to add features that currently have to be done via third party mechanisms and should really enhance the web experience for end users. Microsoft’s implementations of standards in the past has been less then thrilling however (IE6 anyone). In fact I just encountered a “bug” with a standards issue in IE 8, that has been around since IE 6.
For several days, I had been working on an update for a website that required the use of cascading drop down boxes using AJAX. The goal was for the values of a drop down box to be populated from a database, based on a previous value selected by an end user. All seemed to going well, until I tested my code in IE8. In my other browsers (Firefox, Chrome and Safari), my AJAX code worked fine, however it would not work in IE8. When my code was executed, an extra “option” tag was being pre-pended to the HTML string, thereby blowing up the HTML in the select boxes. My code was using the “innerhtml” attribute of the Document Object Model (DOM) to do the update to the select box, however Microsoft’s implementation of the DOM standard has had issues with the “innerhtml” attribute since version 6 and has not addressed it. After finding this out, I had to rip out my code and rewrite it using JQuery. This lack of addressing bugs with existing standards, makes me very wary of Microsoft’s support of “New” standards. This trepidation is further exacerbated because HTML5 makes extensive use of the DOM.
Microsoft and my son’s pronouncements that day give me hope for a less messy future, but both still make me fear the cleanup. The worst thing to happen would be if Microsoft causes a fracture in the standards and developers have to continue to browser specific code.