It was awful.
It was awful.
https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02...
> The locale (via setlocale()) is global state, and global state is not a reasonable way to do anything.
> It will break libraries, or well modularized code.
> (The latter would be forced to strictly guard all entrypoints set set/restore locales, assuming a single threaded world.)
> On top of that, setting a locale randomly changes the semantics of a bunch of standard functions.
> If a function respects locale, you suddenly can't rely on it to behave the same on all systems.
This was probably only in the top ten of the problems that this thing had, but I do remember it vividly. Making any change was like pulling out a Jenga block and replacing it without toppling the tower.
That sounds exactly like dynamic scoping.
Fun times, having bugs with OpenGL because of this. Oh, fun times :-D
In the realm of programming languages it... works. It gets the job done for simple tasks. If you want to do anything complex, watch out.