IE 8: How to Target a Moving Web Standard - Page 2

Download the authoritative guide: How to Develop an IT Security Strategy

Leithead said another feature from the ECMAScript 3.1 draft that quickly came to his attention was support for getters and setters. A getter is a method that gets the value of a specific property, while a setter is a method that sets the value of a specific property.

Leithead noted that prior to 3.1, ECMAScript did not include the concept of getter/setter properties, but some JavaScript implementations did support them using an API that is mutually supported by several other major browsers and programming environments. And when Microsoft began working on DOM (Document Object Model) prototype support, the company chose to implement that de facto getter/setter API.

However, "ECMAScript 3.1 made an early decision to include getter/setter properties but by using a more flexible API rather than the de facto API," Leithead said. "This decision was made with the concurrence of all the major browser vendors, including those who currently support the de facto getter/setter API. With ECMAScript 3.1 in full swing and other browser vendors bought in, we now had an important decision to make: Do we respond to this unexpected change and pursue implementing the ECMAScript 3.1 getter/setter API for the DOM, or do we ship what we have and tackle the ECMAScript 3.1 API in a future release?

"The answer really came down to what was best for the Web developer; they need interoperability, and by ensuring that we support getters/setters as outlined in ECMAScript 3.1, we help deliver that interoperability in the long term."

Click here to read more about developing and debugging in IE 8.

Yet, being at that time just weeks away from shipping Beta 2 of IE 8, which shipped in August 2008, Leithead said Microsoft felt it was important to release the existing implementation with the de facto getter/setters rather than cut the feature from the beta release.

And because the company wanted to take a "standards first" approach, "I'm now pleased to announce that with the upcoming Release Candidate of Internet Explorer 8, we not only have a high-quality DOM prototypes implementation, but we've been able to change the getter/setter implementation to follow the draft ECMAScript 3.1 standard," Leithead said.

Meanwhile, back to the issue of dealing with a standard in flux while finishing development of a product based on that evolving standard, Leithead summed up the IE 8 team's experience thus far:

"Returning to the topic of responding to change, what may initially appear as the best design for the Web may change over the course of a product's development. The experience I had with DOM getters/setters in Internet Explorer 8 has personally confirmed this. As we finish IE 8 and on into the future, we'll continue to gather the right data, listen to customer feedback and make product changes where appropriate. I know our team cares a lot about Web standards and supporting them as a way to achieve interoperability-which ultimately helps Web developers to be more productive; embracing ECMAScript 3.1 is one more step to help get there sooner."

How do you think Microsoft is doing in developing IE 8 while helping to shape the ECMAScript standard?