> On Apr 30, 2015, at 2:44 PM, Ryosuke Niwa <rn...@apple.com> wrote:
> 
> 
>> On Apr 30, 2015, at 2:29 PM, Brian Kardell <bkard...@gmail.com> wrote:
>> 
>> On Thu, Apr 30, 2015 at 2:00 PM, Ryosuke Niwa <rn...@apple.com> wrote:
>>> 
>>>> On Apr 30, 2015, at 4:43 AM, Anne van Kesteren <ann...@annevk.nl> wrote:
>>>> 
>>>> On Tue, Apr 28, 2015 at 7:09 PM, Ryosuke Niwa <rn...@apple.com> wrote:
>>>>> The problem with "<shadow> as function" is that the superclass implicitly 
>>>>> selects nodes based on a CSS selector so unless the nodes a subclass 
>>>>> wants to insert matches exactly what the author of superclass considered, 
>>>>> the subclass won't be able to override it. e.g. if the superclass had an 
>>>>> insertion point with select="input.foo", then it's not possible for a 
>>>>> subclass to then override it with, for example, an input element wrapped 
>>>>> in a span.
>>>> 
>>>> So what if we flipped this as well and came up with an imperative API
>>>> for "<shadow> as a function". I.e. "<shadow> as an actual function"?
>>>> Would that give us agreement?
>>> 
>>> We object on the basis that "<shadow> as a function" is fundamentally 
>>> backwards way of doing the inheritance.  If you have a MyMapView and define 
>>> a subclass MyScrollableMapView to make it scrollable, then 
>>> MyScrollableMapView must be a MyMapView.  It doesn't make any sense for 
>>> MyScrollableMapView, for example, to be a ScrollView that then contains 
>>> MyMapView.  That's has-a relationship which is appropriate for composition.
>> 
>> 
>> Is there really a hard need for inheritance over composition? Won't
>> composition ability + an imperative API that allows you to properly
>> delegate to the stuff you contain be just fine for a v1?
> 
> Per resolutions in F2F last Friday, this is a discussion for v2 since we're 
> definitely not adding multiple generations of shadow DOM in v1.
> 
> However, we should have a sound plan for inheritance in v2 and make sure our 
> imperative API is forward compatible with it. So the goal here is to come up 
> with some plan for inheritance so that we can be confident that our 
> inheritance API is not completely busted.

Sorry, I meant to say our *imperative* API is not completely busted.

- R. Niwa


Reply via email to