World: r3wp
[!REBOL3-OLD1]
older newer | first last |
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 [12484x4] | that is cool :-) |
contextualise module methods based on state :-) | |
btw, I'm really sorry if I'm not participating in the R3 GUI effort... I'm just elsewhere in the GUI world... what you guys are doing, I've done so many times, on too many platforms, for it to be still *fun*. a lot of people don't get that I use (and occasionally abuse) rebol for my own long-term goals. its just the fastest prototyper out there. Now that GLASS has officially started, the (eventual) end goals for it are sort of beyond current desktop/window/button/menu concepts of GUI, even if that is what I am starting with, cause I need the bricks before building the wall. | |
but when R3 gets a bit more stable, most of the work done in R2 will go over R3. I'll only have to recode one or two core libs for all the rest to function. | |
BrianH 2-Apr-2009 [12488] | Keep in mind that I am not really participating in the R3 GUI effort right now either - I've been working at a lower level. I write LOAD :) |
Pekr 2-Apr-2009 [12489] | Maxim - you have strange aproach. On one hand, you claim you did GUI and object stuff so many times it is no more fun for you, but on the other hand you complain, that R3 does not allow OOP functionality x or y? |
older newer | first last |