[Laszlo-dev] [Laszlo-user] Do datasets really have to be in 3 places at once?
P T Withington
ptw at openlaszlo.org
Tue Apr 4 22:27:54 EDT 2006
On 2006-04-04 21:49 EDT, Jim Grandy wrote:
>
> On Apr 4, 2006, at 1:36 PM, P T Withington wrote:
>
>> On 2006-04-04 16:14 EDT, Oliver Steele wrote:
>>>
>>> OpenLaszlo should adopt the $(name) function that Prototype.js
>>> introduced and that is becoming popular is other DHTML frameworks
>>> such as JQuery. (There's an implementation of this function in
>>> sandbox/domapi.js.)
>>
>> $ is a shorthand for looking up names in another namespace, right?
>> Did you see my proposal to add (Dylan-like) modules to LZX? I think
>> this could achieve the same benefit (short names without having to
>> pollute the global namespace), without the overhead of a function
>> call on your references.
>
> How about adopting the $ syntax as a shorthand for referencing a
> particular module?
Not sure what you mean here.
In Dylan, when you import from another module, you can specify a
prefix to avoid collisions with any of your own names. The
convention is to have the prefix end with $. So for instance, if you
wanted to use all of the lz module but have distinct names, you might
import with 'lz$' as a prefix, so the name 'foo' in lz would be lz
$foo in your module. You don't have to have a prefix, and you can
make the prefix as short as you want, so you could use '$' as a
prefix. This is what I plan for LZX.
It's not a good idea to have a general loophole that allows you to
(dynamically) access names in other modules (as the $() function kind
of does), because that leads to fragility and limits the compiler's
optimization opportunities. This is a problem with C++ namespaces --
in C++ only the linker knows when a class will not be further sub-
classed.
More information about the Laszlo-dev
mailing list