Proposed change to typeof

Maciej Stachowiak mjs at apple.com
Wed Nov 5 19:14:17 PST 2008


On Nov 5, 2008, at 5:40 PM, David-Sarah Hopwood wrote:

> Brendan Eich wrote:
>> On Nov 5, 2008, at 1:42 PM, David-Sarah Hopwood wrote:
>>
>>> Of course not. In this case we were talking about a case in which IE
>>> and Opera do not implement an extension, and follow the existing  
>>> standard
>>> more closely in their implementations of 'typeof'.
>>
>> Yes, I know, but the particular case involving an extension in two
>> browsers out of four does not prove the lack of web-breaking.
>
> Why not? If a particular site already breaks on IE and Opera, why  
> should
> we be overly concerned if it also breaks on a future version of  
> Firefox?

Sites often code dual code paths, IE and non-IE. Often the non-IE path  
is tested only in Firefox, or if we are lucky, in Safari too. Thus, it  
is entirely plausible for an extension that is in Safari and Firefox  
but not IE or Opera to actually matter for Web compatibility. In the  
case of this particular extension, that seems relatively unlikely, but  
I wouldn't bet my market share on it without doing significant testing.

More generally, it is impossible to have good judgment about what kind  
of changes could be Web-breaking without having significant long-term  
exposure to the bug database of a major browser engine. Since there  
are two that are open source with public bug databases, anyone who is  
willing and able to invest the time can gain such experience. Likely  
what you would learn is that almost anything a Web developer *could*  
do, no matter how seemingly stupid, is inevitably done by some site  
somewhere.

> When developers write JS that isn't portable between browsers  
> because it
> ignores standards, there's no reason why they should have any  
> confidence
> that it will be portable to future versions of the same browser,  
> either.

When sites break, users blame the browser, even if it is in some  
abstract sense the site's fault. Typically users react not by  
complaining to the site for using unportable code, but by complaining  
to the browser vendor or switching browsers. This is even more the  
case when a site that worked in an earlier version of the browser  
fails in a later version.

Like it or not, these are the dynamics of the browser market.

ES3.1 is premised on accepting these dynamics, being originally  
conceived as "ES3 + reality".

Regards,
Maciej



More information about the Es-discuss mailing list