Why people dislike global variables so much while I find them so convenient?
rempas
rempas at tutanota.com
Wed Jan 26 11:08:21 UTC 2022
On Tuesday, 25 January 2022 at 15:47:12 UTC, Ali Çehreli wrote:
> On 1/25/22 01:53, rempas wrote:
>
> > people dislike global variables
>
> The situation is much better in D because I suspect what you
> call global is D's module-scope and thread-local.
>
> (Note: I don't want to argue whether thread-local by default
> was a good decision or not but I certainly take full advantage
> of the ease of thread-local variables in D.)
>
> So, module-scope variables are just fine: std.parallelism uses
> a default ThreadPool object, std.stdio functions use stdout, in
> this case a truly global object, etc.
>
> > When I have a variable that I must pass down to 5-6
> > functions, I find it much easier to make it global rather
> than having it
> > been passed in all the functions that need it.
>
> I've used that method once, which I mentioned at this point
> during a presentation:
>
> https://youtu.be/dRORNQIB2wA?t=2946
>
> Both you and I realize that a module is an object and in our
> case there is a single object of it. That works.
>
> When you need more than one object (more than one context),
> then you move all those variables to a user-defined type and
> they become proper member variables.
>
> > global variables can mess me up
>
> Otherwise, as everybody else told, global variables can be very
> dangerous:
>
>
> https://www.safetyresearch.net/toyota-unintended-acceleration-and-the-big-bowl-of-spaghetti-code/
>
> That report mentions "thousands of global variables", all of
> which I bet started as "what can go wrong?"
>
> Ali
As always, thank for the great info Ali! Wish you an amazing day!
More information about the Digitalmars-d
mailing list