I'm not super up to date with the web-dev world - but I think the folks in the react-and-company space have taken this the natural step forward
With subscription/contexts you get to really pare down the whole imperative shell part. They allow you to keep using reproducible pure functions, but memoization allows you drastically minimize state management and to cache intermediary values, so you're not recomputing the whole world each time. When the state changes the whole system elegantly only recomputes the pieces that are strictly necessary. You don't need to do anything manually - it all just happens automatically
For some reason I don't see this being picked up in generally outside of GUI/Web space. But the input side of state is semi-solved as I see it
The output side still needs "management" or a "shell" of sorts
(for context, I've only really played with this through Clojure's cljfx GUI library)
With subscription/contexts you get to really pare down the whole imperative shell part. They allow you to keep using reproducible pure functions, but memoization allows you drastically minimize state management and to cache intermediary values, so you're not recomputing the whole world each time. When the state changes the whole system elegantly only recomputes the pieces that are strictly necessary. You don't need to do anything manually - it all just happens automatically
For some reason I don't see this being picked up in generally outside of GUI/Web space. But the input side of state is semi-solved as I see it
The output side still needs "management" or a "shell" of sorts
(for context, I've only really played with this through Clojure's cljfx GUI library)