I agree. I do not see why we make the situation so complicated.
Extending a class with state is the same conceptually as is extending it with methods. The same type of problems apply. We can extend a class with methods, and we know it is powerful. Yes, you can have problems with overrides sometimes, but in practice, method extensions collision occurs rarely now. With a little discipline, you can get things to work quite nicely. And again, it is the responsibility of the extender to manage the extensions. Doru On Fri, Nov 1, 2013 at 4:36 AM, Stéphane Ducasse <[email protected]>wrote: > > On Oct 31, 2013, at 11:37 PM, Igor Stasenko <[email protected]> wrote: > > > > > Btw, if you remember, i already proposed how to solve 'extending > object's state with arbitrary state' , mainly by changing the object format > to support variable number of key-value properties per object. > > Similar to javascript or self, where you can define a new property on a > per-object basis. > > This is fairly easy to implement, at VM level, just reserve extra field > in object format, > > define the format of key/value dictionary and add primitives to retrieve > and store key-based properties for objects. > > What i like in it, that at language side it is cost nothing: you don't > have to extend > > the language to formally define the slots (but you may, of course), > > and there's nothing preventing you from using private keys and not > giving them away > > to anyone to keep your data private and not exposing it globally (except > from reflection tools i guess). > > And, what is important, you are free to use them or not.. and it costs > almost nothing in terms of performance, and nothing in terms of formalism > and extra rules in language/package/source management etc etc > > you do not need to be at the object level. For me this would be another > level of mess. > > When you think about class extensions we get them because methods are not > in the scope of the their class > so it was easy to define a method into a file that represented another > changeset. > Now we have problem with iv extensions because they are scoped by the > class definition. > > Stef > > > > -- > > Best regards, > > Igor Stasenko. > > > > > -- www.tudorgirba.com "Every thing has its own flow"
