Mark,

I have been bitten badly by the fact that globals persist until LC is quit. 
Actually, my injury was in the days of HyperCard, which is responsible for this 
behavior! Two stacks written by the same author which needed to run on the same 
machine - the author had habits for naming variables, including globals. There 
were so many name collisions that I gave up and rewrote the whole mess in LC 
(which was a good thing anyway). Telling the user to QUIT HyperCard before 
going to the other function didn't work out so well. Thats my falldown story.

I have forgotten to declare globals many many times, and thats too bad for me. 
Now I turn on explicit variables for any new projects. Its a bit more work up 
front, but you find those oh-so-frequent errors and typos right away. And, I 
find I basically never need or want globals. Like Scott said, custom properties 
usually are a better idea, if a bit more verbose (which is not a bad thing). 

What language is there that will let you share variable values between 
"programs"? Controlling the scope of variable names is increasingly important 
as projects grow, and HyperCard's only mechanism, globals, wasn't enough.

At some point you have to realize that this is the way this works. Changing it 
now would break uncountable programs. LC has given us ways to end the 
confusion. If its just the semantics of the word "global", just say NO and quit 
using it!

Onward,
Jerry "meatball doesn't work that way" Jensen


On Jul 6, 2011, at 10:18 PM, Scott Rossi wrote:

> Hi Mark:
> 
> If I understand what you're looking for, there are other ways to get what
> you want if you don't want to declare a global: you could use a custom
> property or a function.
> 
>  the specialGlobalValue of this stack
>  specialGlobalValue()
> 
> I disagree with your assessment of declaring globals as a "falldown" issue.
> In fact, I would say it's the reverse.  When coming back to code after a
> hiatus of development, or when looking at someone else's code, the fact that
> the global is declared as such can clarify where its value originates from
> (to my mind anyway).
> 
> Regards,
> 
> Scott Rossi
> Creative Director
> Tactile Media, UX Design
> 
> 
> 
> Recently, Mark Stuart wrote:
> 
>> Again, my point exactly.
>> You HAVE to declare the global again, and again where needed.
>> 
>> I'd rather it once declared and a value put into it, the value be available
>> elsewhere WITHOUT having to declare it again.
>> It just sets up the developer for an easy "falldown". The time it takes,
>> especially for a different developer in the same application or coming back
>> some time later, to find the declared global name.
>> 
>> Which brings up a whole new issue of intelli-sense or type-ahead
>> variable-name-while-typing-a-script convention.
>> But I won't go there at this time.
> 
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to