this post was submitted on 10 Jun 2023
5 points (100.0% liked)

Scala

336 readers
1 users here now

founded 1 year ago
MODERATORS
 

I tend to prefer Cats and that's the more commonly used ecosystem at work, but I've heard that the more framework nature of ZIO can be really comfy. I've also used Play, which had some nice things but is starting to feel like it's showing its age and the rough spot Lightbend is in.

I'm curious to hear what everyone else is using and your hot takes.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] akaifox 3 points 1 year ago (1 children)

Cats seems to still be the market leader, but ZIO is probably easier to get into

Various places I've interviewed at had a blanket ban on ZIO, which I found odd

[โ€“] [email protected] 5 points 1 year ago

The 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.