- From: Ehsan Akhgari <ehsan.akhgari@gmail.com>
- Date: Fri, 17 May 2013 12:04:44 -0400
- To: "Robert O'Callahan" <robert@ocallahan.org>
- Cc: Frederick Umminger <frederick.umminger@gmail.com>, "public-audio@w3.org" <public-audio@w3.org>
- Message-ID: <CANTur_4DAGd7HdPSYGgKJ0evzT+cQ2VJOJhc4z9oO7OT3rB66A@mail.gmail.com>
On Thu, May 16, 2013 at 7:31 PM, Robert O'Callahan <robert@ocallahan.org>wrote: > On Fri, May 17, 2013 at 11:18 AM, Frederick Umminger < > frederick.umminger@gmail.com> wrote: > >> I don't get this backward compatibility limitation. The WebAudio API is >> not a standard yet. Any developer writing to the API is knowingly writing >> to something not yet standardized. >> > > Unfortunately that's a bad assumption. Many developers writing to the API > have simply been told it's the future and they should use it. > > >> Why is there any duty at all not to break their code? >> > > If person A writes bad code and user B tries it in browsers C and D and it > works in browser C but not D, then B blames D, not A. That, not "duty", is > the incentive for D to ensure A's code works. > > If you don't want your code broken, you act as a responsible developer and >> write to the standardized APIs, not the APIs that are explicitly >> experimental and under development. If you write to an experimental API and >> then complain because your code broke, then you are just a big cry-baby. >> > > Whatever you want to call them, they're still a problem for browser D. > > By accepting this constraint of backwards compatibility, we are >> crippling the WebAudio API by limiting it to whatever was first >> implemented. That is not the way the standards process is supposed to work. >> The implementations are supposed to allow explorations of the proposed APIs >> in real-word scenarios in order to ensure their quality before they become >> solidified into an immutable standard. It seems to me we are doing this >> exactly backwards, and baking in known flaws. >> > > Indeed. > Frederick, I whole-heartedly agree with your concerns, but please note that the usual process of developing web standards will only work if the browser engines implementing the experimental spec do treat that as experimental technology that is subject to change. WebKit doesn't do that, and for all intents and purposes treats webkitAudioContext as a standard feature which should never break backwards compatibility, and unfortunately Blink has adopted the same policy regarding webkitAudioContext. The current Web Audio spec is full of things which are clearly bad ideas (alternate names, numeric enums, AudioBufferSourceNode.gain, using creator methods on AudioContext instead of constructors, etc.), but we cannot break them because of this reason. What we're trying to do is at least keep the API free of footguns such as data race issues, but the way I see things, with the current state of matters, we don't have a good pathway towards fixing most of the API issues in Web Audio. :( -- Ehsan <http://ehsanakhgari.org/>
Received on Friday, 17 May 2013 16:05:52 UTC