Scalaz vs Algebra vs Cats – ¿cuál debo aprender / usar?

Estrictamente hablando, las tres bibliotecas tienen objetivos y aplicaciones muy diferentes.

El álgebra comenzó como una unificación de Spire y Algebird y ahora cubre el subconjunto central de las abstracciones de la teoría de categorías. Los gatos interactúan con Álgebra a través del módulo “cats-kernel” y proporcionan algunas cosas adicionales relacionadas con las categorías además de eso. ScalaZ es el más antiguo de estos tres proyectos. Ya que no se limita a las cosas de la teoría de categorías, también incluye algunas cosas más de propósito general como tareas, actores, validaciones, etc.

Ahora a la segunda pregunta, que no es tan simple como parece. Cuando estaba escribiendo Mastering Advanced Scala, decidí usar Cats como una biblioteca de teoría de categorías y ScalaZ como una biblioteca de propósito más general que ofrece algunas mejoras sobre la biblioteca estándar. Esto probablemente funcionará mejor para la mayoría de las personas, y muchas bibliotecas creadas inicialmente sobre ScalaZ (por ejemplo, http4s) ya comenzaron una transición hacia Cats. Sin embargo, si necesita usar el proyecto construido sobre ScalaZ ahora, elegir ScalaZ tiene sentido.

No creo que haya una respuesta a esto, solo opiniones.

Tiene sentido profundizar lo más posible en Scalaz, le dará una comprensión de cómo funcionan las cosas. OTOH, escuché que los gatos son más prácticos (tengo la sensación de que es un poco menos científico que Scalaz).

Una cuestión de gusto.