>> On 12/9/11 9:23 AM, Henri Sivonen wrote:
>>>
>>> However, while WebKit has introduced numerous prefixed CSS features,
>>> Mozilla has been introducing prefixed APIs.
>>
>>
>> I believe for every single API we've prefixed and then unprefixed so far we
>> have in fact ended up making incompatible changes to it before unprefixing.
>
> Doesn't that mean that in practice, we have been willing to make
> incompatible changes to APIs that we've shipped?
>
> Why would the willingness to make incompatible changes to APIs be
> different if prefixes were absent? One possible answer is that the
> prefix signals to Web authors that they are using a subject-to-change
> API.
Indeed, this is exactly the theory.
> However, the way authors use WebKit's prefixed CSS suggests that
> authors (by and large) don't really know or care about such
> distinctions and use whatever works at the time they are writing code.
Indeed, it's not a perfect theory.
I suspect that in part this is due to the fact that it hasn't been
clearly communicated that they might change in the future. I.e. you'll
often see blog posts like "webkit now supports feature X, here's the
syntax that you should use" rather than "We've introduce this
experimental feature, here's the syntax that works right now, but be
aware that it might change in the future."
Another problem is that have remained "stable" for a long time with no
clear direction for them getting standardized an unprefixed. I.e.
standardization has been slow and not tracked by the prefixed
implementation.
> Also, from the user point of view, site breakage is site breakage
> regardless of reason. That is, the people who end up suffering from
> breakage aren't the people who are supposed to be aware of the risk,
> so arguments about authors knowing what they are getting into don't
> seem particularly convincing.
I don't think this is true. I think setting expectations is really
important. Whenever we make breaking changes there are people that
step up and say that we broke them. In the cases when we can point to
that we're doing the change in order to align with the spec this has
more often than not made people accept the change and go update their
website.
I think setting expectations is a huge part of this. First off, if
people know that we're not just willy-nilly changing things on a whim,
but rather after careful consideration, then there is a bigger
understanding. Also, if they see that we are making the change to
align with the spec, that means that it's unlikely that we'll change
it again and so it's worth their time investment to fix up the code
now. I.e. they don't have to worry about it changing back or changing
again 5 days later.
Another reason that I think people are more ok with changes that align
us with the spec is that everyone sees and understands the value of
having consistently implemented specs.
To put it another way: No, I don't think "site breakage is site
breakage regardless of reason" is an accurate statement for how
developers feel. Making the investment to update a site is much easier
if you know that you'll get return on that investment in the form of
code that will work better going forward, and code that will work
across more browsers.
On a related note, this is why I don't think that the statement "the
spec doesn't matter, implementations is the only thing that matters"
is accurate.
/ Jonas