What's wrong with Globals?

Joe Lewis Wilkins pepetoo at Cox.Net
Mon Apr 2 18:27:28 EDT 2007


Graham and everyone else who is interested or should be,

Since I started this thread with what I thought was a fairly naive  
question with a pretty obvious conclusion, perhaps I should summarize  
the input - if that is possible, what with some of the quite lengthy  
monologues.

I believe that Richard and Jim have made the most poignant arguments  
both for and against the use of globals; and I was leaning very  
sharply in the CP direction until Graham made a very good point: CPs  
do tend to involve writing a lot more code, and I have to learn  
something that I've not used before; hence probably subject to some  
errors in usage on my part - typos and otherwise.

So I intend to learn the CP approach down the road a bit, but  
continue in the meanwhile with my use of Globals as I have in the  
past. The code for CPs IS pretty "elaborate" and not totally  
intuitive; at least to me. I can definitely see some advantages to  
the CP approach, but maybe I'm too far gone to change at this point  
in my life. Hey! I wouldn't even be using RR at all were it not for  
Apple's failure to support HC on OSX. I used HC last night to make a  
material list that I needed to parse and get to the manufacturer this  
morning. It didn't need to be cross platform or even in color, so...  
Of course I did it on my 9.2 Mac; something I'll probably keep around  
for many years to come, though I'd love to get a new one on which I  
can run 9.2. It was a great OS!

Thanks to everyone for their opinions and perspectives. I think  we  
all learned a lot.

Joe Wilkins

On Apr 2, 2007, at 2:53 PM, Graham Samuel wrote:

> Forgive me if this conversation has ended, but my internet  
> connection has been in meltdown... just got back on line.
>
> I most frequently use globals because there aren't global  
> constants. I use them very largely for strings containing stuff  
> like error messages or even very simple strings like "OK", so that  
> I can refer to these indirectly in scripts, thus allowing me to  
> switch (human) languages by redefining the globals in just one  
> script of the program. I guess I could have used custom property  
> sets with exactly the same effect, and with the advantage that I  
> wouldn't have to initialise them during the startup of my app, but  
> like many others I didn't understand these when I started, and I  
> tend to re-use stuff I wrote before. I guess there isn't much  
> difference between writing
>
>   answer gcOK  -- 'gcOK' is a global with a string in it.
>
>        and
>
>   answer (the gcOK of stack "allTheConstantStrings") -- 'the gcOK'  
> is a property of some object.
>
> but the second statement seems to have more characters in it, since  
> it involves referring to the object in which the property is  
> stored. If there are a lot of such references, my scripts are going  
> to get longer.
>
> I also use globals when I have a quantity which needs to be used in  
> different scripts in different stacks, i.e globally: a very obvious  
> point, but I really don't see what is wrong with that. I do accept  
> that I have to be disciplined about changing their values. I do use  
> properties (I tend to use these for global status stuff like 'the  
> soundOn of this stack'), parameter-passing and message-passing  
> extensively, but to me globals feel right for quite a lot of things.
>
> I shall now wait for someone to tell me why this is a really wrong- 
> headed approach. I'm always willing to learn - really.
>
> Graham
>
>
> ----------------------------------------
> Graham Samuel / The Living Fossil Co. / UK and France
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list