Essential Effects: Progress on the book, and other news
Hi all!
Thank you so much for signing up for news about "Essential Effects": the book, the course, the movie (not yet). I've been busily writing and wanted to post some kind of update.
Seven of the eight planned chapters of the book are complete. Release-wise I would tag them as "beta":
- Effects: Evaluation and Execution
- Introducing
cats.effect.IO - Parallel Composition
- Concurrent Control
- Shifting Contexts
- Integrating Asynchrony
- Structuring Applications
- Testing (TODO)
I must really be a software engineer to leave testing for last!
To share some of the book, one question that often comes up when talking about developing in Scala is whether to write code using a concrete effect type, like IO, or to abstract over the type. In the introduction to "Essential Effects" I declare the book's focus:
The design of the cats-effect library uses typeclasses to encode concepts like parallelism, concurrency, and so on, and the
cats.effect.IOdata type can be viewed as merely adhering to those interfaces. Rather than programming with an abstract effect type that uses typeclass constraints—a perfectly valid programming technique!—this book uses the concretecats.effect.IOtype as the main vehicle to discuss and demonstrate programming with effects. An appendix will detail the full set of typeclasses, along with a guide and rationale for translating the concrete effect type to an abstract one.
Tagless-final fans, I hope that puts you at ease!
Finally, if you're also interested in attending our companion training, we have two upcoming courses:
- US-timezone, Aug 31-Sep 2
- EU-timezone, Sep 14-16
Please use the code newsletter-aug-2020 for a 15% discount! Or forward it to your friends.
Be safe,
.. Adam