I might should slightly walk back ^^^ I do think that many of the practices of "modern" web-dev are ignorant re-inventions of previous solutions (we all need more history!), this one seems to have been an *intentional* re-implementation (much better!):
> In React, this is solved by Context. It is essentially like dynamic scoping for components. It’s like a wormhole that lets you put something on the top, and have every child at the bottom be able to read it
@codesections I've never seen a single instance of dynamic scoping where it actually was a good idea, shells included.
> I've never seen a single instance of dynamic scoping where it actually was a good idea
I've seen several (though they're the distinct minority).
Off the top of my head, they're a key part of how emacs can be so extensible, as Stallman described 30 years ago: https://www.gnu.org/software/emacs/emacs-paper.html#SEC17
Raku APIs also make good use of dynamic scoping when wrapping functions without changing their signature (these dynamic variables aren't exposed to the API's user). e.g.: https://fosdem.org/2021/schedule/event/raku_unexpected_simplicity/attachments/slides/4646/export/events/attachments/raku_unexpected_simplicity/slides/4646/Surprisingly_Unsurprising_Slides.pdf
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.