global problems

Ken Norris pixelbird at interisland.net
Mon Aug 1 20:47:01 EDT 2005


Hi Mark,

> Date: Mon, 1 Aug 2005 11:00:47 -0700
> From: Mark Wieder <mwieder at ahsoftware.net>
> Subject: Re: global problems

Just a little note from"the other" Ken (or one of them) --

> Hmmm... "delete global"... you're right - I use globals so
> infrequently that it wouldn't have occurred to me that I would have to
> delete something that didn't exist. That's pretty screwy, IMO. I don't
> think there's anything else in xtalk that acts that way.

There is a reason.

> Constants
> certainly don't.

Well, why would they? They're opposite things to variables.

> If the compiler enforced reference counting when
> compiling that would take care of this.

Not a good idea _if_ you want to retain the variable across your 
projects during runtime.
>
> Yet another reason to avoid the Dreaded Global.

Globals are for what they say they are. A global declared during 
runtime _should_ be available in any open stack. Why would you want  to 
get rid of it, i.e., that's what they're for. Unless you want to do a 
one-time setup to initialize multiple stacks, then destroy it. Of 
course you could do the same thing with custom props, but it would be 
more awkward.

I think all you have to do is be aware of what they are. The only 
'Dreaded' thing I can see is that they are often misused/overused, 
i.e., the wrong tool. Like using an adjustable wrench when you _should_ 
use the correct size box wrench.

IOW, it's a better idea to pass sensitive data in message or function 
params, or perhaps custom props, than globals, when possible, then use 
them locally at will. Nothing else gets affected.

But if you wanted to set up a _system_ using multiple stacks all 
sharing same data, whether open or closed, then a global may well 
become your good and faithful friend.

All the best,
Ken N.




More information about the use-livecode mailing list