- From: Boris Zbarsky <bzbarsky@mit.edu>
- Date: Wed, 17 Jun 2015 11:11:07 -0400
- To: Garrett Smith <dhtmlkitchen@gmail.com>
- CC: public-script-coord@w3.org
On 6/17/15 10:48 AM, Garrett Smith wrote:
> With an attitude like that, how likely are web programmers to read it
> and give feedback on it?
For this part it doesn't matter much, because it's a legacy feature that
doesn't particularly require feedback.
> That's a sub sub point to the bigger point. And if that subpoint is
> corret, then the spec/draft should say that. Does it?
Yes.
> No, looks like it says that OBJECTs have a legacycaller property whose name or type
> is `any`.
Well, then the question is what "have a legacycaller" means, no? And
what it means is defined at
<http://heycam.github.io/webidl/#idl-legacy-callers>,
> The bigger point is "What's arraylike and has a contains method on the
> web"?
No, the question at hand is "what's arraylike, might get replaced by an
Array subclass, and has a contains method on the web?" That's not the
same as your version at all.
> I read: "We tried to add contains to Array.prototype for ES7 but it turns out
> to break the web."
Sure.
> Ducktyping and feature testing is relevant in JavaScript. Feature
> tests for contains might be along the lines of:—
>
> if(typeof x.contains == "function") {
That hasn't been an issue.
> Mootools also adds a `contains` method.
Yes, I'm well aware. That's what broke adding Array.prototype.contains
in ES7.
> The HTML5 spec saying OBJECT *has* a `legacycaller` property is
> confusing. It doesn't clearly say that the OBJECT element *is*
> callable.
It says that there is a legacycaller; the behavior is then defined by
the IDL spec. Just like it says that there is a "attribute DOMString
data" but what that actually means (a property named "data" with a
getter and a setter) is defined by the IDL spec.
This is a legacy and deprecated feature (note the name!) that people
should not be using; it's in the spec because UAs need to implement it
for compat with some old sites. It makes perfect sense to not spend too
much time in the spec talking about it.
> Most web developers don't read specs because the specs are
> confusing.
I agree that this is a problem. The way to solve it is to have web
developer facing documentation... but that documentation is likely to
not mention legacy deprecated features in the first place.
> You have an arrogant attitude about bad documentation for
> bad API design and I don't like it.
This isn't about API _design_. It's just a legacy compat issue. If
your beef here is about the design of this API, you need a time machine
to talk to the folks who initially added plug-in support to Netscape...
You are of course free to not like my attitude, and I am free to
reciprocate. But I think in this case the spec makes the right call in
not spending too much time discussing the intricate details of a
deprecated feature.
-Boris
Received on Wednesday, 17 June 2015 15:11:39 UTC