Are local variables generally preferred over global?

Click For Summary

Discussion Overview

The discussion centers on the preference for local variables over global variables in programming, particularly in the context of C and MATLAB. Participants explore the implications of variable scope on code quality, maintainability, and design principles within software development.

Discussion Character

  • Debate/contested
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • Some participants suggest that local variables are generally preferred due to their benefits in code modification and encapsulation, making it easier to manage complexity in larger projects.
  • Others argue that global variables can be useful in specific scenarios, such as for synchronization in multithreaded applications or when dealing with interrupt-driven routines.
  • A participant mentions that global variables can lead to potential issues, as they are accessible from anywhere in the code, which may lead to unintended modifications.
  • Some participants highlight the importance of encapsulation, advocating for the use of objects and methods to manage data instead of relying on global variables.
  • There are differing views on the necessity of global variables in certain designs, with some asserting that they should be avoided unless absolutely necessary.
  • A participant shares a personal experience in an introductory class, noting a requirement to use global variables for a specific project involving MATLAB, which raises questions about the flexibility of design choices in educational contexts.

Areas of Agreement / Disagreement

Participants express a mix of agreement and disagreement regarding the use of local versus global variables. While some advocate for local variables as a standard practice, others present valid scenarios where global variables may be justified. The discussion remains unresolved with multiple competing views on the topic.

Contextual Notes

Participants mention various programming contexts, such as multithreading and embedded systems, where the choice between local and global variables may depend on specific design goals and constraints. There is also an acknowledgment of the challenges in managing variable scope in larger codebases.

  • #31
From all of the replies it appears that the answer is completely contextual - that we can all hopefully agree on. Bottom line in the most general sense is to program to the language's standard and more importantly to your company/industry's standard.
 
Technology news on Phys.org
  • #32
Coming from a hobbyist programmer.. I learned to code with NO examples except for the "help" section of Qbasic.. it had NO guidelines on how to code properly.. .Somehow, very surprisingly, I wrote some pretty impressive programs which didn't even use subs and functions!.. Just a WHOLE WHACK of global variables, and lots and lots of "GOTO" statements.
Then I started playing with VB6 and VB.net, and had to try to understand other people's code, nevermind code I had written a couple months earlier.

It took years, and I'm not there yet, but I have figured out how to MOSTLY eliminate global variables, use functions, classes, etc and find alternatives to "goto".

For me, there's something that I still will use global variables for.. things like an "abort" or "Cancel" flag variable that gets checked in a nested part of the program but set in the UI thread

It takes a bit of getting used to, but it is best to minimize global variables whenever possible.. There may be exceptions to the rule, but it's best to learn how to follow the rule before learning when it's correct to break it.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 18 ·
Replies
18
Views
9K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 36 ·
2
Replies
36
Views
3K
  • · Replies 37 ·
2
Replies
37
Views
7K
Replies
4
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 3 ·
Replies
3
Views
4K