4 ms·
There is not a single situation where global variables are necessary.
by sagichmal 7y ago
There is not a single situation where global variables are necessary.
- crankylinuxuser 7y agoI take it you've never programmed embedded? Yeah, state sucks. But sometimes, you need a starting point, and diff from that. And, that's state. One of the safe ways of handling global vars, is by having only a single non-interruptible function that can mutate global. And you have best make sure your global-mutating function is fast. You don't want to miss IRQs that might fire off but are blocked.
- sagichmal 7y agoYes, embedded is enough of a special case that I don’t consider it as part of a general purpose discussion on programming languages.
- mises 7y agoEricsson predicts 18 billion IoT devices by 2022. Those all need code written for them. Do you still consider embedded programming a "niche"? Maybe it's one specific case, but it's relevant and ought to be "part of the discussion". https://www.ericsson.com/en/mobility-report/internet-of-things-forecast https://www.ericsson.com/en/mobility-report/internet-of-thin...
- holy_city 7y agoGlobal logging in libraries is not uncommon, especially if you need to trap signals (which can only interact with global state). COM APIs expose a global class factory as the main interface to a shared libraries. Embedded systems and drivers require globals in one form or another. "Globals are evil" comes from the fact that globals have side effects, and side effects make things hard, especially in modern software that utilizes asynchronous/concurrent logic. That just makes them unwieldy, not unnecessary. Especially when interacting with legacy systems that require globals.