In my previous post The problem with being second, it seems like there was a lot of confusion. I’m going to attempt to clarify some of that. The heart of that post was meant to point out that people/developers don’t always how close or far they are from a spec, until somebody else tries to implement the spec and they compare the two implementations.
#1 Although I was referring to the ECMA and all that it allowed as far as runtime/JIT optimizations, that’s not exactly the same as what Microsoft will ship. As many of you pointed out, it would break way to much of existing code. I would personally argue that it was already broken and you just didn’t know it yet, but that’s an argument not worth having. Microsoft really does value backwards compatibility and thus we won’t ship until we’ve figured out a way to not break customers (think about how many windows APIs maintain backwards compatibility so that old programs that relied on bugs still work, this will be just another example).
#2 A few people my have interpreted my statements about testers as somehow negative. It was not meant that way. This is my public apology to all testers. I was using testers as an example because they’re our ‘first’ customers. They see our code and its results before anybody else. In general I think testers on compilers, JITs, and runtimes are very smart and technically adept to be able to understand, test and break this stuff. I can’t speak for all teams, but the ones I’ve had experience with, the testers are a vital part of the development cycle, and I enjoy a good 2 way relationship with them, where they are my peers.
[corrected some mis-spellings]