MOO-cows Mailing List Archive
[Prev][Next][Index][Thread]
Re: wish lists
On Tue, 23 Jul 1996 dg@dcs.st-and.ac.uk wrote:
> a) allowing verbs to be called with the . operator instead of : operator,
> i.e. object.verb(args)
I don't think this will simplify MOO coding, and besides, everyone's
using : now so what's wrong with it that means we should learn a new
syntax?
>
> b) a mechanism for encapsulating property references.
>
> What I mean by (b) is probably easier to explain by example. In IdealMOO(tm),
> there is the following piece of code:
>
> ...
> d.number = 5;
> ...
[equates to]
> d:_set_number():
> object.number = arg[1];
> object.description = tostr("A display panel with a ",
> object.number, " on the front.");
> return;
>
> Likewise, reading d.number would instead return the result of d:_get_number(),
> which wouldn't be defined in this case.
>
> *I* think this would be extremely useful and reduce the amount and complexity
> of code considerably, particularly integrated with (a). It would avoid the
> extremely nasty o.description and o:description() `feature', for a start.
It most definately will not simplify code. When I type ;player.prop =
"foobar", I am guaranteed that the MOO will simply set my property "prop"
to "foobar". Unless I do not have write access to a "prop" property on
myself, this will not traceback. Ofcourse, if a set_property builtin
function were used for the raw property setting (and get_property bf for
property getting), you could be guaranteed that way of actually setting
the prop, unless ofcourse someone made a bf wrapper, in which case you're
screwed if that bf wrapper traces back, and you'd then have to .program
it to return pass(@args); and lose any code that was in it. And, if you
then program into the server non-overridable verbs and everyone remembers
to define a _get_blab and _set_blab verb as nonoverridable with each
'sensitive' property, you could keep security issues with player class
programmers at bay... but the question is, WHY? The () aren't even using
up any quota, since only the compiled verb is stored in memory. Why
complicate things?
Phantom [who is in an argument with the programmer of one of the largest
player classes on BayMOO about just why player:description should not do
any player:tell()s, and would hate to see what would happen if wrappers
for every property were created...]
References:
Home |
Subject Index |
Thread Index