On Wed, Nov 7, 2012 at 7:24 PM, Joe Drew <j...@mozilla.com> wrote:
> On 2012-11-06 8:31 AM, Henri Sivonen wrote:
>>
>> Therefore, I propose that we adopt the following policy:
>>   1) APIs that are not ready for use by Web developers shall not be
>> shipped on the release channel (unless preffed off).
>>   2) APIs that are shipped on the release channel shall be shipped
>> without a prefix.
>
> I am broadly in support of this, but I have a specific concern: Firefox OS
> will (or could) require experimental APIs that aren't fully baked simply
> because of time constraints. I don't think we should hamstring the features
> possible in FxOS to simply stabilize an API.

That's why I didn't use the formulation "experimental" but said "ready
for use". If it is important to get a particular API into Firefox OS,
surely the reason to get it in is to *enable its use*. And if it is
indeed important that it's available for use sooner than later, then
content will become dependent on it sooner than later.

We can't have it both ways: Both ship for immediate use and expect to
be able to make big changes without causing breakage.

If immediate use is deemed important, I think we should commit to the
API design that gets the use. (If we guess the demand wrong and almost
no one uses the API, then we would still get to change it because
changing wouldn't cause too much breakage.) I expect the early
adopters that now buy into our platform evangelism and use Firefox OS
features would be pretty unhappy if we broke their apps later. I also
expect Firefox OS end-users would become unhappy if we broke their
apps later. When third parties are depending on an API, whether on the
Web or in the Marketplace, breaking changes cause the same kind of
developer and end user experience of breakage regardless of whether
the API had a funny name. That is, breakage is breakage when third
parties depend on API regardless of how much we declare something
"experimental".

On the other hand, if a non-fully-baked API is needed only for Gaia
code that Mozilla itself ships and access to the API is blocked from
the general Web or even from Marketplace apps, surely it doesn't
matter for Web-facing breakage if the API is prefixed or not. But
having unprefixed even in the Gaia-only case makes it less work to
declare the API baked later.

I intentionally formulated the policy proposed in such a way that it
doesn't hinder shipping whatever is necessary in Firefox OS, but I
think we shouldn't pretend that a prefix makes it more okay to break
stuff that got shipped in Firefox OS.

-- 
Henri Sivonen
hsivo...@iki.fi
http://hsivonen.iki.fi/
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to