John W. Colby
jwcolby at colbyconsulting.com
Wed May 18 09:33:17 CDT 2005
I started my programming experience trying to get an old star trek program to run on an old data general mini with 16kb of ram. It wouldn't load and AI printed it out on a roll of TTY paper and it stretched 12 feet across the floor. In the basic it was written in, functions and subs did not even exist so everything was global and everything was a go to. I sat down and drew connecting lines between the goto line of code and the destination. Until you do something like that you cannot truly appreciate the term "spaghetti code", but a pile of spaghetti is exactly what it looked like. Thus when I moved on to Turbo Pascal where functions existed, and all variables had to be declared before it could be used, and variables were strongly typed and you couldn't accidentally pass a float into an integer, needless to say I was in heaven. All tools exist for a reason. I appreciate good programming practices and I always look for techniques to make my coding style stronger. Tools like strong typing, naming conventions, scope, classes etc are just that, tools and nothing more. You can accept them or reject them. I have had to clean up behind people who reject them and it isn't fun. To go back in and retrofit a working program that uses a ton of globals probably isn't worth doing. On the other hand, when designed from scratch, most programs don't really need all those globals, they were used for the programmers convenience. "Programmer convenience" is not a good reason for bad practice, regardless of what our young Jedi Knight would have you believe. Saving keystrokes is the absolute worst reason for not doing things right. And I am always suspicious when there is something like Globals which I am quite easily able to largely avoid, yet someone claims their program "just has to have millions of them". John W. Colby www.ColbyConsulting.com Contribute your unused CPU cycles to a good cause: http://folding.stanford.edu/ -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tony Septav Sent: Wednesday, May 18, 2005 10:01 AM To: accessd at databaseadvisors.com Subject: [AccessD] Global Variables Thanks Thanks to John, Drew and All For a long while now I have been reading the postings on the list about Global variables "bad practice", "avoid using them", etc. I have a couple of old programs that have been running cleanly for years and they use a large amount of global variables. Many of the variables are carried through various phases of the project and some are regularly being changed/refreshed. Yes and some are integers. After reading "bad practice" I got worried that I was doing something majorily wrong. I sat down and tried to figure out how I would carry some of these variables forward. It amounted to a large increase in the code necessary to do this and in some cases it involved complex/messy error trapping vs simple declaring the variable and trapping for errors. Anyway after this discussion I am now aware of what is meant by and in what circumstances individuals deem it "bad practice" and that on the otherhand handled properly it is not necessarily a bad thing. Another thing to keep in the back of my mind when developing an application. Old dog new tricks. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com