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 <stephane.ducasse@inria.fr>wrote:
On Oct 31, 2013, at 11:37 PM, Igor Stasenko <siguctua@gmail.com> 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"