- From: cowwoc <cowwoc@bbs.darktech.org>
- Date: Sun, 15 Dec 2013 22:23:36 -0500
- To: Jan-Ivar Bruaroey <jib@mozilla.com>, Martin Thomson <martin.thomson@gmail.com>
- CC: "public-media-capture@w3.org" <public-media-capture@w3.org>
On 14/12/2013 2:29 PM, Jan-Ivar Bruaroey wrote:
> On 12/14/13 12:21 PM, Jan-Ivar Bruaroey wrote:
>> The order is preferred order as you expressed it.
>
> That said, you can probably change the order without consequence in
> this case since sets are likely one aspect or the other, not both.
>
> I.e. this is the same (also assuming we'll reasonably
> approximate-compare aspects, which I suggest we mention in the spec btw):
>
> [
> {aspect:1.33, width: 1200, height: 900 },
> {aspect:1.33, width: { min: 800, max: 1600 }, height: { min: 600,
> max: 1200 } },
> {aspect:1.77, width: 1600, height: 900 },
> {aspect:1.77, width: { min: 1280, max: 1920 }, height: { min: 720,
> max: 1080 } }
> ]
Not DRY, but yes I find it more readable.
I still lean very heavily against the use of a declarative syntax, but I
don't have any concrete counter-examples to provide at this time. I
think a declarative syntax is like XML: great for computer consumption,
terrible for human beings. Every time I've had the displeasure of
dealing with a declarative syntax (e.g. Apache Maven, SQL, etc) it meant
giving up control of evaluation order. Initially that didn't seem like a
big deal, but after using the library for a few months I routinely kept
on running into problems related to evaluation order. It is a pain in
the ass.
A Javascript API will always be more flexible than a declarative syntax,
and we can provide a DSL to make its use less verbose. I think it's
always preferable to stack a simplified API on top of a more flexible
low-level API (and expose both to the user). If you start with a
simplified API at the bottom, you are stuck with its limitations/quirks
forever. What seems like a reasonable limitation today may turn out to
be a curse tomorrow.
Just my 2 cents.
Gili
Received on Monday, 16 December 2013 03:24:33 UTC