[xquery-talk] Are declared variables a bad thing?
Ryan Grimm
grimm at xqdev.com
Mon Jan 7 01:11:36 PST 2008
Hi Tim,
You're right, global variables are nasty things in procedural
languages. Those that have spent a large amount of time in perl or
javascript (both declare variables in the global scope by default)
know all too well the bugs that global variables can cause. I've
spent a good chunk of time in both of those languages so global
variables generally frighten me.
However, in XQuery I see things a little bit differently. Global
variables frequently create bugs when their values are modified
somewhere in the code. Because you can't modify the values of
variables in XQuery, the use of declared variables (aka global
variables) isn't nearly as dangerous.
So in my mind it's mostly a question of style. If you're going to
have a number of them declared over many modules, you might want to
consider namespacing them just to avoid collisions.
--Ryan
On Jan 7, 2008, at 12:40 AM, Tim Finney wrote:
> Dear XQueryers,
>
> This is a philosophical question.
>
> Once during my computer studies I was told (paraphrasing) "Global
> variables are bad. Bad, bad, BAD!"
>
> Why? It is bad style, making for buggy, opaque code and harder program
> maintenance.
>
> XQuery has the variable declaration block. Whenever I declare a
> variable
> there, memories of the old injunction come back--"Bad, bad, BAD!" In
> an
> effort to maintain self-respect as a programmer, I do perverse things
> like write functions to get at declared variables so that notional
> future programmers will be able to better understand my code.
>
> Did the Makers of XQuery forget their computer science lessons when
> they
> came up with the variable declaration block? Is it bad style in the
> XQuery world to use declared variables directly in functions and
> queries? Is this a case of needing to forget wisdom from the
> procedural
> world? Are declared variables a good and necessary thing in the
> functional world?
>
> Yours,
>
> Tim Finney
>
>
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk
More information about the talk
mailing list