World: r3wp
[!REBOL3-OLD1]
older newer | first last |
Geomol 2-Apr-2009 [12435x2] | But if you think in lines of classes, private/public content etc., then I don't think so. |
Maxim, no no, you can just also do it with objects. | |
Steeve 2-Apr-2009 [12437] | private/public ??? who need that |
Maxim 2-Apr-2009 [12438x2] | phew! |
steeve are you being ironic? | |
Geomol 2-Apr-2009 [12440] | There are ways to make private data with object in R2 aswell, using BIND, if I remember. |
Maxim 2-Apr-2009 [12441] | yes you can bind code to two different objects, its quite easy in fact. |
Steeve 2-Apr-2009 [12442] | but you can't bind properties of one object into another one |
Maxim 2-Apr-2009 [12443] | define properties |
Steeve 2-Apr-2009 [12444] | no inheritance either |
Maxim 2-Apr-2009 [12445] | you can have a function in one object which executes code from anothe object using its own values. |
Steeve 2-Apr-2009 [12446] | attributes/vars of objects |
Geomol 2-Apr-2009 [12447] | What I meant is: o: context [ a++: show-a: none use [a] [ a: 0 a++: does [a: a + 1] show-a: does [a] ] ] Whis way a is hidden, and you have two methods, one to add 1 to a, and one to show a. |
Steeve 2-Apr-2009 [12448] | I prefer that context [ a: 0 set 'o context [ a++: does [a: a +1] show-a: does [a] ] ] |
Geomol 2-Apr-2009 [12449] | Nice one! |
Steeve 2-Apr-2009 [12450] | i use it all the time |
Geomol 2-Apr-2009 [12451x2] | And I use that a lot myself too. |
Almost all my programs start with: REBOL [ ...] context [ ... | |
Steeve 2-Apr-2009 [12453] | so, we don't need that private/public stuff |
BrianH 2-Apr-2009 [12454x2] | It is planned to get access controls for object! fields, but we don't know how yet (haven't decided). |
REBOL 3 already has module encapsulation (as of last week). | |
Oldes 2-Apr-2009 [12456] | Also in modules.. once there will be basic functionality (if I understood well) |
Geomol 2-Apr-2009 [12457] | We also have multiple inheritance (kind of): >> o1: context [a: 1] >> o2: context [b: 2] >> o3: make make o1 o2 [c: 3] >> o3/a == 1 >> o3/b == 2 >> o3/c == 3 I can't remember, what else is in OO theory. But don't we have most? |
Steeve 2-Apr-2009 [12458] | its not dynamic inheritance |
BrianH 2-Apr-2009 [12459] | It's not. We do dynamic inheritance manually in REBOL. Our objects are object-oriented in a different way than class-based langs. |
Maxim 2-Apr-2009 [12460x3] | but having classes is MUCH faster. I mean exponentially. as in liquid we are talking about 100 times on large datasets. |
and with huge datasets it becomes wholly impossible to work with rebol's object system. | |
accessors would allow us to build ANY OOP theory within. | |
BrianH 2-Apr-2009 [12463] | You optimize your code differently for prototype-based object-oriented languages than you do with class-based. |
Maxim 2-Apr-2009 [12464x4] | even hiding liquid's dataflow engine to make it completely invisible :-) |
you can't optimise the fact that rebol's static binding has to be. this is both slow and memory intensive. | |
using classes in liquid I was able to go over 1 million nodes in a decent time frame, under 400MB. using prototypes, I wasn't even able to allocate 100000 nodes. | |
and at 10000 nodes, IIRC it already takes like 10 minutes. | |
BrianH 2-Apr-2009 [12468] | Accessors are one proposal for the upcoming object revamp. Class-based is unlikely, since we can emulate classes just as fast as any other non-compiled language. |
Maxim 2-Apr-2009 [12469] | 10000 (concurrent) nodes in current liquid takes a few seconds to allocate :-) |
BrianH 2-Apr-2009 [12470] | You don't have the R3 tricks. |
Maxim 2-Apr-2009 [12471x2] | then the liquid classes will be Even faster in R3? ;-D |
if they didn't crash it outright :-( | |
BrianH 2-Apr-2009 [12473] | Of course, but only if you get involved in the development discussion when we do the object revamp :) |
Maxim 2-Apr-2009 [12474] | is there a target on when that will happen? |
BrianH 2-Apr-2009 [12475] | No, we are working on modualrizing and codecs right now. I'll keep you in the loop :) |
Maxim 2-Apr-2009 [12476x3] | if someones give me a ping when the discussions will start, I'll be most happy to add my 2 cents. I hate OOP, but I love to use objects. |
and I think liquid is a great test bed of one of the most advanced object usage in R2 to date. | |
one of its strengths, is the fact that I can switch classes on the fly :-) | |
BrianH 2-Apr-2009 [12479] | I want accessors for other reasons (interoperability with other object systems). |
Maxim 2-Apr-2009 [12480] | I want accessors to provide virtualised internals. |
BrianH 2-Apr-2009 [12481] | The R3 GUI is class-based with dynamic inheritance (and switchable classes), so you can be sure that we will make that fast. |
Maxim 2-Apr-2009 [12482] | cool. |
BrianH 2-Apr-2009 [12483] | And modules use object! contexts, so we will be adding access controls to objects so modules can use them :) |
Maxim 2-Apr-2009 [12484] | that is cool :-) |
older newer | first last |