Software developer from đ Bucharest, Romania; FP, Scala, Kotlin, Java / JVM, Haskell, Rust enthusiast; contributor to monix.io, typelevel.org.
- 2 Posts
- 6 Comments
The
lemmy.mlinstance has some controversies regarding its maintainers, which may have an impact on adopters.programming.devseems safer for now, for programming communities; I just hope that itâs a well-maintained instance.
alexelcuMto
Scalaâ˘Let's kick things off with something spicy: ZIO vs Cats vs Something else
5¡3 years agoSharing from my personal experience â with the Typelevel libraries, you donât really need monad transformers if you donât like them.
For dependency injection, personally, while being a big fan and contributor of Typelevel, I prefer to use Scala as an OOP language, too, as OOP is already great for dependency injection. And Iâm always surprised by the lengths people go to avoid passing parameters to constructors or to functions. Although I will say that the use of Resource for managing the lifecycle of resources is a Scala super-power.
For errors, there are different approaches, no one size fits all, but personally, I never use
EitherTorOptionT, and thatâs a false choice being presented by these 2 communities. You donât have to pick betweenEitherTorZIObecause you can choose neither.Domain / input errors have to be designed with care, and you usually donât need short-circuiting for those. And as an alternative, what you can do instead is to design errors out of existence. Iâm sharing some design advice for that here: https://alexn.org/blog/2022/04/18/scala-oop-design-sample/
alexelcuMto
Scalaâ˘Let's kick things off with something spicy: ZIO vs Cats vs Something else
5¡3 years agoThe effect system is pretty foundational. Libraries built on Cats-Effect can be used with ZIO (with caveats), due to the exposed type classes, but ZIO libraries canât be comfortably used alongside Cats-Effect-driven libraries. You tend to pick either one ecosystem, or the other. Picking both creates a mess, and you need strong leadership that can keep clean boundaries between the modules of the project. We see that in our $work project by combining Typelevel / Cats-Effect libraries with Akka, but there the separation is cleaner because Akka has a clear purpose in our project, without much overlap with the used Typelevel libraries.
I may be biased, but Typelevel libraries interoperate better with the rest of the ecosystem, and they are more mature, but Iâm also certain this depends on personal experience and the projects weâve been working on. In other words, itâs fine to pick ZIO, if you like it better, the problem is with combinations, IMO.
đ I hope this will take off
đ I can help with moderating this community if needed: https://programming.dev/c/scala
I canât make it a long-term engagement, but at least until it gets off the ground.



I think people fear a problematic âBDFLâ. On the other hand, the beauty of FOSS is that it can be forked in case you donât agree with the current owners.
I heard that Lemmy is the second most popular software on the Fediverse, and choosing between Lemmy and kbin doesnât have much impact due to the interop (although I hope to see tools for easy migration, if needed). What matters is how well the instance is maintained, and the community.