“HTML5 Audio APIs - How Low can we Go?” (by Mark Boas for The Worm Hole) explains that there are currently two competing web APIs for audio. One is supported by Firefox, the other by Chrome and Safari. The former takes a low-level approach, the latter is higher-level.
The author argues that Webkit should also adopt this approach and that it makes even sense for browser APIs in general:
- Browser vendors: create low-level APIs that serve as a stable and universal foundation for libraries.
- Library programmers: can experiment and come up with things that can’t be foreseen during the creation of a browser API.
The Component Model is such a low-level API, for extending the DOM:
The Component Model introduces comprehensive support for creating DOM elements. Examples include layout managers, combinations of Dojo and jQuery widgets, isolated widgets, such as Like/+1 buttons, and built-in HTML elements themselves.