Fork me on GitHub
#missionary
<
2023-03-01
>
Dustin Getz15:03:28

Claim: the following technologies unify under the umbrella concept of "functional effect system" * Kubernetes * Erlang process supervision * Microsoft Orleans * Akka * Rx * Zio * Cloud Haskell * Clojure's Missionary * Electric Clojure * Unix, Windows (process/program/task manager) * Java threads, OS threads * Frontend rendering with signals List of relevant topics: * Process supervision (trees) * Observable sharing (DAGs) * Graceful termination * Self-healing software * Resilience * Actors * Signals and event streams / FRP * functional effects Q: What technologies and relevant keywords are missing from the list? (I am doing a literature search)

rickheere19:03:55

Missionary peeked my interest because I was search for a clojure equivalent of Redux-Saga. Not sure if it fits the list though.

teodorlu09:04:35

Perhaps add managed effects to the list. It might be more relevant for typed FP than dynamic FP, but you’re listing plenty of typed languages. I’ve stumbled into the ideas from the Elm community discussing how they can avoid having a single IO type. I think Richard Feldman has mentioned managed effects on his Software Unscripted podcast. The https://www.roc-lang.org/, a language he’s working on, refers to an article called https://medium.com/@kaw2k/managed-effects-and-elm-36b7fcd246a9. I skimmed it, but it looks like it was mostly about teaching Elm programmers to do things that require using the effect system. -- One way of doing managed effects in Clojure could be to pass an effect dispatch function down, which can be customized. Then the “run HTTP effect” could do an actual request on the real app, but return mocked responses in test. Clojure has alter-var-root, though, so swapping out a piece of the system is easier in Clojure than in Elm or Haskell. I think I’ve heard talk about managed effects in scala land too, but I don’t have any references for that at hand. Motivation was more control than “an effect can run any IO” here too.

👍 2
Dustin Getz15:04:31

Not sure if it was clear - Missionary is a functional effect system

👀 2
Dustin Getz15:04:51

I'll add functional effects to the list

👍 2