Alexander Rabtchevich wrote:
> Raphaël, could you please explain me (I'm new to scheme) in a few
> words, why the global variables are poor style coding?
Global variables can lead to bugs if not used carefully. The use of global
variables in Script-Fu is particularly bad since all scripts are read in to a
single namespace. A global variable defined in one file can be altered by code
in another file without the need to use a Scheme equivalent of a C extern
declaration. Everything will seem ok until you add another script file from
somewhere that happens to use a global variable with the same name as a global
defined in another file.
Problems can also arise when two files have global functions with the same
name but different behaviour. This sort of problem has been seen even amongst
the scripts shipped with GIMP. It is why you now see the use of locally
defined functions rather than global ones in most scripts. For an example,
look at the alien-glow-arrow.scm file.
> But the inability to use global
> variables along with scheme syntaxes leads to a good deal of parentheses
> which could be a problem to a programmer.
When you understand the syntax of the language, the use of local variables
instead of global doesn't have any significant impact on the number of
parentheses in a script.
If someone is afraid of the parentheses they shouldn't be trying to use
Scheme. :-) More likely the fear of parentheses is caused by badly formatting
the Scheme code (ie. lack of whitespace). Always putting the closing brackets
for statements at the end of a single line leads to wasting a lot of time
http://www.ve3syb.ca/ |"What are we going to do today, Borg?"
Owner of Elecraft K2 #2172 |"Same thing we always do, Pinkutus:
| Try to assimilate the world!"
#include <disclaimer/favourite> | -Pinkutus & the Borg
Gimp-developer mailing list