Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Does not Developers get confused if there are too many global variables?

Does not Developers get confused if there are too many global variables?

Scheduled Pinned Locked Moved The Lounge
architecturequestion
67 Posts 29 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B BobJanova

    Anyone who declares anything dynamic without a damn good reason should get a slap round the head. It's loose, lazy, unclear and slow. If you know the name of methods that you want to call on an object (which you need to to make dynamic more than just object), you know enough to have it implement an interface and dispatch calls through that.

    OriginalGriffO Offline
    OriginalGriffO Offline
    OriginalGriff
    wrote on last edited by
    #17

    The only part of that about which we disagree is the punishment involved. You prefer "slap"; I prefer "baseball bat". I thought it was stupid when they introduced var, while accepting the need when using LINQ. I have yet to see a convincing argument for the very existence of dynamic (and yes, I do Office interop occasionally, and no, I don't use dynamic for it)

    The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)

    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

    V R 2 Replies Last reply
    0
    • C Chris Maunder

      Mohammed Hameed wrote:

      Is it like they get accustomed to it and hence use it?

      Or they simply don't understand how to write object oriented and/or well architected code.

      cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #18

      This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

      Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

      C M P L 4 Replies Last reply
      0
      • OriginalGriffO OriginalGriff

        I'm not planning to, but the kind of person who habitually defines everything with var because he's too lazy to think about what his classes should be is just going to love a declaration which turns off compile time checking. He can generate four times as much (completely useless and untested) error and warning free code with dynamic in half the time... :sigh: Then it's someone elses problem to pick up the pieces when it all crashes at run time.

        The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)

        V Offline
        V Offline
        Vark111
        wrote on last edited by
        #19

        I doubt you'll see a lot of lazy devs overusing dynamic, because it takes away Intellisense, and most of those types rely on Intellisense.

        OriginalGriffO M 2 Replies Last reply
        0
        • OriginalGriffO OriginalGriff

          The only part of that about which we disagree is the punishment involved. You prefer "slap"; I prefer "baseball bat". I thought it was stupid when they introduced var, while accepting the need when using LINQ. I have yet to see a convincing argument for the very existence of dynamic (and yes, I do Office interop occasionally, and no, I don't use dynamic for it)

          The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)

          V Offline
          V Offline
          Vark111
          wrote on last edited by
          #20

          Quote:

          I have yet to see a convincing argument for the very existence of dynamic

          I've used it when dealing heavily with JSON data.

          1 Reply Last reply
          0
          • M Mohammed Hameed

            It has been noticed that some developers heavily use Global variables, may be without any discomfort. Is it like they get accustomed to it and hence use it? Dont they get confused by over usage?

            Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

            V Offline
            V Offline
            Valery Possoz
            wrote on last edited by
            #21

            I once worked on a project with over 3000 global variables. The "team leader" did not even know what half of them were suppose to be for... He just use to add new ones!! I let you guess the quality of the project! So yes they get confused... :(

            M R 2 Replies Last reply
            0
            • OriginalGriffO OriginalGriff

              The only part of that about which we disagree is the punishment involved. You prefer "slap"; I prefer "baseball bat". I thought it was stupid when they introduced var, while accepting the need when using LINQ. I have yet to see a convincing argument for the very existence of dynamic (and yes, I do Office interop occasionally, and no, I don't use dynamic for it)

              The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)

              R Offline
              R Offline
              Rob Philpott
              wrote on last edited by
              #22

              OriginalGriff wrote:

              The only part of that about which we disagree is the punishment involved.

              Actually I find it often just best to kill them. Does wonders to calm the nerves.

              Regards, Rob Philpott.

              1 Reply Last reply
              0
              • L Lost User

                This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

                Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

                C Offline
                C Offline
                CMullikin
                wrote on last edited by
                #23

                You're supposed to try to reduce the number of global variables that you use and only use them when necessary. The second paragraph on Wikipedia[^] gives pretty good reasons for this.

                The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin

                1 Reply Last reply
                0
                • B BobJanova

                  Well, hamsters' brains aren't that big ... it's cruel enough making them write JavaScript without expecting good JavaScript.

                  C Offline
                  C Offline
                  Chris Maunder
                  wrote on last edited by
                  #24

                  I will put my hand up and say loudly and with some shame: Our Javascript sucks

                  cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                  R 1 Reply Last reply
                  0
                  • K Keith Barrow

                    I was overused once, it did cause discomfort, but I was never confused!

                    “Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed”
                    “One of the greatest problems of our time is that many are schooled but few are educated”

                    Sir Thomas More (1478 – 1535)

                    C Offline
                    C Offline
                    Chris Maunder
                    wrote on last edited by
                    #25

                    You lucky, lucky bastard. (bonus points if you name that movie)

                    cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                    M 1 Reply Last reply
                    0
                    • V Vark111

                      I doubt you'll see a lot of lazy devs overusing dynamic, because it takes away Intellisense, and most of those types rely on Intellisense.

                      OriginalGriffO Offline
                      OriginalGriffO Offline
                      OriginalGriff
                      wrote on last edited by
                      #26

                      Most of 'em don't bother with AnySense! :laugh:

                      The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                      1 Reply Last reply
                      0
                      • C Chris Maunder

                        Mohammed Hameed wrote:

                        Is it like they get accustomed to it and hence use it?

                        Or they simply don't understand how to write object oriented and/or well architected code.

                        cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                        M Offline
                        M Offline
                        Mohammed Hameed
                        wrote on last edited by
                        #27

                        Thanks Chris. Yes, that would be the case.

                        Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                        D 1 Reply Last reply
                        0
                        • L Lost User

                          This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

                          Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

                          M Offline
                          M Offline
                          Mohammed Hameed
                          wrote on last edited by
                          #28

                          There is a nice discussion here on Cunningham's site http://c2.com/cgi/wiki?GlobalVariablesAreBad

                          Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                          1 Reply Last reply
                          0
                          • K Keith Barrow

                            I was overused once, it did cause discomfort, but I was never confused!

                            “Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed”
                            “One of the greatest problems of our time is that many are schooled but few are educated”

                            Sir Thomas More (1478 – 1535)

                            M Offline
                            M Offline
                            Mohammed Hameed
                            wrote on last edited by
                            #29

                            Thanks for your input. So its like discomfort for some and confusion for some developers.

                            Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                            1 Reply Last reply
                            0
                            • B BobJanova

                              Global variables are widely recognised to be a Bad Thing and confusing. That's why programming languages have gradually introduced more and more ways of avoiding them: local variables, function parameters, structures (to wrap up multiple parameters where there would be a confusingly large number of them), encapsulation, closures ... I'm sure there are other features that essentially come down to reducing the scope within which a data object is visible to avoid confusion.

                              M Offline
                              M Offline
                              Mohammed Hameed
                              wrote on last edited by
                              #30

                              Thanks Bob. Very good explanation. :thumbsup:

                              Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                              1 Reply Last reply
                              0
                              • C Chris Maunder

                                You lucky, lucky bastard. (bonus points if you name that movie)

                                cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                                M Offline
                                M Offline
                                Mohammed Hameed
                                wrote on last edited by
                                #31

                                Life of Brian.

                                Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                F 1 Reply Last reply
                                0
                                • L Lost User

                                  It would depend upon how the variables are named. Names like: jjxl, jixl, picxl, y, x, xy, yx, xxy would be confusing even locally scoped. However, names like: Global_Late_Fee, Global_Post_Date, & WTF_Adjustment aren't confusing.

                                  M Offline
                                  M Offline
                                  Mohammed Hameed
                                  wrote on last edited by
                                  #32

                                  Yes, prefixing them may reduce much confusion. Thank you.

                                  Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                  1 Reply Last reply
                                  0
                                  • V Vark111

                                    I doubt you'll see a lot of lazy devs overusing dynamic, because it takes away Intellisense, and most of those types rely on Intellisense.

                                    M Offline
                                    M Offline
                                    Mohammed Hameed
                                    wrote on last edited by
                                    #33

                                    Agreed.

                                    Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                    1 Reply Last reply
                                    0
                                    • L Lost User

                                      This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

                                      Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

                                      P Offline
                                      P Offline
                                      Pablo Aliskevicius
                                      wrote on last edited by
                                      #34

                                      Here it is:

                                      1. Don't use global variables.
                                      2. If you thing you have found a reason to use a global variable, you're wrong. Just don't.

                                      Of course, synchronized singletons and read-only monostates are not 'real' global variables. Also, if you're writing C and you have a variable that allows access to a hardware device, it may be forgiven. JM2B,

                                      Pablo. "Accident: An inevitable occurrence due to the action of immutable natural laws." (Ambrose Bierce, circa 1899).

                                      1 Reply Last reply
                                      0
                                      • B BobJanova

                                        Anyone who declares anything dynamic without a damn good reason should get a slap round the head. It's loose, lazy, unclear and slow. If you know the name of methods that you want to call on an object (which you need to to make dynamic more than just object), you know enough to have it implement an interface and dispatch calls through that.

                                        M Offline
                                        M Offline
                                        Mohammed Hameed
                                        wrote on last edited by
                                        #35

                                        Superb...

                                        Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                        1 Reply Last reply
                                        0
                                        • M Mohammed Hameed

                                          Life of Brian.

                                          Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                          F Offline
                                          F Offline
                                          Forogar
                                          wrote on last edited by
                                          #36

                                          Ding! 10 points to Mr. Hameed!

                                          - I would love to change the world, but they won’t give me the source code.

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups