View · Search · Index
No registered users in community xowiki
in last 10 minutes

XOTcl/NX mailing list by object move?

From: Kristoffer Lawson <setok_at_fishpool.com>
Date: Mon, 20 Mar 2006 21:29:57 +0200

On 20 Mar 2006, at 18:13, Koen Danckaert wrote:

>>>> I have added "::xotcl::mymethod" and "::xotcl::myvar" to my
>>>> development version. i guess, you would you prefer to have
>>>> these exported. Opinions?
>>>
>>> On giving it some thought I think I actually prefer the version
>>> that would be part of Object. After all, it is that object's
>>> variable that we want.
>
> Well, in any case we're not adding new functionality here, we're
> just adding convenience procedures to write callbacks in a more
> concise and readable way. I believe this is best achieved by having
> 2 short and concise keywords. In my code, "myproc foo" (vs "my
> foo") indicates clearly that I'm not actually calling foo, just
> referring to it. This distinction would be less clear with "my
> callback foo".

I still think the original proposal does not actually describe what
is going on. "My proc? What my proc? This is a proc, what's the
matter with it?". Besides, splitting the functionality into a method
means we can use it on other objects than our[selves].

This is more than just shorthand. It's also about hiding the details
of method and variable implementation. It just feels cleaner to get a
real variable reference through some procedural call, instead of
building it up yourself based on namespace assumptions.

> So indeed, if these keywords would be predefined in xotcl, I would
> prefer to have them exported, otherwise they'd not be short and
> concise either :-)

Yes, if the solution ends up being based on top-level commands, then
exporting them sounds reasonable.

>>> I don't use it that frequently so I don't mind writing a bit
>>> extra, for clarity's sake.
>
> I use it quite often. It's a very common construct in Tk and event-
> based scripts, I think. I've even customized my editor to highlight
> "myproc" and "myvar", such that they spring out immediately.

It's only really necessary for variables which are linked to other
systems as for callbacks you can generally do f.ex.:

after 100 [list [self] doStuff]

which is what I actually do. I mean, presumably the problem with
using a method by its direct namespace is also that filters get
avoided, or? (at least I think it was that way at some point in
XOTcl's history). That, to me, would mean it's not a good method
except for very specific cases.

            / http://www.fishpool.com/~setok/