Hacker News new | ask | show | jobs
by foobarian 3785 days ago
My experience has been that shitty code tends to be shitty because it accesses "magic global state," so it's hard to coral it into a single module almost by definition. This happens usually because of rushed deadlines; it's often hard to plumb through an extra parameter if there are many touchpoints or a lot of tests to fix, and easier to just stuff something into a global variable and ship the code.
1 comments

That's why a language that forbids magic global state (or at least makes you clearly tag every tiny instance of it) can be so useful.
Then someone invented the singleton.....
In eg Haskell a singleton needs to be tagged with IO. And that makes sense, because singleton are clearly evil global state.