effekt VS effects-bibliography

Compare effekt vs effects-bibliography and see what are their differences.

effects-bibliography

A collaborative bibliography of work related to the theory and practice of computational effects (by yallop)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
effekt effects-bibliography
13 5
283 903
5.3% -
9.6 7.1
6 days ago 11 days ago
Scala
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

effekt

Posts with mentions or reviews of effekt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-07.

effects-bibliography

Posts with mentions or reviews of effects-bibliography. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-27.
  • Better Java logging, inspired by Clojure and Rust
    2 projects | /r/java | 27 Sep 2022
    In addition to those 2 (which I think have phenomenal documentation), the language Eff has more theoretical introduction. There is also the Effect bibliography which has a lot of different effect system in different languages, as well as tutorials and academic papers on the subject.
  • How Side Effects Work in FP
    2 projects | news.ycombinator.com | 23 Mar 2022
  • Effects bibliography – bibliography of work related to computational effects
    1 project | news.ycombinator.com | 5 Feb 2022
  • Effekt, a research language with effect handlers and lightweight polymorphism
    6 projects | news.ycombinator.com | 19 Nov 2021
    I think it goes back to the neverending quest to find ways of representing computation that allows of ease of composition, changing implementation details, eliminating classes of errors by construction, etc. Monads have had some success in this arena, but they have notable issues with composition; monad transformers help, but can become unwieldy in their own ways.

    An alternative are effects, hypothetically allowing for ease in building programs as separate but composeable components which can then be freely mixed in or swapped out. In practice I have found working with effect systems in Haskell via libraries stresses the type system so much you end up with scoped type variables and type applications everywhere. My understanding is that the theory behind using effects to structure computations comes from category theory's Lawvere theories (see e.g. Pretnar's 2010 dissertation on https://github.com/yallop/effects-bibliography). Lawvere theories give rise to many monads (see Bartosz Milewski's article on it -- https://bartoszmilewski.com/2017/08/26/lawvere-theories/), but with nicer compositional properties.

    This is where languages like Effekt, Eff, Frank, and Koka come in -- by writing the entire language and type system to support the theories, a lot of the pain of expressing it in Haskell can be avoided.

  • Multicore OCaml: February 2021 with new preprint on Effect Handlers
    1 project | /r/ocaml | 12 Mar 2021
    Not really an answer but Jeremy Yallop maintains a bibliography on the theory and practice of computational effects.

What are some alternatives?

When comparing effekt and effects-bibliography you can also consider the following projects:

koka - Koka language compiler and interpreter

ocaml-multicore - Multicore OCaml

Eff - Eff monad for cats - https://atnos-org.github.io/eff

hylo - The Hylo programming language

frank - Frank compiler

tofu - Functional programming toolbox

functional-programming-jargon - Jargon from the functional programming world in simple terms!

cooltt - 😎TT

ZIO - ZIO — A type-safe, composable library for async and concurrent programming in Scala

pony-tutorial - :horse: Tutorial for the Pony programming language

distage-example - Example project built using distage, tagless final, http4s, doobie and zio